I recently ran into some trouble building an Android ICS (4.0.3) image with a custom kernel for a TI Pandaboard, so I thought I should document the process in case anyone else could benefit from it.
- Initialize your build environment. I did this on Ubuntu 10.04 on x86_64.
- Download the Android source code. Make sure to get the master branch.
- Download the kernel source code: git clone https://android.googlesource.com/kernel/omap.git
- In the
omap/
(kernel source) directory- Switch to the correct branch: git branch -t remotes/origin/android-omap-panda-3.0.
- Set up the base make configuration: make panda_defconfig
- Configure the kernel as desired: make menuconfig
- Compile: make ARCH=arm CROSS_COMPILE=/path/to/android-source/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
- When done, cp arch/arm/boot/zImage /path/to/android-source/device/ti/panda/kernel (note, this will overwrite the existing kernel).
- Download the proprietary binaries (adjust as necessary for your version of ICS) and extract into your android-source directory (after agreeing to the license terms).
- Build the ROM. Make sure to select full_panda-eng for lunch.
- Flash onto the device as per
/path/to/android-source/device/ti/panda/README
- Reboot and enjoy