Compiling Google Android for x86 with VMWARE & Ubuntu Linux on Windows

You have Windows but you want to compile Android as well. You can, providing you install VmPlayer and a linux vm appliance. I will not get into this.  I will assume you have an up-t0-date Vmware appliance up and running with reasonable virtual RAM (>1GB) and disk space (>8GB).

Credits for compiling Android in x86 go to the guys at virtuallyshocking.com
Disclaimer: you can break, erase, burn, incinerate your gear while attempting the steps outlined below. Restrain from following them if you don’t feel confident. Moreover:  THIS WILL wipe whatever you have installed on your PC and  THIS IS at a rather experimental stage, so don’t expect everything to function appropriately (quoting virtuallyshocking.com). Beware:The build process produces an installer, not a live image!



When customizing your appliance, please consider adding/using:

  • 1 gb stick (512mb may also work, gotta try)
  • A recent, fully updated distro (>Ubuntu 6.06, for example)
  • A lot of disk space. My Vmware Ubuntu 8.10 appliance had a 7.92GB disk  and I had to add another 8GB virtual disk. Of course you may not need it depending on your disk usage, but be warned.
  • A lot of free time, especially if you want to try cupcake, which is quite raw and sometimes needs header mending.
  • A flat connection. Android source is quite heavy. OF course you need a working ethernet interface on the VM to download the source.
  • Some RAM: I got some freezes that disappeared after raising the RAM size of the VM to 1GB. So you need at least 2GB of physical memory (my educated guess).
  • Compiling time is quite relevant. Have something to do while fetching the source and dowloading.

In a nutshell:

  • Follow these instructions to prepare the environment.
  • Create a local_manifest.xml file into mydroid/.repo and put into the file:local_manifest_xml
    the local_manifest.xml provided by virtuallyshocking.com does not work for me due that /pre e the stray /.
  • Do a repo sync again, to fetch the eee701 relevants.
  • Compile with
    $> TARGET_ARCH=x86 TARGET_PRODUCT=eee_701 DISABLE_DEXPREOPT=true make -j8 installer_img

    It will take a WHILE.
  • Put in the usb stick…
    dd if=out/target/product/eee_701/installer.img of=/dev/

And you’re set.

Update (4/01/2009): the build process occasionally fails with some killed processes. Restart it again using the make command above, until you get a positive status from the build process, something like:
I/diskutils( 2514): Wrote 401227776 bytes to out/target/product/eee_701/installer.img @ 5599232
File edit complete. Wrote 2 images.
Done with bootable installer image -[ out/target/product/eee_701/installer.img ]

then copy the installer.img image on the usb stick (  I used a 1gb one):

:~/mydroid/out/target/product/eee_701$ sudo dd if=installer.img of=/dev/sdc1
794584+0 records in
794584+0 records out
406827008 bytes (407 MB) copied, 493.435 s, 824 kB/s

I’m now trying to boot it as a vmware image too, following http://groups.google.com/group/android-porting/msg/fe85782f1bc3ad2f and it works. I just have to solve the VESAFB issue, as you can see.
Google Android meets x86/Vmware
Ref: http://virtuallyshocking.com/2008/12/20/building-android-for-the-asus-eeepc-701/

Advertisements