I'm trying to get started in Android development, and I thought that building CyanogenMod 7 from source, for my Galaxy S II, would be a good start. Well, between Google's android development site, and the CM wiki, I got it built and started poking around. My biggest problem so far was the Kernel.org outage, since everything android and open-source on the net is based around that. It meant that in order to install repo, I had to use a third-party mirror of it (which is identical, it was just hard to find references on how to change where it was updating from)
Basic steps were:
- Download prerequisites
- Install Repo (which was a total pain, since its hosted on kernel.org)
- Initialize repo using CM7 as a source (easier, since CM7 is hosted on github)
- Sync (Big undertaking, wasnt expecting 7 GIGABYTES of data)
- Brunch (actually builds the image to flash onto your device... and took 5 hours on this netbook)
But now I need to figure out the next step... Because I know I cant just throw myself into changing files in the various directories... I need to use Git for that. However, my problem lies in the fact that I dont know how interchangable repo and git are. Some commands overlap, but having repo doesnt mean you can just start using git in the same directory. No '.git' is built by repo, so I need to figure out the best way to track changes properly, for eventual submission to the Gerrit code review system.
Which brings me to my next problem: How do I pull down changes from Gerrit, in order to review them? It seems like git needs to be initialized in the correct directory for testing, but is the correct directory /android/system, or the actual location of the patch in the directory structure? Its hard to google search for repo and git, since the word repo is in repository, which is in every single 'just git' article on the internet.
EDIT: It seems that there is a .git directory initialized in each of the 'projects' (which is basically a subdirectory) already. Good to know!
Its really frustrating, since I'm trying to make some progress, but I figured I'd start blogging what I was working on, so that I could map out my learning a bit, and help others that are trying to get started as well, assuming I actually make some progress.
Project Ideas:
- Better dialer that supports T9 (I know a guy who is working on this, but I dont like his button layout, and development is slow.)
- Ringlock Lockscreen tweaks (there are two competing projects for this, I want the lock/volume rings to be on a fixed horizontal track)
Equipment:
- Samsung Galaxy S II
- HTC Desire Z (HTC Vision)
- Compaq netbook
- Ubuntu 11.04