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 to Debian
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