You might heard about OpenMoko's FreeRunner opensource smartphone (hardware and software) leaded by a Taiwanese company F.I.C, so why not install Linux android on it ?
Since the device has no keyboard and only 2 buttons, a few tricks were needed to have something more user friendly, hopefully cupcake virtual keyboard works better than previous ones on tactile smartphones...
Few days ago, some pictures where published online, but it was painful slow to be used but Michael Trimarchi (aka panicking) just released an image of android cupcake for the freerunner phone , here is a short tutorial on how to flash it
Here we go :
BOOT_URL="http://people.openmoko.org/andy/qi-s3c2442-master-hist_3b8513d8b3d9615e.udfu"
ROOTFS_URL="http://panicking.kicks-ass.org/download/freerunner-v14.4-cupcake.jffs2"
KERNEL_URL="http://panicking.kicks-ass.org/download/uImage-v13.bin"
PART1=128M
PART2=256M
DEV=/dev/mmcblk0
time sudo dd if=/dev/zero of=${DEV} # will save space when compressed
sudo parted -s $DEV mktable msdos mkpart primary fat16 0 ${PART1} mkpart primary ext3 ${PART1} ${PART2} mkpart primary fat16 ${PART2} 100% print mkfs 1 fat16 mkfs 2 ext2 mkfs 3 fat16
sudo mkfs.ext3 ${DEV}p2 -L android
sudo parted -s ${DEV} print
sudo fdisk -l ${DEV}
umount $DEV*
# put SD card inside the FR and plug usb cable
CACHE_DIR=$HOME/mnt/cache-pub/
mkdir -p "${CACHE_DIR}/http:/" ; cd "${CACHE_DIR}/http:/"
wget -p "${KERNEL_URL}"
wget -p "${ROOTFS_URL}"
wget -p "${BOOT_URL}"
lsusb | grep "ID 1457:5122 First International Computer, Inc. OpenMoko Neo1973 kernel cdc_ether USB network" || exit
sleep 1 && sudo dfu-util -d 0x1d50:0x5119 -a kernel -R -D "${CACHE_DIR}/${KERNEL_URL}"
sleep 1 && sudo dfu-util -d 0x1d50:0x5119 -a rootfs -R -D "${CACHE_DIR}/${ROOTFS_URL}"
sleep 1 && sudo dfu-util -d 0x1d50:0x5119 -a u-boot -R -D "${CACHE_DIR}/${BOOT_URL}"
Then you can upload any applications to your device using usbnet ...
lsusb | grep 1457:5122
export ADBHOST=192.168.0.202
{ ping -c 1 ${ADBHOST} 2>&1 > /dev/null || sudo ifconfig eth1 inet 192.168.0.200 netmask 255.255.255.0 ; }
adb devices | grep "error: device not found"
adb install -r Diet3d.apk
Note that, many applications won't install because its not the same VM ie :
adb install -r ./com.codetastrophe.cellfinder.apk
Failure [INSTALL_FAILED_MISSING_SHARED_LIBRARY]
Now we've got 4 Android platforms ( emulator,tablet, netbook, and now smartphone) , and ready to for Linux Development Contracts.
REFERENCES
* http://wiki.openmoko.org/wiki/Android_on_Freerunner
* promote : http://digg.com/linux_unix/Video_demo_of_Freerunner_running_Android_Cupcake_Tutorial
* video/theora: http://en.theorasea.org/story.php?title=Freerunner-mobile-which-support-Android-Cupcake
* Licence: http://creativecommons.org/licenses/by-sa/3.0/
