0% found this document useful (0 votes)
61 views3 pages

Basics of Starting Your Own ROM Part 1

This document provides instructions for beginners on how to start customizing their own Android Open Source Project (AOSP) ROM builds after gaining experience making basic builds. It recommends exploring GitHub to learn from other developers, then provides a tutorial on making a simple modification to an XML file to build CyanogenMod or Beanstalk with a custom kernel instead of the default one. The tutorial explains the different parts of the XML project line and walks through changing it to point to the author's own kernel repository and specific "lite" branch.

Uploaded by

Lucas Diniz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views3 pages

Basics of Starting Your Own ROM Part 1

This document provides instructions for beginners on how to start customizing their own Android Open Source Project (AOSP) ROM builds after gaining experience making basic builds. It recommends exploring GitHub to learn from other developers, then provides a tutorial on making a simple modification to an XML file to build CyanogenMod or Beanstalk with a custom kernel instead of the default one. The tutorial explains the different parts of the XML project line and walks through changing it to point to the author's own kernel repository and specific "lite" branch.

Uploaded by

Lucas Diniz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Basics of Starting Making your Own Custom AOSP ROM Part 1

So I thought I’d take a few minutes to address the few of you that have made successful builds and are
thinking to yourselves “Now what?”

It’s seems difficult to build a ROM for the first time but after you’ve built a ROM a few times those same
five commands become very boring and you start desiring to do more than just sit around and wait for
the build to finish. Believe me I know. I hit that point about 5 months ago.

So now what should you do? Here are something things I would suggest.

Go to Github.com and create an account. You may not understand anything yet but that’s okay. Get the
account so you can download the github app and follow your favorite ROMs. Go around and “Watch,”
“Star,” and “Follow” your favorite developers so you can watch the magic happen. Try and figure out
what they added and subtracted with each commits. Read through ALL of the changes make and
especially the change notes with the explanation for why they did it. (The Red is always a deletion and
the Green is always an addition FYI)

While you’re on Github.com go to the Help section and read up https://help.github.com/ You can learn
lots about things from there. Pick a question and read the answer. Since almost all Android Devs use
Github you need to familiarize yourself with it before you can even think about forking or cherry-picking.

So now for more of the "Tutorial" the first part was just a bit of friendly advice so you can learn faster. (I
figured you would read it if I put it at the beginning)

Here is my tutorial on Basic .XML file editing which how you start making your own ROM.

First let’s start with an example

Here is how you can use a simple XML modification to build Cyanogenmod or Beanstalk with my new
Lite kernel.

Go to your CM10.1 repo then press control + H so you can see the .repo folder. Go inside it and open
the local_manifest. Open roomservice.xml with a text editor. Find the find the line that reads.

<project name="CyanogenMod/android_kernel_samsung_msm8660-common"
path="kernel/samsung/msm8660-common" remote="github" revision="cm-10.1" />

Notice there are 4 parts - project name, path, remote, and revision.

Remote shows “github” in the default.xml (or main manifest) github is defined to mean
http://www.github.com which is the first part of the web url.
Project name refers to the second part of the web url. So add http://www.github.com to
CyanogenMod/android_kernel_samsung_msm8660-common and you’ll get
http://www.github.com/CyanogenMod/android_kernel_samsung_msm8660-common If you follow this
link, you’ll see sure enough it’s the CM kernel repository for our phone.

Path refers to the directory where the folder will appear in your repository. So if you go to your CM10.1
repo and open the folder kernel/Samsung/ you will see msm8660 with all of the kernel goodies inside.

Revision refers to the branch you want. If you go to the above CM kernel link and click on the grey
branch button you will see all sorts of branches. The default one is cm-10.1.

So now how do you change this file to point to the “lite” branch of my STABLE kernel? Well first you
need to find the link to my kernel. I’ll give it to you https://github.com/Cl3Kener/STABLE That is my
kernel link. If you follow that you’ll notice my main branch is master but I also have other branches.
One of them is called “lite” and it contains my lite kernel which is different from my normal stable.

So here is how you edit the XML line to point to my kernel. You change the project name to
“Cl3Kener/STABLE” since that is the second half of my url. DON’T TOUCH PATH OR REMOTE!!! (They are
the same seeing as I have github.com and I need the same path to my kernel in my local repository) And
then change the revision (or branch) from cm-10.1 to “lite” Once you are done it should look like this

<project name="Cl3Kener/STABLE" path="kernel/samsung/msm8660-common" remote="github"


revision="lite" />

Now go and sync your repo and you will see my name flash by the screen when it gets to the kernel.
Now build as you normally would and you will get a CM (or Beanstalk) build with my kernel!

Hopefully that wasn’t too difficult to follow. If you make a typo you will get an error when you go to
sync.

So now that you understand the basic parts of the XML file you can create your own custom forks and
then point your XML to point to your version of the apps! (A common one done by people is that they
point their XML file towards the Scott Hart BTI repo that contains the BLUE SMS icon version instead of
the green version for example.) Many Developers fork and re-theme apps to their own liking and then
they point the XML files to their app version.

Happy XML tweaking Everyone!

You might also like