Sometimes I want to compile an old version of Android / AOSP / CyanogenMod, so here's a table of which version of Debian I've found works best for a particular version of Android.
Version table
Android # | Android Name | CyanogenMod # | Debian version | Reason |
---|---|---|---|---|
4.0 | Ice Cream Sandwich (ICS) | 9 | Debian 7 | JDK 6, GNU Make 3.8.2. Debian 8 has JDK7, Make 4 |
Dependencies / Build notes
Android 4.0
May not compile even in a container:
prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: fatal error: out/target/product/gio/obj/STATIC_LIBRARIES/libwebcore_intermediates/libwebcore.a: mmap offset 49455104 size 155648 failed: Operation not permitted
Certain toolchain programs (notably a linker) will get an "mmap: Operation not permitted". This is probably a kernel restriction introduced with newer kernels. See https://stackoverflow.com/questions/8213671/mmap-operation-not-permitted
apt-get install --no-install-recommends bison build-essential curl flex gcc-multilib git g++-multilib gnupg gperf lib32ncurses5-dev lib32z1-dev libesd0-dev libncurses5-dev libxml2-utils lzop openjdk-6-jdk pngcrush python schedtool squashfs-tools xsltproc zip zlib1g-dev
. build/envsetup breakfast << DEVICE >> make -j << THREADS >> bacon