How to compile android 2.3.3:
1.) If you use a windows system, install VirtualBox 4.x and than Ubuntu 10.10 Desktop Edition as guest OS (its the smallest version and is enough for compilings)
Attention: Android compiling requires lot of free space.
My Ubuntu virtual harddrives size is 30GB, partitions are 10GB, 512MB (SWAP) and 19.5GB. During install, mount the 10GB partition on /, the 19.5GB partition on /home.
1.1) Prepare user
to have easier system access, we act as root - so set a new password to root and change the current user:
Enter the new password to root and change user:
1.2) change the shell to bash
Ubuntu 10.10 has a symlink in /bin/sh - this links not to the bash which is required by android to compile:
rm /bin/sh && ln -s /bin/bash /bin/sh
2.) Install required compilers and software:
apt-get install build-essential automake autoconf binutils libncurses5-dev xorg-dev git-core gnupg flex bison gperf zlib1g-dev
3.) Prepare home directory
mkdir -p /home/android/bin
3.) Install JAVA
- Download latest java-1.6 (it's required by gingerbread to build java apps) from Oracle site:
and select Linux (not Linux64!!!)
Copy file jdk-6u23-linux-i586.bin to /home/android and exec the file:
and type "yes" to accept the license.
After install, move the new directory to /usr/lib/jvm:
mkdir -p /usr/lib/jvm && mv jdk1.6.0_23 /usr/lib/jvm
rm -rf jdk1.6.0_23
4.) Adopt JVM and user's bin path to all users env:
echo 'export PATH=$PATH:/home/android/bin:/usr/lib/jvm/jdk1.6.0_23/bin' >> /etc/profile
echo 'export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_23' >> /etc/profile
echo 'export ANDROID_JAVA_HOME=$JAVA_HOME' >> /etc/profile
5.) Download Android 2.3.3
curl http://android.git.kernel.org/repo > bin/repo
chmod a+x bin/repo
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
6.) Compiling Android 2.3.3
To build a final release on a 32bit machine, we must modify some files and use the target option "user" (default is "eng", which is only a debug build for the emulator).
following code must be run in root of your repo:
After a build time of 1-2 hours, we have in folder out/target/product/generic our images: system.img,ramdisk.img and userdata.img and in folder prebuild/linux-x86/toolchain our android arm-eabi to compile kernel and so on.
If any goes wrong, please post here - it's possible that i have forgot to post some...