1. Download the Android Port For Your Device

Visit the xda-developers forum, locate your device in the list and enter the Android Development section. The devices that have separate forums for Android ports are currently:

• HTC Kaiser: Tilt, TyTN II, MDA Vario III
• HTC Vogue: Touch CDMA
• HTC Blackstone: Touch HD
• HTC Raphael: Touch Pro, Fuze
• HTC Topaz: Touch Diamond2, Pure
• HTC Rhodium: Touch Pro2, Tilt 2
• Sony Ericsson XPERIA X1

Developers are also combining their efforts and working together on the project XDAndroid. As of today, the XDAndroid port is available for the following Windows phones: HTC Raphael, Rhodium, Diamond, Topaz and Blackstone. For the SE Xperia X1, there is also a major project called Xperoid, although at the time of writing, it hasn’t been officially updated since the 24th of February, and you’ll find superior Android builds for the X1 at the XPERIA X1 Android Development forum.

2. Copy the Required Files to Your Phone / Flash Your Android ROM

If there is an Android ROM available for your Windows phone, you basically just flash it the way you would flash a regular WinMo ROM. There might be some individual deviations, though, so look closely if there are any special instructions for your particular ROM.

In case you have a port that requires HaRET, the basic idea is that you extract the files included in the port to the root of your memory card, and then run HaRET.exe to launch Android. Your memory card should be formatted with FAT32 (it most likely already is) and have at least 500 MB of free space.

This is the most common files of an Android port that is launched via HaRET, and their respective functions.

  • Calibration : WLAN firmware
  • Haret.exe : Runs the Linux kernel and Android
  • initrd.gz :Initial RAM disk, needed for Linux to boot (phase one)
  • modules-Version-Number.tar.gz : Android WLAN driver
  • rootfs.img :Holds the files needed for Linux to continue to boot (phase two)
  • STARTUP.TXT : Contains various parameters for HaRET and boot options for the Linux kernel
  • system.sqsh : Holds all of Android’s system files
  • zImage : The Linux kernel
  • conf/*.user.conf : Android configuration files
  • AndroidApps/*.apk :Android applications, that are installed during start-up. Any Android.apk-files in this folder will be installed. You can add and remove .apk-files files as you see fit.


3. Boot Android

If you have flashed an Android ROM, all that is needed to run Android is starting your device, of course.

If you have the Android port located on your memory card, to run Android, simply launch HaRET.exe with Windows Mobile’s native File Explorer, and eventually Android will boot. It will take some time at the initial launch, but Android will start faster the next time you run HaRET. A file that is called data.img will be created on the root of your memory card, and it holds the information for your Android setup. Tohardreset your Android configuration and start over, just delete this file.

If the Android port you’ve downloaded can’t communicate with your phone’s GPS, it’s important that you disable the GPS in Android from Settings > Location & security > Use GPS satellites, or your device may freeze. It’s also recommended that you turn off your SIM card’s PIN protection in Windows Mobile, since many ports can’t handle PINs yet. The setting can be found at here: Settings > Personal > Phone > GSM/UMTS Services > PIN/PIN2 > Get Settings… > Require PIN when phone is used.

4. Updating the Linux Kernel

If you run Android through HaRET, you can update to your port’s latest Linux kernel in order to gain more functionality, once you have all the required files and Android up and running. You only have to replace a couple of files on your memory card.

• Download the latest kernel image. You have to find out the download location yourself, but information where the latest kernel can be obtained will likely be available where you first downloaded your Android port. The file will be called something similar tozImage_kovsky_ReleaseDate.zip
• Extract the compressed archive, and it will result in the file zImage. This is the Linux kernel.
• Copy zImage to the root of your memory card, and overwrite the original file. Make a backup copy of the current zImage, in case you want to go back to using it later on.
• You also need to download the WLAN-modules – you should be able to get them from the same place as the kernal image (zImage). The WLAN-modules must match the kernel image, so make sure two files have the same date in their titles.
• Extract the archive holding the WLAN-modules, and you will get a file approximately titled modules-2.6.27-01006-ga30aafa-dirty.tar.gz. Just copy this file to the root of your memory card (do not extract it), and you should be ready to test your new Linux kernel.

5. A Quick FAQ for HaRET Based Android Ports

• If the Android port for your WinMo phone can’t communicate with the GPS, it’s important that you disable the GPS in Android from Settings > Location & security > Use GPS satellites, or your device may freeze.
• To add your own ringtones and notification sounds, navigate to the Media/Audio folder on your memory card. There you should find three folders called Alarms, Notifications and Ringtones. Copy your ringtones to the appropriate folders, and they should show up when you change your notification settings in Android. If these folders don’t exist, create them.
• You can freely add and remove Android application files (.apk) to the AndroidApps folder on your memory card. Applications in this folder will be installed during boot.
• It has been suggested that if you open STARTUP.TXT and remove the option mem=102M, memory will be increased from 102MB to 182MB and the speed of Android will be improved. This tweak may not apply to your particular Android port.
• Copy all the files and folders included in the Android port for your Windows Mobile device, to theroot of your memory card. Do not put them in a separate folder, just copy them straight to your memory card. If your port is supposed to be copied to your phone’s internal storage instead of the memory card, that will be stated in the instructions for your specific Android port.
• To hardreset your Android setup, delete the file data.img located in the root of your memory card.
• To enable the data connection in Android, you probably need to enter your APN settings manually from Settings > Wireless & networks > Mobile networks > Access point names. If you don’t know what APN settings to enter, check with your service provider.
• In case your screen is upside-down, slide out the hardware keyboard (if your device has one), and when you slide it back in again, your screen should be turned the correct way.
• It’s recommended that you turn off your SIM card’s PIN protection in Windows Mobile, since many ports can’t handle PINs yet. You can find this setting at this location: Settings > Personal > Phone > GSM/UMTS Services/ > PIN/PIN2 > Get Settings… > Require PIN when phone is used
• To enable live wallpapers, try this solution.
• If you’re having trouble sending text messages, this post at the xda might help.
• Can’t turn off Android properly? Use an application called Spare parts and change its End button behavior setting to Nothing, and it might help.