Khmer on Android

Here are instructions and code for installing Khmer unicode on Android phones. Android does not support complex script languages like Khmer and other Indic languages natively. Basically, it involves reordering the Khmer characters, and hard coding the Khmer font’s substitution tables (GSUB) and recompiling libskia.so and libskiagl.so. So far, it has been tested on phones running 2.1, 2.2.1 and 2.3.3. You need root access on your phone, and run a risk of bricking your phone if the libskia.so library is incompatible, so try to make a copy of the system image, so you can flash the image if required.

There are instructions for installing Khmer unicode from scratch, recompiling from source, shape.cpp – the code for reordering the Khmer script, gencode.rb a ruby script for generating the code for the gsub table for a font. See the instructions file for details.

I’m modified Nokora.ttf – a font designed by Danh Hong specifically for mobile phones, and generated the gsub.cpp for this font.

You will also need a Khmer keyboard to type Khmer. This keyboard supports both English and Khmer with a Khmer predictive dictionary. Thanks to Danh Hong for his work on the layout of the keyboard.

This code has been released for hackers to work on it. User friendly compiled versions will come later. Thank you to Beeline for supporting Khmer unicode, and Javier Sola of Open Institute for their assistance.