Khmer Unicode Language support for Android devices

khmer_android

 

1. Concept

You can add Khmer language support to Android OS in 2 stages.

Stage 1: Basic Khmer Unicode support (Font rendering and Keyboard) to Android OS

- Modify Khmer Unicode font to work with Android OS, and Replace Android UI System fonts with Khmer Unicode support fonts.

- Add Khmer Unicode support to Android OS Unicode rendering engine  (libskia.so, libskiagl.so & LibWebcore.so)

- Create Khmer Keyboard layout and input method

For more details about Khmer Unicode & Andorid OS go to in depth section 4 below.

Stage 2: Translate Foreign language Andoid System files and Apps into Khmer language.

- decompile apk file to modify resource such as xml, jpg, png or smali code files (translate into Khmer)

- recompile the apk and put back into your phone.


Disclaimers:
Do it at your own risks. I am not liable for anything.
Software and documents used in this tutortial are from Internet, please let me know if you think any material used in this tutorial infringe our copyrights.
All copyrights belong to its’ original owner(s).Thanks.

———————————————–

2. What do you need?

Hardware: A computer running MS Windows XP or newer and a rooted Andorid Phone (In our example, Samsung Galaxy S2 running Galnet Scotland MIUI 2.3.2b )

+ MIUI 2.3.2b for Samsung galaxy s2:

- How to root Samsung Galaxy S2

- Galnet MIUI stable ROM

- How to install MIUI ROM on a supported root phone

Software for stage 1:

+ Nokora font:
Nokora font package 

Nokora font (Credit: Mr Danh Hong)
Modified Khmer unicode font to work with libskia.so.

+ Rendering Engine

libskia.so & libskia for Samsung Galaxy S2 MIUI 2.3.2b ARMv7

Khmer hack version of libskia.so & libskia (Credit: Chanrithy Thim)

Software for stage 2:

+ Apk decompile and recompile tool

Apktool 1.4.3 and ICS mod Apktool

+ Winrar
www.rarlab.com/download.htm

+ AndroidSuite

v115.exe (ICS support)

A GUI version of apktool, come with apk signer very handy.

+ Notepad++
Version 6

xml editor.

+ File Manager with root access for Android

Your choice

Root Explorer for android

ES File Explorer

Super Manager

(all can be downloaded from Google Play market or just google it,)

+ Android software to delete stock app 

RootAppDelete

+Java Runtime Evironment

JAVA SE JRE 6u25

you need this to run the AndroidSuite and apktool, type java -version in your command promt to check if you have it installed)

+ Document:
English Khmer Glossary of Computer terms
Description:

3./ Let’s do it

Before we start playing, I just want to make sure that you have:

- a rooted android phone. In here, we use Samsung galaxy s2 MIUI 2.3.2b, if you dont’ have it go here.
- a BACKUP of your important data (Use ROM manager from Google Play android market to this for you)
- all the required software and documents listed above.

Stage 1:

WARNING: You may brick your phone. Once again, please double check that you have a backup of your ROM using Clockwork Mod/ROM manager.
3.1.1./ Install fonts

copy DroidSansArabic.tts, DroidSans.ttf and DroidSans-Bold.ttf from droidsans_nokora.zip to /system/fonts/ on your phone using Root Explorer (or any other file exporer that support root function)

Common Error: “Cannot paste her because the file system is read-only”

- You need to mount the system/fonts folder in R/W mode
click [Mount R/W] on the top right corner of the screen.
- You haven’t given root access root to the program yet.
Exit the program, it will prompt you to allow root access.

3.1.2/ install rendering engine

Copy libskia.so and libskiagl.so to /system/lib

Now, restart your phone, if everything go right, it will pass the boot screen.

Common Error:
- If your phone hang in the boot loop, it means something’s gone wrong.
You need to restore your phone from your backup from boot recovery (hold Volume up + Home key + Power key).

3.1.3/ install Khmer Keyboard

Your choice
- Phum Keyboard (download from Google Play market)
- MultiLing Keyboard (download from Google Play market)
- Khmer IM (Finder.com.kh )

All Done! for stage 1. :)

Now you can go to Stage 2 or if want to know how does Khmer Unicode works on Android OS check out below
:)

4. Khmer Unicode support for Android OS In Depth

As far as I know, Android doesn’t officially support Khmer Unicode at the time of this writing.

There are a couple of geniuses out there have  found  a way to make Khmer Unicode works on Android OS.

How Khmer Unicode works

When you type ខ + ្   + ម + ែ  + រ –>  ខ្មែរ the rendering engine rearrange the characters based on a set of substitution rules (table).  Without the knowledge of Khmer substitution rules, the rendering engine won’t be able to display Khmer Unicode correctly.

Example:   ្  (Choeung, Unicode 17D2 ) + ម Mor ( Unicode 1798) –> ្ម  (Choeung Mor, not in normal Unicode range)

Problem: The problem is that Android OS rendering engine SKIA, originally, doesn’t support complex script rendering nor the substitution outside Unicode range yet (correct me if i am wrong).  And all Khmer subscripts (Choeung) are not in normal Unicode range u+0000 to u+FFFF (0-65535).

Solution: A group of genius solved this problem by hard code the Khmer Unicode substitution rules into SKIA library.

They puts Khmer subscripts and other characters in Arabic Unicode range (it doesn’t have to be Arabic range, you can choose other ranges), that is why we need to replace or delete DroidSansArabic.ttf.  Create gsub file subtitution code for a Khmer unicode font. And last recompile SKIA library files.

Conclusion: In order to get Khmer Unicode to work on Android.

1. modify a Khmer Unicode font (move all subscripts and other characters into Unicode Range) using FontForge

2. obtain original SKIA library (and/or Webcore library)  source code for your particular phone and hard code the Khmer substitution rule into the SKIA lib (and/or Webcore library).

3. replace Android system fonts with Khmer Unicode supported fonts.

4. replace Android original Skia library (libskia.so & libskiagl.so) and/or Webcore library ( libWebcore.so) with the Khmer hack files.

For more details check out Stephen Gibberd’s instruction on how to hard core Khmer Substitution rules into SKIA library from the scratch.

You can skip to the end and leave a response. Pinging is currently not allowed.

11 Responses to “Khmer Unicode Language support for Android devices”

  1. SETA says:

    On rom Miui It easy as abc !​ឡើងស្រែ

    • Meka says:

      Yes‌, it is‌ very‌ easy‌, just‌ install‌ update.zip‌. But‌ user‌s learn‌ nothing‌. This‌ guide‌ is for someone‌ who want to know‌ what‌ is‌ going‌ on‌ behind‌ the scene‌.

  2. phireak says:

    តើមាន libs ខ្មែរ libskia.so និង libskiagl.so របស់ CyanogenMod 7.1, Android 2.3.7, ARMv6 ទេបាទ?

    ឬអ្នកណាមាន tools និង sources គ្រប់គ្រាន់ជួយ compiles អោយមួយម៉ោ

    សូមអគុណទុកជាមុន :)

  3. Michael Leap says:

    Needed

  4. Sophea says:

    Can you show me the video how to install Khmer font on android? I don’t really understand the text above. Please help!!!!

  5. Sophea says:

    ហេតុអ្វីពេលដែលខ្ញុំ Copy libskia.so and libskiagl.so to /system/lib ហើយវាគាំងចេញម៉ាកទូរស័ព្ទហើយមិនដំណើរការសោះ។ តើនេះមកពីហេតុអ្វី?

  6. soeurn ekchanthorng says:

    Can Sony Ericsson xperia x8 download font Khmer?

Leave a Reply

Your email address will not be published. Required fields are marked *

*


5 − = two

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>