- Dec 28, 2011
- 8,348
- 2,594
- 0
Excellent write up! I have been dabbling about with the source myself since it was released. Building on Fedora 17 since I prefer that to Ubuntu (the process is largely the same).
Some of the permissions problems may come from running the extracting the binary drivers as root (you have "sudo sh script.sh" specified). I don't know of any reason you need to be root to extract the binaries. I extracted them as my user.
The part that I have been trying to find more info on is the Google apps stuff. I'd like to do as much myself as I can (I'm still a little unsure about installing some random zip that I cannot verify on my phone). Anyone have any information about how the gapps .zip files are made? I have managed to unpack the 4.1 factory image for the Nexus7 (the 4.1.1 images aren't up yet) and could copy gapps from that. I have looked at some gapps .zip files I have downloaded and there is a bit more than just the APKs. Anyone have any pointers about this?
Also, has anyone played with pulling in any of the Verizon stuff? Not sure what I might want. Definitely not Backup Assistant. MyVerizon can be useful, though.
The hardest part of this for me is finding the information I want/need. Someone knows it, it's just a matter of tracking it down. I want to do more than just download a zip that someone else has put together.
My apologies for not responding at length earlier, I was out and about

Here's the basics of a GAPPs package (if you haven't already broken one down):
- A META-INF containing an install script
- A system folder containing the apps and their associated files. The big thing to look for here is the apps are in system/app.
There may be other folders--I've seen an "optional" folder--but really what you need (like any flashable zip) is the stuff you want on your phone (the apps) and the way to get it there (the updater script).
What I do (and have done) is check out the latest GAPPs--say Jelly Belly's 7/14 package, and look and what's changed or how they do things, then I try to see how I can do that myself. I learn by analogy, so comparing two packages and figuring out how to make my own is the best method that I personally can utilize.
For "solid" GAPPs, I would recommend the above--Jelly Belly--as well as Bugless Beast if you want to incorporate them into the rom (which I dissuade, but may be easier for your own, personal use).
For GAPPs issues, the general issues were FC'ing and a few things not working. Off the top of my head, here are the issues I and "real" developers ran into:
- Google Talk - force closes
- Camera - doesn't work, Gallery force closes
- Google Now - at first, it was missing a system/lib file as well as a language pack
- Auto Restore (from market) - broken, except for BB and I believe Jelly Belly now
There were others, but those are the big ones off the top of my head. The AOSP release was fairly "buggy." Could that be attributed to some "error filled" builds? Possibly. I've read that most people think a build's not solid unless it's guaranteed to be so, and that guarantee comes with hardware that I and a lot of people don't have (16gb of ram at a minimum being one; also, the ideal '-j#' is -j16 and higher). But as of this moment, it appears that most devs have figured out how to fill the cracks, so I recommend seeing what they have done, give proper credit, and working it yourself

Hey, DM, great guide.
I'm currently running a Windows Machine (Win 7, 8Core i7 @2.8, 8GB RAM, 1.5TB HDD) and wanted to build JB really badly! Could I install Oracle VirtualBox and build Android by running Ubuntu on a Virtual Machine?
Secondly, I want to build it for a different device. The latest OS my device officially had was 2.2.3 but through our lovely devs we have 4.0.4 currently running quite smoothly. I want to build JB for it though I have no idea exactly how I would do it. I need to have my device (thunderc) be read or w/e for it to work, but I know very little about Linux. Any insight on my situation?
First off, thanks!
Yes, you can build on a VM machine. I believe the official AOSP link has a bit more about it; you look to have more than enough ram to handle it, so you should be fine.
For your other question, do you know if your device is supported by AOSP? If it is, then I suggest syncing with the master (remember, we have two options--master and a specific branch), then when you get to "lunch" use that and the series of commands after to select your device.
What you may have more success with is this path--do AOKP or CM build roms for your device? If they do, you can sync to their "gits" and you can build from them.