- Tweaks / Tips / Tutorials / Optimization
- Essential Software
- Modifications & Goodies
- XDA Classics: ROMs / Tools / Mods
- Running Android on Your Windows Phone
- Top Windows Mobile Websites
- Leave a Comment
Enthusiasts have tried to get Android to run properly on all sorts of devices ever since Google’s mobile OS was launched – it is open-source, after all. I remember trying out an early attempt at an Android port for my WinMo powered Sony Ericsson Xperia X1 in late 2008, but all you got back then was basically a non-functioning homescreen turned upside-down, and the project was eventually abandoned. A lot has happened since then, however, and now there are even separate Android Development forum sections for several of the devices at xda-developers. As explained in the Wired article DIYers Hack Windows Mobile Phones to Run Android, handsets based on Microsoft’s mobile OS are finding new life as Android devices.
When Google launched Android, I’m certain they predicted that it eventually would power numerous devices of all sorts. But I wonder if they had expected that Android also would become the platform of so many phones that already had been released running an entirely different OS.
For some Windows Mobile phones, like the HTC Vogue, there are currently Android ports that can utilize the hardware so well, that ROMs have been compiled that replace Windows Mobile with Android altogether. Mostly, though, Android on Windows Phones is launched through HaRET, a tool that enables you to boot Linux from within Windows Mobile. HaRET will however not run Android on top of WinMo, as it apparently completely shuts down Microsoft’s OS before booting Android.
If you’re lucky enough to have a Windows Mobile device that has an Android ROM, you can simply flash the ROM like you would normally do. Of course, you’ll also have the benefit of not having to start Windows Mobile in order to launch Android, and the entire port will likely be faster and more stable. The advantage with HaRET on the other hand, is that you’ll have the option to run two different operating systems on your phone.
- Download the Android Port For Your Device
- Copy the Required Files to Your Phone / Flash Your Android ROM
- Boot Android
- Updating the Linux Kernel
- A Quick FAQ for HaRET Based Android Ports
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.
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.
|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.|
Source: vdelf at xda-developers.
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. To hardreset 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.
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 to zImage_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.
Source: vdelf at xda-developers.
- 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 the root 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.