Installing a Debian chroot on Android
This is an account of installing vanilla full-fat Debian squeeze in a chroot on Android.
This was tested on a Vodafone 845 ( a re-branded HuaWei u8120 / Joy / Ascend).
First, the phone was rooted by side-loading z4root
CyanogenMod 7.2.0-RC0 22b was flashed. This might not be necessary though
Set CPU to 710 MHz with the interactiveX governor. YMMV
- Side-loaded SSHDroid
- The SD card was formatted with the MBR scheme and a single ext3 partition was created. 15 sectors were left over
Then, on a workstation ( any architecture), insert the µSD card, and:
sudo debootstrap --arch=armel --variant=minbase --foreign squeeze /media/PHONE\ CARD/squeeze http://mirror.local:9999/debian
Then remove the µSD card and replace it in the phone, start SSHDroid and SSH to the phone, then:
mount -o remount,exec,dev /mnt/sdcard/ chroot /mnt/sdcard/squeeze/ /bin/bash -l debootstrap/debootstrap --second-stage
Then build up the Debian system as you normally would a minimal installation.
Many thanks to all the people whose hard work made it so trivial for me to install the environment I know and love on my phone.
Android pre-loads applications ( in some case that the user has never started) when there is free memory. This reduces the memory available to applications in a chroot.
It looks like the *_MEM properties in /init.rc along with the /sys/module/lowmemorykiller/parameters/minfree might help.