Find Your Device:
Or Continue to Thread: [ROM] Gingerbread-2.3.4 (Coden…
12th January 2011, 12:22 PM |#10  
andy572's Avatar
OP Recognized Developer
Flag Germany, Munich (Deutschland, München)
Thanks Meter: 3,951
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:
sudo passwd root
Enter the new password to root and change user:
su -
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
cd /home/android
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
source /etc/profile
5.) Download Android 2.3.3
curl > bin/repo
chmod a+x bin/repo
repo init -u git:// -b gingerbread
repo sync
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:
source build/
lunch thunderg-user
make -j2
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...
Last edited by andy572; 1st March 2011 at 09:09 PM.
The Following 11 Users Say Thank You to andy572 For This Useful Post: [ View ]