Building Android Filesystem
|How to get started building your own binaries for the Android OS on your OMAP Platform|
|Overview||Step 1||Step 2||Step 3||Step 4||Step 5||Step 6||Step 7||Step 8||Step 9|
- Step 4
 Pulling Android Filesystem Sources
During this stage of the build you must decide to take the latest available code or stick with a stable release. The latest code may have fixed some problems with the previous stable release, and added new features; However, it is not guaranteed to work without any problems. Selecting a stable release will provide you with a better starting point because it is well tested.
 Latest Code
Initialize the project to use the latest manifest
Select a Android release to work with from this section below.
$repo init -u git://git.omapzoom.org/platform/omapmanifest.git
$repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b eclair
$repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b froyo
$repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b gingerbread
$repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b ics-mr0
$repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b ics-mr1
Then just run:
 Downloading Specific Projects
You could download a particular project, you want, by doing a 'repo sync' for that project:
$repo sync hardware/ti/omx $repo sync external/opencore $repo sync frameworks/base ...
 Stable Release
The stable tested release version will provide a tested, verified stable point in the release. Download these versions if you want a point of known functionality. These stable versions are tested by TI test team, and both test results and release notes have been produced. All the Open Sourced code will be accessible via this method. Apart from this you can access certain HW accelerated codecs, such as WLAN/BT firmware for Zoom-II platform. There will be additional HW accelerated codecs, 3rd party content & features that may be available from releases obtained through TI. To obtain licenses for additional content, contact your TI representative.
To access these releases:
- Obtain the correct manifest file from omapmanifest
- Initialize your project with the manifest you have chosen
- Obtain the source code for the release
 Obtain Source Code for Release
Clone manifest project, and review current available tags thus:
$ cd $MYDROID/my_manifest $ git clone git://git.omapzoom.org/platform/omapmanifest.git $ cd omapmanifest $ export MANIFEST=`pwd` $ git tag <see section below>
 Manifest Tags
Print out of example of 'git tags':
RLS25.INC2.5rc2 RLS25.12RC0 RLS25.6rc4 RLS25.6rc7 RLS25.6rc8 RLS25.7rc0 RLS25.7rc1 RLS25.7rc2 . . . RLS25.9rc4 android-1.0
Indicate official released software versions. These versions will have published Release Notes and Product Test results associated with them.
- For example: RLS25.6 indicates the official 25.6 release version.
Indicate an intermediate build between official releases. These intermediate builds are called "release candidates". They should be considered unstable intermediate builds. They are used to provide a stable compilation point at which testing can begin between releases. The test results for these builds will not be published externally.
- For example: RLS25.7rc1 is a point used for testing between the 25.6 release and the 25.7 release.
Indicate official released software versions for OMAP3630. These versions will have published Release Notes and Product Test Results associated with them.
* For example: RLS25.INC2.6 indicates the official 25.6inc2 release version.
Indicate an intermediate build between official releases for OMAP3630. These intermediate builds are called "release candidates". They should be considered unstable intermediate builds. They are used to provide a stable compilation point at which testing can begin between releases. The test results for these builds will not be published externally.
- For example: RLS25.INC2.7rc1 is a point used for testing between the 25inc2.6 release and the 25inc2.7 release.
- For example: RLS25E.16 indicates an Eclair (rather than Donut) build.
Select a release 'git tag,' and use a hard reset command:
$ git reset --hard RLS25.6
 Initialize Project
Initialize project based on the chosen manifest:
$ cd $MYDROID $ repo init -u $MANIFEST $ repo sync
This process takes about an hour. (Get some coffee, relax, stretch or do some other things as the git objects are fetched and refactored into the code base.)
Tip: Although the first 'repo sync' time is unavoidable, the subsequent ones can be considerable sped up. Here is a tip that can save you some time with 'repo syncs' later on.
Tip: Another tip to parallelize your 'repo syncs.'
Note: You might see the following error when you try to initialize repo:
Error: IOError: [Errno 2] No such file or directory: '/home/<user_name>/ mydroid/.repo/manifests/.git/HEAD'
You may be able to resolve the above error this way:
$ touch ~/.gitconfig $ rm -rf .repo
 Building Android Filesystem (AFS) with TI Codecs enabled
While executing the below commands you may choose to use the number of cores you have available on your system thus: -j4 or -j12:
cd $MYDROID cp -Rfp device/ti/<board_you_are_building_for>/buildspec.mk.default buildspec.mk make clean ;#(required for rebuild only) make -j4 2>&1 |tee $MYDROID/logs/android_make.out
 Building AFS with Android Codecs