[Q] Building a ROM based on stock factory images - Android Q&A, Help & Troubleshooting

I'd like to create a flashable zip of a full stock ROM with some really basic changes from the stock Nexus 4 4.4 factory image. I know the core of the question doesn't fit this forum section, so please bear with me and read to the end before telling me to take this to the N4 section.
I've been reading guides here on XDA on flashing and porting Android ROMs, as well as the official documentation, for a while today. Some of them are quite good and thorough. All of them seem to focus on AOSP or ROMs like CM being modified or built. There's one thing I'm left a bit unclear on which I would appreciate someone more knowledgeable clearing up for me.
How is it that I get from a factory image to a flashable zip, or from AOSP source to a flashable zip that's identical to the stock factory images Google releases?
I understand that I may need to compile this from source and I'm fairly comfortable compiling source code on Linux. What I'm not completely clear on his how close AOSP is to the stock Google factory binaries and exactly what changes would need to be made to bring it in-line with those releases other than hardware drivers.
This is initially just for my own purposes to have a flashable zip of stock Android the way I like it on my N4. The tweaks are low in number and scale. The LTE hack, the 4.4 tethering fix, and the GEL are the primary things I'd like to incorporate myself.
I'm sure someone has already done something similar to what I'd like but I'd also like to learn this so I'm not really interested in being pointed to ROMs which have already accomplished this. I do appreciate the thought though.

Related

[Q] AOSP or true custom ROM

I've been following the development of so-called ROMs for the Vibrant (and other SGS devices), but I have yet to see a single AOSP ROM. Even when Samsung released the original kernel sources for 2.1, there were no AOSP 2.1 ROMs. Why not? Is it because they don't know which BLOBs to pull for insertion or the proper vendor overlays?
Some developers have done great work with SGS kernels (especially supercurio and his Voodoo kernels ... eugene373's tend to always wipe the internal SD card unnecessarily ...). But, a kernel does not a ROM make ... therefore I ask, what is truly missing to build an AOSP ROM. I've gone through the sources, but I don't follow makefiles too well.
I know we have another month or so before Samsung is obligated to release their 2.2 kernel sources, but that should have no impact on 2.1 AOSP ROMs. Therefore, I ask "what is the hold up?" What is missing, and what might I contribute ...
Need 2.2 source code...
2.1 is a dead horse--why bother when 2.2/2.3 are out?
The reason to bother is to at least get AOSP running. Once its on 2.1, it'll be easier to get 2.2 AOSP running on it. But claiming 2.1 is a "dead horse" is the wrong path ... the real question still stands: after 9 months on the market their still are no AOSP ROMs.
MIUI
Now that vibrant 2.2 source is released ... we finally have a REAL AOSP port and my all time favorite from my old HD2 the MIUI.... so keep your heads up and wait for it to get finished.
Get a custom rom. There are so many good devs doing them don't waste your time on AOSP....... until they release the actual source code...... on April 22
sarim.ali said:
Now that vibrant 2.2 source is released ... we finally have a REAL AOSP port and my all time favorite from my old HD2 the MIUI.... so keep your heads up and wait for it to get finished.
Click to expand...
Click to collapse
Except, the 2.2 source for the Vibrant has not been released. The SGH-T959D that shows Froyo sources on Samsung's site is for the Canadian Fascinate, not the US T-Mobile Vibrant. Samsung has yet to release the 2.2 sources.
oka1 said:
Get a custom rom. There are so many good devs doing them don't waste your time on AOSP....... until they release the actual source code...... on April 22
Click to expand...
Click to collapse
Except the so-called "custom ROMs" are just modifications on the stock theme, a replacement kernel and a change of some of the supplied applications.
There is nothing close to a full "custom ROM" such as CyanogenMod or MIUI because we don't have Samsung's sources. What is passing for a "custom ROM" for the Vibrant are just repackaged files. It is akin to the "ROM cooking" that took place for the WinMo phones, not a truly ground-up build from source that is possible with Android.
EDT/Devs4Android has the MIUI build. From Source.
TW has a 2.2.1 in testing.
EDT has a 2.2.1 Beta released.
TW has a 2.3 AOSP in testing. From Source.
EDT has 2.2 AOSP in testing. From Source.
What you want is out there for you.
Watch the forums and reply when a call for Alpha testers is posted.
Hopefully it won't be long before you see a full TW/EDT/Devs4Android collaboration!
I think what the original poster is trying to ask (and I have the same question) is why were there never any real 2.1 AOSP, cyanogen5 for the vibrant. The source for 2.1 has been around for many months. Were some other proprietary bits missing, was the released source code such a mess that it was unbuildable, something else? With those questions in mind, why will things be any different when the 2.2 source comes out?
mattb3 said:
I think what the original poster is trying to ask (and I have the same question) is why were there never any real 2.1 AOSP, cyanogen5 for the vibrant. The source for 2.1 has been around for many months. Were some other proprietary bits missing, was the released source code such a mess that it was unbuildable, something else? With those questions in mind, why will things be any different when the 2.2 source comes out?
Click to expand...
Click to collapse
Yes, this is more towards what I was getting at. We do not have Samsung's kernel sources for 2.2. And, we do not have a Samsung provided vendor overlay.
When we receive these two pieces, then a true AOSP build will be possible. However, we do have the 2.1 kernel sources, so why wasn't a true AOSP build possible then? What was missing, and can we actually expect Samsung to release the overlay that's needed?
Actually, that's true. I know it was old but why didn't anyone build a 2.1 cyanogen or aosp rom? (Not to say its easy.)
Sent from my SGH-T959 using XDA App
A noob question, kindly can someone explain what is the vendor overlay stuff?
Many thanks!
Where have you been?
rpcameron said:
I've been following the development of so-called ROMs for the Vibrant (and other SGS devices), but I have yet to see a single AOSP ROM. Even when Samsung released the original kernel sources for 2.1, there were no AOSP 2.1 ROMs. Why not? Is it because they don't know which BLOBs to pull for insertion or the proper vendor overlays?
Some developers have done great work with SGS kernels (especially supercurio and his Voodoo kernels ... eugene373's tend to always wipe the internal SD card unnecessarily ...). But, a kernel does not a ROM make ... therefore I ask, what is truly missing to build an AOSP ROM. I've gone through the sources, but I don't follow makefiles too well.
I know we have another month or so before Samsung is obligated to release their 2.2 kernel sources, but that should have no impact on 2.1 AOSP ROMs. Therefore, I ask "what is the hold up?" What is missing, and what might I contribute ...
Click to expand...
Click to collapse
Dude theres been a true AOSP ROM for the Vibrant since like december and thats CM 6.1
Im running it now
rpcameron said:
I've been following the development of so-called ROMs for the Vibrant (and other SGS devices), but I have yet to see a single AOSP ROM. Even when Samsung released the original kernel sources for 2.1, there were no AOSP 2.1 ROMs. Why not? Is it because they don't know which BLOBs to pull for insertion or the proper vendor overlays?
Some developers have done great work with SGS kernels (especially supercurio and his Voodoo kernels ... eugene373's tend to always wipe the internal SD card unnecessarily ...). But, a kernel does not a ROM make ... therefore I ask, what is truly missing to build an AOSP ROM. I've gone through the sources, but I don't follow makefiles too well.
I know we have another month or so before Samsung is obligated to release their 2.2 kernel sources, but that should have no impact on 2.1 AOSP ROMs. Therefore, I ask "what is the hold up?" What is missing, and what might I contribute ...
Click to expand...
Click to collapse
For probably the same reason that many phones with non AOSP firmware running 1.5/1.6 did not bother with AOSP 1.5/1.6 when they were released around the time 2.1 source hit. Why bother developing at all for what is essentially an "out of date" OS.
The only people it seems who actively continue to develop for existing (as opposed to new) firmware are manufacturers and carriers. This stupidity should be left to the manufacturers who still do this.
One of the larger snags way back then (sits in his rocking chair on the porch) was a lack of understanding of the phones proprietary aspects and how to work around them. But we have a fairly clear understanding of Samsung's boot process now, and RFS can now easily be turned into a distant memory.
I would wager a guess that the apathy towards 2.1 will not repeat itself once we have 2.2 source widely available and the low level similarities between 2.2 and 2.3 should have Gingerbread being more than the experiment it currently is. It's been barely more than a week since Eugene's little present manifested and there are already proper and stable kernels available.
Keep in mind that the devs we do have, have done a phenomenal job of cleaning up, speeding up, and drastically enhancing our existing 2.2 release. And perhaps to the point where many will not really care, though I know many would still like to see CyanogenMod6/7 properly on this phone.
Master&Slave™ said:
Dude theres been a true AOSP ROM for the Vibrant since like december and thats CM 6.1
Im running it now
Click to expand...
Click to collapse
Um, that's not quite true. The CyanogenMod.com website lists 0 files available for download for either experimental or stable files. The CM6.1 you must be running is not a true CM build.
Also, CM is not AOSP, but rather AOSP with modifications.
phrozenflame said:
A noob question, kindly can someone explain what is the vendor overlay stuff?
Many thanks!
Click to expand...
Click to collapse
The vendor overlay tells the AOSP build system which proprietary files are needed from the device that are not available in source form. This includes things like GPS and video drivers, baseband firmware for wireless radios, &c.
hi everybody !
a month age i decided to compile a new rom for my Galaxy S absolutely from AOSP source ( branch 2.2.1_r1 ) after some compile-time problem and many painful steps to resolve ,eventually the rom successfully built and can boot it up flawlessly on emulator.
i create a nandroid backup of current rom and installed the compiled one. but i am facing new problem :
1- the phone successfully boots but after short while screen began
flicking several time and the phone go in deep sleep and never wakeup
( power button or menu button does not do any thing )
2- touch screen works only for some second that I can unlock the
phone
3- there is no network available
4- I have downloaded samsung opesource package for GT-I9000. it
contains a folder named 'platform' but when i merge these files to
AOSP , the compile process stops and fails again. if there any one can
help me which files from samsung source should i merge and how ? if
you now the answer and dont have spare time then some internet link or
online document is really useful .i have no problem studding and
reading and searching . reaching to target is my only hope .
I am really disappointed why there is not a good and complete step2step tutorial to compile an AOSP rom for galaxy s (GT-I9000) !!
such docs is available for phones like dell streak , desire , dream , magic , .... . i really want to to active these aspect on XDA forum and with help of all you ( mods and masters ) try to create such tutorial that any one in world can use to refer . i think XDA is the only reference on net to collect and create such help and document. please help me and leave PM or comment to agree ot disagree and from where can i start ?!! thank in advanced .
edit :
there is a google groups post that i send my question in Android-platform . if you prefer please join this group and active that post to ask any question related to 'galaxy s compile from source ' .
post located at http://groups.google.com/group/android-platform/browse_thread/thread/da5d6f18f3bd3c9b

[Q] How is Cyanogenmod related?

I had hear about cyanogenmod earlier and even tried to install it once when I was a rank noob without much luck. In my recent explorations of kernels and cifs I found myself at the cm site. It seemed pretty organized and I thought it might be interesting to have another go at it. I followed the instructions and installed it and it worked flawlessly. I restored my apps from Titanium backup and I'm up and running. I did some research in our forum and that, combined with some of my own observations, makes me wonder about the relationship between CM and some of the other roms like Vegan Ginger (which I really like) I get the impression that some or even all of our roms here are derivatives of CM that have been tweaked further by our devs. Is this correct? What is the difference between Vegan Ginger for example and CM7? I'm really puzzled because the kernels and the basic look and feel seem very similar. Someone even remarked that all of our roms are derivatives of CM. I'd be interested to know some of the background and the pedigrees of the various roms and their relationship with CM.
Cyanogenmod is one of the more known and talented group of Android ROM developers, developing for many devices and being a large team of dedicated coders, artist, etc...
They have taken the stock AOSP code and have modified, enhanced and added features far beyond the stock code. Most ROMs you see that have these additions are because they are forked from Cyanogenmod's github and then edited to look like their own (different graphic images, different text wording, etc..).
CyanogenMod was also one of the only ROM devs that I know of that got a Cease & Desist letter from Google early on and created the separated config of installing the rom.zip and Gapps.zip (Rom image and Google Apps).
As for how Vegan-Ginger relates...
Project Moving to Gingerbread
January 12, 2011 14 Comments
Just a quick update for everyone so you know where we stand at this point. Because of all the issues I have had trying to reverse engineer fixes into VEGAn, we have decided to move away from the actual VEGA system image. We have decided to move the project to a MODIFIED CyanogenMod 7 (aka Gingerbread) ROM with “inspiration from VEGA”. This will allow us to not only fix issues more easily but our work would also directly benefit the CM7 camp as well. This would give also give everyone the choice of a completely stock gingerbread like ROM as well.
THERE IS NO ETA AS OF YET FOR A RELEASE. When there is one…. you all will be the first to know! Exciting Times Ahead.
-GoJimi
Extreme GingerNerd
Click to expand...
Click to collapse

[Q] how to port ics (serious learner)

Lemme get some things out of the way.. I am a noob. I have searched. I have read some of the results from the search. I am overwhelmed by the 20+ pages of results (lol). I am not 100% sure this is the correct forum for this (not sure where else would be ).. I believe this is one of those things where I need help based on my situation.. Ok, so here I go.
I wish to start porting ICS to my phone. That's my goal. I have general understanding of how linux works, but I do not know much about the android specifics of how they work, or what needs to be modified for this to work. I do not plan to use the kitchen tool as I wish to learn this the hard way. I believe this will help me become more understanding in what I am doing. However, at this point I don't and that's why I'm here. My phone model is irrelevant almost because its prepaid and usually the communities don't even recognize their existence.. at least that's how I feel about it. But I digress. My phone is the zte warp by boost mobile and I am here to learn hopefully the things that will get me started on porting ICS to this phone. I right now believe that the best thing for me to learn is how the android related files work because as it is, I only looked at guides on how linux works and I understand most of it. I'm not sure that's the best thing that will help me port ics, but I'm certain it is important.
Please help me figure out where I should start in learning how to port ICS to my phone basically.
Thanks XDA
anyone? I am quite serious about wanting to do and go into this but I have yet one thread that anyone's ever replied to.. (or post iirc) which puts a damper on me
Snake X said:
Lemme get some things out of the way.. I am a noob. I have searched. I have read some of the results from the search. I am overwhelmed by the 20+ pages of results (lol). I am not 100% sure this is the correct forum for this (not sure where else would be ).. I believe this is one of those things where I need help based on my situation.. Ok, so here I go.
I wish to start porting ICS to my phone. That's my goal. I have general understanding of how linux works, but I do not know much about the android specifics of how they work, or what needs to be modified for this to work. I do not plan to use the kitchen tool as I wish to learn this the hard way. I believe this will help me become more understanding in what I am doing. However, at this point I don't and that's why I'm here. My phone model is irrelevant almost because its prepaid and usually the communities don't even recognize their existence.. at least that's how I feel about it. But I digress. My phone is the zte warp by boost mobile and I am here to learn hopefully the things that will get me started on porting ICS to this phone. I right now believe that the best thing for me to learn is how the android related files work because as it is, I only looked at guides on how linux works and I understand most of it. I'm not sure that's the best thing that will help me port ics, but I'm certain it is important.
Please help me figure out where I should start in learning how to port ICS to my phone basically.
Thanks XDA
Click to expand...
Click to collapse
From my limited knowledge, I think it is a huge task undertaking, you can download Android source code from Google, the hard part will be the device driver development and porting for Linux kernel (and maybe portion of Android). If you are lucky, you can use the existing phone bootloader (or you have to port one). Understanding the inner of the phone (different chip set may need different device driver) will be another challenging task.
by the device driver development, you mean all the libs that go into the phone? Couldn't I just copy/paste the pre-existing libs that are already made for the phone? Also the phone im working with is a bit strange really.. noone has been able to compile the kernel from its source and get it to boot yet.. when it was compiled the zImage was different than that of the stock one.
And yeah, I have downloaded the aosp source.. I just need to know where to start at and the processes involved really
Snake X said:
by the device driver development, you mean all the libs that go into the phone? Couldn't I just copy/paste the pre-existing libs that are already made for the phone? Also the phone im working with is a bit strange really.. noone has been able to compile the kernel from its source and get it to boot yet.. when it was compiled the zImage was different than that of the stock one.
And yeah, I have downloaded the aosp source.. I just need to know where to start at and the processes involved really
Click to expand...
Click to collapse
To answer you question no the drivers and lib files are different for aosp based rooms then they are for the stock OEM from. The first step will be to get a working kernel. Without anything you do will be pointless
I'm somewhat interested in the same thing, and from what I've gathered, you'll need to do these things to begin ROM development:
1. Read every page on the AOSP site and grab a copy of the AOSP source. It probably wouldn't hurt to read the regular Android developer wiki as well.
2. Learn about Linux driver development:
http://lwn.net/Kernel/LDD3/ (this is apparently considered THE BOOK on Linux driver development)
http://www.freesoftwaremagazine.com/articles/drivers_linux
3. Learn pretty much every detail about your phone and its hardware, especially when it comes to how ROMs are installed on it. For example, my phone (the Droid X2) has a locked bootloader, so 2nd init has to be used to boot new ROMs, and this makes it so that we cannot update the kernel.
You can usually find this sort of information on your phone manufacturer's website. Sometimes they even post the source code to their phone's drivers, which is helpful.
4. Look at other ROMs (preferably for your phone) and see how they work. The source code is freely available for most popular ROMs.
For example: CyanogenMod keeps their source code in a public git repository: https://github.com/cyanogenmod
5. Get to work on porting!
I would highly recommend starting with something smaller, however, just as a start. One good jumping-off point is probably this guide: http://forum.xda-developers.com/showthread.php?t=1272270
If any part of this was wrong, or if I left something out, somebody feel free to correct me, I'm still a noob.
Thank you so much for your direction, however,, android kitchen.. im not sure about that because isnt that only ment for htc devices? My phone is made by zte
what device do you even have?
if it's stuck officialy on 2.1 or 2.2 there's no hope that if you even port it that it'll work
its the zte warp from boost mobile (prepaid). Btw if I compile an aosp ics launcher and put that on my phone whats the chances of that working?
edit: it uses 2.3.5
Well Sebastian responded on android forums, apparently zte is very bad at version control with their kernel sources. So when they complete one project, they use the same source for the next project, and what they release could be for anything. Apparently the blade source had the same issues, it took him a while to get them to correct the source
Sent from my N860 using Tapatalk
Yeah I noticed that there were ppl saying there were things similar but I'm not sure what will work or what won't.. guess its time to start a petition on zte to release the source code lol
edit: seems like zte's bein a bad company and violated the GNU GPL license for not providing a complete source code.. I compiled an email and sent it to someone who can proof read it and send it to the right person for this kinda thing.. danggit zte

[Q] Kernels and Android Versions

I'm not understanding how kernels and ROMs connect. Can someone give me some extra insight?
[Hardware] <-- Unique to every phone
--
[Kernel] <--- Tells the OS how to talk to the hardware
--
[ROM] <--- Slightly confused. Is the OS in the Read only Memory, or has this term changed its "street" meaning?
I understand that most ROMs (e.g. CM7 and CM9) include both the kernel and the ROM, but can you flash these separately too?
I have a 1.5 year old thunderbolt that's rooted, and has CM7 which is based on gingerbread. I believe HTC has also released the kernel as open source, which is probably the reason I have CM7
Anyway, I guess what I'm looking for is an answer/guide/forum that explains why I can't install newer versions of android onto the already working/open source kernel I'm already running. Is it accurate to view the kernel as all the phone's drivers, or just the CPU driver? If that statement is true, why can't I load ICS or Jelly Bean onto my already existing set of drivers?
I'm thinking about starting a Wiki on this if 1) it doesn't already exist, and 2) I can wrap my brain around it enough to share with others!
Thanks to anyone with a response!
shadowrelic said:
I'm not understanding how kernels and ROMs connect. Can someone give me some extra insight?
[Hardware] <-- Unique to every phone
--
[Kernel] <--- Tells the OS how to talk to the hardware
--
[ROM] <--- Slightly confused. Is the OS in the Read only Memory, or has this term changed its "street" meaning?
I understand that most ROMs (e.g. CM7 and CM9) include both the kernel and the ROM, but can you flash these separately too?
I have a 1.5 year old thunderbolt that's rooted, and has CM7 which is based on gingerbread. I believe HTC has also released the kernel as open source, which is probably the reason I have CM7
Anyway, I guess what I'm looking for is an answer/guide/forum that explains why I can't install newer versions of android onto the already working/open source kernel I'm already running. Is it accurate to view the kernel as all the phone's drivers, or just the CPU driver? If that statement is true, why can't I load ICS or Jelly Bean onto my already existing set of drivers?
I'm thinking about starting a Wiki on this if 1) it doesn't already exist, and 2) I can wrap my brain around it enough to share with others!
Thanks to anyone with a response!
Click to expand...
Click to collapse
You are correct about the ROM, but ROMs also include the kernel (if it didn't, or no kernel was flashed separately, the device would not boot). Yes, other kernels can be flashed on your existing ROM, but it's not necessarily going to be compatible.
Sort of, but there's a lot more than that. See here and here. Later versions of Android will require newer drivers,etc. which the existing kernel won't provide (they'll be outdated). Back porting and additional coding is theoretically possible, but insanely difficult (many times). Even after this some things may still not work.
Thanks for the insight, I was able to get a lot deeper into this with those links. For anyone else wandering down a similar path, you might as well stop now! Here are a few links:
http://forum.xda-developers.com/showthread.php?t=1039217&page=2#17
http://www.cs.uwc.ac.za/~mmotlhabi/avmk.pdf
http://www.iteachandroid.com/2012/01/what-is-firmware-rom-and-firmware.html
So, if anyone else is still listening, I do have two more questions:
Do any phones have truly open source drivers? (a.k.a. higher probability of allowing old hardware to work with new android OS)
Is there any way to determine which phones will be supported by the custom-ROM community early on? I know the Nexus line doesn't have vendor modified code, is that the direction which would have the highest probability to stay at top of the Custom ROM curve without upgrading devices every year?
Thanks again for any insight! I hope I'm posting this in a Newb-Friendly forum!
shadowrelic said:
Thanks for the insight, I was able to get a lot deeper into this with those links. For anyone else wandering down a similar path, you might as well stop now! Here are a few links:
http://forum.xda-developers.com/showthread.php?t=1039217&page=2#17
http://www.cs.uwc.ac.za/~mmotlhabi/avmk.pdf
http://www.iteachandroid.com/2012/01/what-is-firmware-rom-and-firmware.html
So, if anyone else is still listening, I do have two more questions:
Do any phones have truly open source drivers? (a.k.a. higher probability of allowing old hardware to work with new android OS)
Is there any way to determine which phones will be supported by the custom-ROM community early on? I know the Nexus line doesn't have vendor modified code, is that the direction which would have the highest probability to stay at top of the Custom ROM curve without upgrading devices every year?
Thanks again for any insight! I hope I'm posting this in a Newb-Friendly forum!
Click to expand...
Click to collapse
For both your questions, the Nexus-line devices would be the way to go. They usually have everything working on new Android versions the soonest, and Google always releases their code, etc.
Hi
i can use linux kernel (zimage) to update android kernel if yes ,how ?
thnx

[Q] Building a custom ROM for Xperia-L from AOSP

Pardon my ignorance. Just for fun and learning, I am willing to build a custom ROM from scratch for Sony Xperia-L from Android AOSP. But, even after going through a number of tutorials, following are the issues which are yet unclear to me:
How to obtain Xperia-L specific drivers to intergrate it into my build. Please note that unlike a few tutorials has suggested, I don't want to start from CM ROMS. I want to do it from 'scratch'
I have downloaded Open source archive for build 15.3.A.1.12, 15.3.A.1.14 and 15.3.A.1.16. It contains two top level directories: kernel and platform. What are these two for? Given the size of AOSP so large, I presume this archive does NOT contain full source for Xperia-L stock ROM. Am I correct to reason that?
Without using kiddie-approach, e.g. different ROM kitchen, what is the recommended approach to for a beginner to master the art?

Categories

Resources