I want to learn how to build my own android roms from the source up. So does anyone recommend any literature to read, tutorials to follow, things I need to understand.
I do have two minor preferences; I prefer to develop on Windows, is this possible? And I would like all the literature to be on the internet, so actuaally to be free available....
About me, you can say that I am a noob (I did build an android app with a group of people for school), but I am willing to learn. So does anyone know what are the first steps to take to become a succesful developer.
*Also could someone explain to me: Is there a difference between a regular/rom cooker developer and kernel developer. Do you need to be both to for example make jelly bean working on your phone singlehandedly or do you just need to be a rom cooker?
Rom cookers are the sort of people that have all the required files and they just cook it up into a ROM, Developers are the sort that make things, Add things re-write things, then cook it up.
you will need to start by getting a stock ODIN ROM, and using the tools that can open it, As for these tools im unsure, The kernel is zImage << so you need to find a tool to read / edit that.
You will need to use linux, However you can use Cygwin (linux for windows) and you could try dsixda's rom kitchen,
You will also need 7zip and Notepad ++ , These are just a few of many stuff you will need
Here are a few guides to get you started
http://forum.xda-developers.com/showthread.php?t=633246
http://www.xda-developers.com/android/learn-to-build-kernels-and-roms-for-the-galaxy-s-ii/
http://forum.xda-developers.com/showthread.php?t=1069868
Everything you need to know will be on XDA somewhere
Good luck !!
PS: Make regular backups during development, You first aim should be to get a Stock ODIN ROM converted to a CWM zip file and get it booting, Then start to make tweaks / mods / themes
Good luck, and read this as a word of caution: http://forum.xda-developers.com/showthread.php?t=1690663
A question: how do you extract the boot.img from the SGN? I have already tried this with dsixda's kitchen and CM9, but all I get is the error; "Android Magic not found in ./boot.img". So what are the exact steps to follow for the SGN to extract the boot.img?
I also have a pice of advice. Get a cheaper android phone to play with (which you don't mind breaking). Emulators are great, but there's nothing like the real thing.
PS: For some reason, the image of Guybrush Treepwood saying "I want to be a pirate" came to my mind...
Related
How do you extract a custom Rom so that I can tweak it around and take/add a few programs to fit my own needs? I've read the countless number of pages on how to cook a Rom, and my head is about to explode from all the information I'm trying to take in, but nothing explains how to extract and dissect a custom rom.
I understand this is probably something people may not wish to explain so that others don't modify custom ROMs and name it their own, but this is something I wish not to do. I simply wish to take some programs out I never use and add a few that I always use into the ROM so that when I do a hard-reset I don't have to go through the time consuming process of copying and loading cabs all the time.
I've used the search function, but nothing truly explains how to do what I want.
Most chefs protect their ROMs, so you won't be able to extract them.
Here is an excellent guide about customizing an official ROM.
http://forum.xda-developers.com/showthread.php?t=494793
I figured so. Thank you for the link. I guess it's time for me to learn to cook my own ROMs now...hopefully they don't get burnt.
Some chefs upload their entire kitchens along with the finished ROM, so you can customize it to your taste.
I tried to extract R1A UK (the only rom that can play video without lag), but get an error during the extraction.
mah...
First off, Thank you to all the dev's who've put out all the great roms (too many to mention)....
But, as I was reading through some of the most recent releases of roms, I found myself more and more frustrated with confusion. It wasn't the screenshots (thanks, it helps), it wasn't the list of changes/additions/subtractions (that really helps), it was more the complex install info.
I'm not trying to hurt anyone's feelings, but why would you go off on a tangent to left field while your writing down how to install something? Can we get a universal install procedure?
Most roms are released within hours and in some cases days of one another. Lets assume that rom a has what newest rom b needs and create something from that. Then if you need to express random thought for the new guy, that could be post #2. I guarentee that most of the people here have flashed and re-flashed and soft bricked and flashed again.
Guess what I'm trying to say is, rom dev's are releasing things that probably no one will use cause they aren't clear and concise on the install procedure.
FroztIkon said:
First off, Thank you to all the dev's who've put out all the great roms (too many to mention)....
But, as I was reading through some of the most recent releases of roms, I found myself more and more frustrated with confusion. It wasn't the screenshots (thanks, it helps), it wasn't the list of changes/additions/subtractions (that really helps), it was more the complex install info.
I'm not trying to hurt anyone's feelings, but why would you go off on a tangent to left field while your writing down how to install something? Can we get a universal install procedure?
Most roms are released within hours and in some cases days of one another. Lets assume that rom a has what newest rom b needs and create something from that. Then if you need to express random thought for the new guy, that could be post #2. I guarentee that most of the people here have flashed and re-flashed and soft bricked and flashed again.
Guess what I'm trying to say is, rom dev's are releasing things that probably no one will use cause they aren't clear and concise on the install procedure.
Click to expand...
Click to collapse
I see your on super nova. Have you looked at Mosaic. I tried to make the directions as simple as i could
right now with the recent port of the i9000 2.3.3 things have changed.
and changed very recently.
soon enough there will be an easier, more standard way to upgrade.
but keep this in mind....
what we are doing here is programming a phone. the devs AND YOU!
programming an electronic device is not a simple thing, and is not childs play.
the devs have YEARS of experience in programming to bring us the software,
we need to understand what we are doing in order to do it.
so we need to understand programming.
this cannot be done in 10 minutes by just reading instructions.
and this SHOULD NOT be able to be done in 10 minutes by reading instructions.
there are real risks in doing this, that is why it voids your warranty.
you need to understand what you are doing to be able to do it.
thats why you must LEARN in order to do this.
nobody ever learns with brain-dead instructions.
the more you LEARN first, before flashing, the better your chances at success.
the easier the instructions the easier noobs run into problems! Brick their device or get scared and confused about very simple things that they should have understood first!
so the complexity has a dual purpose, it forces you to go out and LEARN before you do anything AND also provides you with alot of information to start learning
<<Captivate Post of the Week>>
TRusselo said:
right now with the recent port of the i9000 2.3.3 things have changed.
and changed very recently.
soon enough there will be an easier, more standard way to upgrade.
but keep this in mind....
what we are doing here is programming a phone. the devs AND YOU!
programming an electronic device is not a simple thing, and is not childs play.
the devs have YEARS of experience in programming to bring us the software,
we need to understand what we are doing in order to do it.
so we need to understand programming.
this cannot be done in 10 minutes by just reading instructions.
and this SHOULD NOT be able to be done in 10 minutes by reading instructions.
there are real risks in doing this, that is why it voids your warranty.
you need to understand what you are doing to be able to do it.
thats why you must LEARN in order to do this.
nobody ever learns with brain-dead instructions.
the more you LEARN first, before flashing, the better your chances at success.
the easier the instructions the easier noobs run into problems! Brick their device or get scared and confused about very simple things that they should have understood first!
so the complexity has a dual purpose, it forces you to go out and LEARN before you do anything AND also provides you with alot of information to start learning
<<Captivate Post of the Week>>
Click to expand...
Click to collapse
Nice long post. Although alot of rambling Tru but I like your last line
As for a standard set of installation instructions, I dont think we will ever see it. Each rom is as unique as the person that developed it, and with that individuality comes an individual requirement for implementation.
ATM some ginger roms are wipes, some arent, this used to be true for all froyo/eclair roms.
that is why we USED TO have to flash to stock each time. same now. (for non wipe roms)
that changed! it can again!
as for getting the bootloaders, if you are installing a WIPE rom you dont need to flash the whole i9000 package. Just the bootloaders alone and ONLY ONCE. some roms currently use this method.
other roms that arent wipe roms depend on apps and framework to be there, or might not like other stuff left over that may still be there. so it is necessary to flash back to i9000 stock, this can be done with or without bootloaders if you already have them. but most of the non bootloaders packages have been taken down. once again you only need to get the bootloaders once.
once again all this can change and standardize again. with the following intructions:
from eclair or froyo
1. odin flash GB bootloader and CMW3 kernel in a single package. (small 4 MB package!)
2. boot into CWM3 and flash a WIPE ROM.
done and upgraded.
my fastest upgrade was one extra step. the bootloader package had re-orient kernel with no cwm3 so i had to reboot and odin flash talon between step 1 and 2.
still pretty easy with a wipe rom.
we grow up so quickly...
My wife just received the text from ATT that Gingerbread was ready to download to her Captivate. We are planning on doing that since she is still on Froyo.
My question is this, is there a way to pull the kernal and rom from her phone after she updates and put it on a different Captivate. I would like to learn a little bit about the procedure if there is a way and give it a try. Would Rom Manager do the trick? I have an extra Captivate that was given to me by a friend who upgraded to a different phone so I have a Captivate to "play with". I am trying to learn a little about how all this works so any steps, links, advice, etc would be grealy appreciated. Thanks in advance.
If you are looking for a stock rom I would recommend checking out the stickie in the development thread. It has a variety of one click packages. It would also recommend doing a lot of research before hand. There is a ton of information on these forums. The more you read, the less likely you are to have problems in the process. Good luck!
Sent from my ICS powered SGH-I897.
Here is a method of backing up the whole rom or parts of it. How to make a tar ball, etc. Easier on a Linux system or Mac OS. Cygwin is anoying at time, but will make it work on Windows.
Thanks. I appreciate the info.
You will need root to do that (see the su command?). Search official kk4.
Good day all.
Before I ask my questions I would like to say that In the few days I have been here I have been working on Understanding the Technical terms and Jargon this site uses ever so much, I have learned.
While the wiki (and these posts here) has helped a bit...I still find myself feeling a bit nauseous from what I have been currently been unable to understand so you might have to stand me being a noob for just a little bit longer I'm afraid.
Anywho...on to the questions...
I am aware the ROMs must match a given make and model of a phone to work and custom kernels must be matched to specific ROMs, but alot of these ROMs have really awesome features & improvements. Better Sound, DSP-equalizer, More efficient battery use, more function UIs, more control on security, SONY based Engines, CRT-Off Animations, ...why can't they all just work together?!?! So now I have to ask the crazy...
Is it possible to stack the features of different ROMs?
What is it I need to be looking for compatibility wise between all these ROMs/Themes/Apps/Kernels to make sure that I don't Clay or Brick the Note by combining the wrong codes?
I'm trying to figure out what I can do to mix and match intelligently to get the most out of a rooted note (as is... I suppose... all of you here).
On that...uh...note, I have seen a lot of talk about Titanium-backup App, Clockworkmod Recovery App & Nandroids.
Why do I need to use these to back up?
Why can't I just go into the phone & copy and paste all the files on a folder in the computer? Is it because Android is Linux based? Do not all the files show?
Should I have all these Backup Apps to back up every part of the Note or is just one enough?
Oh and one more thing... I Received my note today & a lot faster than I expected. So...
What would you recommend to be the smartest thing to do first after root?
Decisions Decisions.
Thank You
The most basic differentiating factor is to see if the ROMs are TouchWiz based or AOSP/CM/AOKP based, those are the main 2 categories that every ROM here falls under
Features from one category *mostly* can not be ported to other category if they are not present there. For example, S-Memo are exclusive to TouchWiz ROMs just like Tablet mode is exclusive to AOSP/CM/AOKP ROMs, but there might some rare exceptions
IMHO Titanium Backup is useful only if you have games data, normal apps I prefer to set them up manually to have the cleanest setup possible. Nandroids, OTOH, are essential, they are your safety net if anything goes wrong.
You can't back up an OS just by copying the files over cause you don't have access to the kernel and lower system files, that's where nandroids help
Hope this helps
matius44 said:
The most basic differentiating factor is to see if the ROMs are TouchWiz based or AOSP/CM/AOKP based, those are the main 2 categories that every ROM here falls under
Features from one category *mostly* can not be ported to other category if they are not present there. For example, S-Memo are exclusive to TouchWiz ROMs just like Tablet mode is exclusive to AOSP/CM/AOKP ROMs, but there might some rare exceptions
IMHO Titanium Backup is useful only if you have games data, normal apps I prefer to set them up manually to have the cleanest setup possible. Nandroids, OTOH, are essential, they are your safety net if anything goes wrong.
You can't back up an OS just by copying the files over cause you don't have access to the kernel and lower system files, that's where nandroids help
Hope this helps
Click to expand...
Click to collapse
Oh! Right... I'm not just backing up apps... I'm backing Up the OS. Duh. Ok.
I was thinking about it the wrong way.
I know what a TouchWiz ROM is, and its good to know that Tablet mode is exclusive to AOSP/CM/AOKP ROMs, I didn't know that either. As I mentioned in my post... I'm still working on the Jargon here. What does "AOSP/CM/AOKP" Mean? Can I switch around features if I kept in those respective types of ROMs?
CrazyOGuy said:
Oh! Right... I'm not just backing up apps... I'm backing Up the OS. Duh. Ok.
I was thinking about it the wrong way.
I know what a TouchWiz ROM is, and its good to know that Tablet mode is exclusive to AOSP/CM/AOKP ROMs, I didn't know that either. As I mentioned in my post... I'm still working on the Jargon here. What does "AOSP/CM/AOKP" Mean? Can I switch around features if I kept in those respective types of ROMs?
Click to expand...
Click to collapse
AOSP is "Android Open Source Project". That is just one kind of custom ROM. Also, several ROMs on here are built on "AOSP", meaning they use AOSP as a base and add "features" to it.
CM is "CyanogenMod". They are a very popular team that builds custom ROMs for different phones out there. Same thing applies, people will builld custom ROMs based on CM9 (which is Ice Cream Sandwich based) and add their own "features" to it. CM7 is Gingerbread based and not on the Note.
Also, read about the bricking situations, just to wrap your head around it and stay safe. Basically, just know right now that the only "safe" kernel is the CM9 kernel built by xplodwild OR the DAFUQ kernel built by Entropy.
The ICS sources have come out so we should see more kernels come out as the devs get their hands dirty.
I use Titantium Backup, personally, to back up my individual apps and such when I switch ROMs. Now, of course, if you restore apps, you might run into problems and you might need to wipe data again and start over and not restore apps. But, I RARELY have problems.
I hope all these details help!
CrazyOGuy said:
Oh! Right... I'm not just backing up apps... I'm backing Up the OS. Duh. Ok.
I was thinking about it the wrong way.
I know what a TouchWiz ROM is, and its good to know that Tablet mode is exclusive to AOSP/CM/AOKP ROMs, I didn't know that either. As I mentioned in my post... I'm still working on the Jargon here. What does "AOSP/CM/AOKP" Mean? Can I switch around features if I kept in those respective types of ROMs?
Click to expand...
Click to collapse
AOSP = Android Open Source Project = Google's pure android
CM = CyanogenMod
AOKP = Android Open Kang Project
Features theoretically can be ported between these, but it requires hackery skills since mostly it's framework dependant
For example, AOKP is famous with its ROM Control option in Settings menu, this is not present in AOSP at all and some of it is present in CM9. If you have good knowledge in code you can port, not very easy task
CrazyOGuy said:
What would you recommend to be the smartest thing to do first after root?
Click to expand...
Click to collapse
There are things that need to be done before the root. You need some basic tools to get into the business of flashing stuff.
1. PC Odin - that's a software for flashing firmware from your Windows. You can get it here. Top left hand corner of the first post.
2. Windows drivers - they are needed so your PC can recognize the phone once connect the two. Get it from the same URL, same place.
3. Mobile Odin Pro - basically does the same functions as PC Odin, but from your Note, not from the PC. Get the Lite version
if the Playstore doesn't let you buy the Pro one.
4. Titanium Backup - this is optional. I use it all the time with no trouble, but some prefer to re-install their apps manually after they switch to another Rom. Titanium allows you to backup all your apps and their data, and does a quick batch restore when you need it.
Now about the rooting matter.
I would recommend the following method:
http://forum.xda-developers.com/showpost.php?p=25285584&postcount=3
I think it is by far the easiest and quickest one.
After you are successfully rooted, come back here, report, and we'll take it from there, OK?
We won't be going anywhere.
P.S. If you get into bootloop after the PC Odin has finished the flash, don't panic, but read this:
http://forum.xda-developers.com/showpost.php?p=26460335&postcount=4
chasmodo said:
There are things that need to be done before the root. You need some basic tools to get into the business of flashing stuff.
1. PC Odin - that's a software for flashing firmware from your Windows. You can get it here. Top left hand corner of the first post.
2. Windows drivers - they are needed so your PC can recognize the phone once connect the two. Get it from the same URL, same place.
3. Mobile Odin Pro - basically does the same functions as PC Odin, but from your Note, not from the PC. Get the Lite version
if the Playstore doesn't let you buy the Pro one.
4. Titanium Backup - this is optional. I use it all the time with no trouble, but some prefer to re-install their apps manually after they switch to another Rom. Titanium allows you to backup all your apps and their data, and does a quick batch restore when you need it.
Now about the rooting matter.
I would recommend the following method:
http://forum.xda-developers.com/showpost.php?p=25285584&postcount=3
I think it is by far the easiest and quickest one.
After you are successfully rooted, come back here, report, and we'll take it from there, OK?
We won't be going anywhere.
P.S. If you get into bootloop after the PC Odin has finished the flash, don't panic, but read this:
http://forum.xda-developers.com/showpost.php?p=26460335&postcount=4
Click to expand...
Click to collapse
I did all that Pre-Root stuff two days ago. ☜(゚ヮ゚☜) YEAAAA!
As for how the root went...so far so good. As such I've just been upgraded from noob to kiddie hacker. Yay me...I guess.
I also did go for Titanium-backup App & Clockwork mod Recovery App (Free). Could not find Nandroid.
I am currently on 2.3.6 GB.
With that said. Now comes the fun part(...right?)
If you have done just what cursed4eva did in his video, you are rooted, but still haven't got a proper CLockWorkMod Recovery for further flashing.
If that is the case, you need to go to Chainfire's kernel thread and download the matching CF-Root kernel. For instance, download CF-Root-SGN_XX_OXA_LC1-v5.3-CWM5.zip if you have flashed N7000XXLC1_N7000OXALC1 Open Europe.
You need to extract the kernel zip to get the tar file inside. Put that tar file on your SD card, start Mobile Odin, tap on 'kernel' option, navigate to the kernel tar and flash. The phone will reboot, MO will flash the kernel, and you'll have the fully functional CWMR you need for doing nandroid backups/restores and flashing custom Roms.
Sorry for the Delay. Micro-SD Card took longer to receive than expected.
I have gone in and put that matching LA# .tar file on Moble ODIN. At the risk of asking a question whose only answer can be "DUH!"...
To flash the Kernel (or any of the respective things Mobile ODIN can do) do I press "Flash Firmware"?
My Concern of Bricking > Risk of asking Stupid Obvious Question
Edit: Every single place I searched presses said button...so I guess that's a yes. >_<
Edit 2: Success!
So how are the names given? Is all I need to look for is just match random bits of the titles code to see if the two are compatible?
And with this done...I can now start with some of the fun stuff... right?
I found myself flashing and re-flashing the new mods and kernels to see what I liked to fit my personality
I am running 217 ICS, I was on ICS 217 a blue million times but with my developing sense of learning more about build.prop and system framework
due to me being new to linux and smartphones in general. However, I am a windows, php, C programmer
I found myself. NO SDCARD, with the Droid Utililty, Flashing my Copied bin and image files I wanted but no way to apply them with a zip
1. There is hope for you people that are like me dumb and not thinking ahead lol... j/k
2. Download this file named 6.7.2-180_DR4-16_M2-37
Blur_Version.6.16.217.XT894.Verizon.en.US <!~ I M PREVENTED from posting links new user, enjoy your droid without SDCARD
3. Use RSD Lite v5.7 by motorola, I was running ICS keep in mind.
-- I found conflicting information that people were putting on this forum that you cannot flash back to GB from ICS which is not entirely correct.
4.Flashing this file with RSD LITE v5.7 will flash install and everything without the need for a tool or an install form an external SDCARD.
it saved me and I hope it can save those who misplace SD CARDS.
Currently running ICS Update 217 with this install
Saluti, [email protected]
Contact with messages.
Here's the links that the OP is not yet allowed to post:
ROM: http://sbf.droid-developers.org/cdma_maserati/VRZ_XT894_6.7.2-180_DR4-16_M2-37_1FF.xml.zip
RDSLite and instructions: http://www.droidforums.net/forum/dr...otorola-droid-4-xt894-stock-windows-only.html
Note: That thread on droidforums is a little bit out of date and only contains links to Gingerbread firmware. Do not attempt to flash Gingerbread on top of ICS as you will brick your phone. Use the ICS fastboot linked above.
Thank you for your time hekping all XDA
One, in
Lum_UK said:
Here's the links that ====had to erase qutoed li ks bro, lol, cheers
Note: That thread on droidforums is a little bit out of date and only contains links to Gingerbread firmware. Do not attempt to flash Gingerbread on top of ICS as you will brick your phone. Use the ICS fastboot linked above.
Click to expand...
Click to collapse
Thanks for taking the time to post that. I started with the droid 4 first phone in u years. Needless to say after 3 months of flashing rooting and figuring out what the system is about I couldn't have made a better choice. I am great with windows and php and undesrstand the fundamentals I never did use linux because i thought business was windows. Anyways through Android OS i have founf a new world that would've been better for me alltogether. I swear I pay my 404.00mphone bill, but thank the rom developeres and the Utility that i mix and match boots to correspond to his batch flashing. ****DO NOT DO THIS i usually break my phone trying new roms 3 times a day. ...
This time i was trying to find an alternative to going to walmart. I am yet to understand why after flashing the system wothh Matt's Utility that it doesn't boot as RSD lite did..... Mind you I'm very lucky to not have a brick i have tried everything reasonable. And appreciate ALL you guys here at XDA-DEVELOPERS whose Articles helped me learn the system, learn the flashing and better utilize MY phone. TThis is an awesome forum and thanks to the knowledge you have shared with me which is priceless,
Saluti,