Continuing with my Android hacks, I now can input unicode Malayalam on my T Mobile G1 phone !!
Typed using Malayalam layout
I have to say thanks to excellent work done by ‘worry’ at xda-developers forum. It took the whole day to download android sources (my hotel internet connection kept failing to resolv android.git.kernel.org after some time, finally added the ip address to /etc/hosts to solve it), and a while to find the correct keymap file to overwrite.
Update: Malayalam displayed with Suruma and Meera fonts.
Step 1: Follow this instructions to download android source code.
Step2: Edit development/emulator/keymaps/qwerty.kcm with the desired layout [ download Malayalam layout here ] [Update: 21/Aug/2009 Some bugs fixed]
Step 3: Compile android sources with ‘make’ command [ download the binary file here ]
Step 4: Take backup of your existing keyboard layout
adb pull /system/usr/keychars/trout-keypad-v3_us.kcm.bin out/target/product/generic/system/usr/keychars/trout-keypad-v3_us.kcm.bin
Step 5: Push modified keymap file to the device or emulator
adb push out/target/product/generic/system/usr/keychars/qwerty.kcm.bin /system/usr/keychars/trout-keypad-v3.kcm.bin
When done with typing, push the original keymap back. I know it isn’t pretty, ‘worry’ has an app to do this automatically, I will have to find out how it is done.
Now on to the tougher task, complex rendering support.
Malayalam wikipedia displayed with Meera font on Android
This post by Kaippally inspired me to start working on Malayalam support on Android phones. I was a bit hesitant to jailbreak my T Mobile G1 phone because EFF advised me that this could be used against me in court, if if goes to that (See my petition to Free Your Phone). But after seeing the above post I wanted to have a stab at getting Malayalam support. When Nishan came to my house last Saturday, we sat down and followed instructions to jailbreak G1 and got root access.
Since Android does not have a font picker, we over wrote DroidSans.ttf in /system/fonts with Meera_04.ttf. Though at first it was showing Chinese characters, a reboot displayed Malayalam wikipedia, though without complex rendering support (ie, no conjuncts). Now I can read Malayalam websites, emails and other text in my G1 phone.
I know this is not perfect, but this is most important step in bringing the complete Malayalam support to android. Next steps are
* Get Malayalm keyboard layout working
* Add support for complex rendering
* Translate the user interface
If you are excited to see Malayalam support on Android and want to help out, get in touch with us at smc.org.in
Some failed attempts earlier to use my T Mobile G1 android phone as internet connection for my laptop did not stop me from succeeding this time. It is fairly complicated but if you have not other choice to get an internet connection, then you can follow this. You will need a USB data cable for this setup.
Follow the instrustions at http://graha.ms/androidproxy Thanks to Graham Stewart for discovering this very useful trick and developing tools to use this.
(copying here for easy reference with my notes added)
This shouldn’t damage your phone, but if it does, it’s your own fault!
* Install the app on your android phone, by clicking here (from your phone browser of course)
You might have to change your settings to permit apps that don’t come from the Google Market by going to your home screen and choosing MENU > Settings > Applications > Unknown Sources.
* Turn USB debugging on on your phone
On your G1 go to the home screen, press MENU > Settings > Applications > Development, then enable USB debugging.
* Follow the instructions here to install the Android driver – you’ll need to do this on Windows & Linux but apparently not on the Mac.
Note: You can actually skip the udev rules step, I did not need this, but your milage may vary.
* Download and install the Android SDK for your computer platform. Alternatively if you are on Windows and don’t want a 100 meg download, just get the ADB utility from here
* Plug your phone into your computer
Using the Socks Proxy
The SOCKS proxy will let you connect things like firefox to the internet
* Choose Tetherbot from your phone’s menu
* Press the “Start Socks” button on your phone
* Move to the directory that has the adb utility, using inside the Sdk Tools folder and run
Windows: adb forward tcp:1080 tcp:1080
Linux/Mac: ./adb forward tcp:1080 tcp:1080
* Now you should have a socks proxy running on port 1080 that you can use to configure firefox
* Set your firefox proxy : Options > Advanced > Network > Manual Proxy Configuration
Socks Proxy: localhost
Leave the others blank
* Remember to disable your proxy settings in firefox if you want to stop using your phone.
Earlier I was stuck at adb refusing to recognise my phone. Today also I had the same problem with my Debian GNU/Linux sid on 2.6.30. I decided to try my luck with Mandriva and adb correctly listed the device (I still has to figure out why it did not work with Debian).
Though we got this far and got the socks proxy setup, most of the software does not support DNS resolution via socks (I could only find curl with this option via -socks5-hostname). So I resolved the ip address of my company web access on my phone (nslookup on terminal application) and used that gateway to connect to the internet.
It would be good to have a DNS resolution via proxy method (something similar to proxyfier on Windows and MACs) and support for this in all applications.
Update: Firefox allow with an advanced configuration option. Type about:config in address bar, filter proxy and trun on
It is disappointing to see all tethering apps removed from the Market (Google T Mobile following Apple AT & T model), but you could always install it directly from author’s website without going through market. Probably it is time to create a Bazzar without restrictions.