In March, I acquired a new smartphone, specifically an HTC Vogue, which is known as OKTA Touch here in New Zealand.
The device itself is quite impressive in terms of its hardware (MSM7500). However, I must admit that I am not particularly satisfied with the operating system it runs on, which is Windows Mobile.
With that being said, I decided to take matters into my own hands and attempt to install Linux on it.
Fortunately, the hardware of the HTC Vogue is very similar to that used by the Google Android project. Although there are some differences, such as the completely different VIC and a different version of the phone software (AMSS). Initially, I encountered some issues when I turned off the MMU, causing the device to hang. To resolve this, I took the initiative to rewrite the bootloader (haret) in order to set up some identity pages and boot with the MMU on.
As it turns out, the device didn’t actually hang; rather, the peripheral port memory remap register simply doesn’t function on this system, rendering any I/O operations impossible with the MMU turned off. I managed to understand how the frame buffer works and proceeded to write some debugging code to monitor the boot process, as well as some new VIC code.
Update: I have successfully ported everything to version 2.6.24, and Android is now able to boot (although there is no input and the phone itself is not fully functional yet).
Update: The buttons should now work properly, with the volume up/down buttons serving as the return and menu keys.
Update (9/4/08): The touchscreen is now functional, although it is not perfect and cannot be calibrated. Nonetheless, it is usable.
Update (18/4/08): The radio is now operational for data usage. By using the latest zImage and initrd-android, you should be able to utilize the browser and maps application. However, please note that you will need to input a username and password in default.txt based on your service provider (the ones provided should work for Telecom NZ).
Update(19/5/08): I have developed a basic on-screen keyboard and successfully activated all the buttons. To test it, simply transfer the new kernel (zImage) to your mobile device. The camera button will bring up the keyboard, and I have reassigned the back and menu keys to left and right functions (volume up and down now correspond to left and right if necessary).
Update(23/5/08): You are now able to initiate and receive audio calls. Your phone should vibrate upon receiving a call. Press the red button twice to end a call. Additionally, you can calibrate the touchscreen by holding down the camera button (to display the keyboard) and tapping the top right and bottom left corners of the screen. Perform this action while running the pointer location app in dev tools to verify its functionality. The keyboard now mirrors that of the emulator.
Update(29/5/08): Sending and receiving SMS text messages is now operational. This process was slightly more complex as I had to convert between GSM and CDMA SMS formats. Please note that my code may not support all encoding formats, so it may not function properly with operators other than Telecom New Zealand. If you encounter any issues, kindly inform me. Since the emulator lacks an SMS application, I wrote a small piece of Android code solely for testing SMS functionality. To send a message, launch the SMS app; received messages will only be displayed briefly. Remember, this app is solely for testing purposes. Once the final software is released, I am confident it will include an excellent threaded SMS application. I have removed the API Demos from the initrd and added the world clock and SMS tester.
Update(6/6/08): I have resolved the browser issues, and the G icon should now be visible, with data functioning much more reliably. I have also incorporated support for turning off the panel backlight. Simply click the power button and then select “Turn Off Screen.” This action does not put the device into a low-power state, but it does allow you to use it as a phone. I carried it around yesterday, and the battery lasted approximately 12 hours. Avoid selecting power off, as it will deactivate the buttons.
Update(20/6/08): I have overhauled the touchscreen and keyboard drivers, resulting in a significantly improved keyboard usability.
Leave a Reply
You must be logged in to post a comment.