The list of outstanding issues is at the TODO page.
Follow the official instructions for building AOSP to install depdencies. Stop at the point of downloading the source.
Make sure you have a bin directory in your home directory and that it is in your $PATH (if using a C-style shell such as csh or tcsh, use export PATH ~/bin:$PATH):
You may want to make that $PATH change permanent by adding it to your shell's startup file.
Fetch the repo tool and make it executable:
Make a directory for your Blandroid tree and use repo to initialize the tree:
Once the tree has finished downloading, ensure USB debugging is enabled on your phone (Settings -> Applications -> Development -> USB debugging) and extract the necessary proprietary files from your phone. For Nexus S/crespo:
For Nexus One/passion, make sure you are running a Gingerbread ROM (like Blandroid) first, as the Froyo (2.2) hardware camera drivers are incompatible.
Now you can build the tree. This will take a long time and use a lot of disk space, RAM, and CPU. For Nexus S/crespo:
For Nexus One/passion:
After compiling, you can flash individual images like system.img, or build a complete update.zip-style file to flash everything at once:
To update your tree at a later time, issue a repo sync:
Each git tree will be synched into .repo/projects and then synchronized (merged) with your checked-out trees.
To contribute a change to Blandroid, you first need to create a fork of the specific module you are working on. This can be done on Github by navigating to the proper project and clicking the "Fork" button at the top. A cloned copy will appear under your user account.
To start working on your changes, you will first need to add your fork as a remote in your working tree. In this example, we will be forking the Camera application.
Add a remote pointing to your newly forked tree, and then fetch its branch information:
blandroid/packages/apps/Camera$ git remote add fork [email protected]:(your github username)/platform_packages_apps_camera.git blandroid/packages/apps/Camera$ git fetch fork From github.com:(your github username)/platform_packages_apps_camera * [new branch] master -> fork/master
To commit a change to your forked tree and push it to Github, you must first create a branch. repo strips branch information when checking out from the trees in .repo/projects, so the tree you work in will not be on any branch. You can checkout master, though it is a good idea to create your own branch for your change.
Perform your changes, commit, do a test build and load the changes to your phone to make sure they work as expected. Once you are satisfied with your changes, you can push them to your fork:
blandroid/packages/apps/Camera$ git commit Android.mk [my_change ad10a88] testing a change 1 files changed, 1 insertions(+), 1 deletions(-) blandroid/packages/apps/Camera$ git push -u fork my_change Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 302 bytes, done. Total 3 (delta 2), reused 0 (delta 0) To [email protected]:(your github username)/platform_packages_apps_camera.git * [new branch] my_change -> my_change Branch my_change set up to track remote branch my_change from fork.
To have your changes merged upstream into Blandroid, navigate to your fork on Github, select your new branch (if you made one), and click the "Pull Request" button.