How to get perfect Sinhala text on Android 4.4 KitKat! (and 4.2 + 4.3) + Instructions for 5.0 Lollipop Issues
Using Sinhala on the phone used to be very important to me. After switching to Windows Phone (7.x — those things were unhackable) I decided to let it go. But since I moved back to Android felt like it was time to get it done! (The delay was obviously because I couldn’t be bothered with rooting. But as with everything, I eventually got bored and had to seek out methods of entertainment. In this case with custom ROMs and other fun things.)
You may have seen good Sinhala support on Samsung devices. This is because they include Sinhala fonts when they customize their ROMs by default.
We have tried using Sinhala font files on older versions of Android — in my case a shitty Samsung. Although it worked, it was not perfect. There were loads of rendering issues. (You can check an old guide by Kalinga here)
I tried doing the same thing on my current phone but it didn’t work (because of a permission issue I think). After running around XDA Forums for a day, I managed to find another more modern method to do it.
Since I had doubts about the previous font we used (one customized for iOS back in the day by Nick) I went looking around on Siyabas and found Bhashitha for Linux. I followed a guide on XDA Forums written for Punjabi support. After messing about for a while and a final reboot, perfect Sinhala text!
So let’s begin.
Requirements: Android 4.2 / Android 4.3 Jelly Bean or 4.4 KitKat, Root Access, Sinhala Font of your choice
Disclaimer: I won’t be responsible if you kill/brick your device, make it explode, turn it into a transformer etc. Proceed at your own risk!
- Root your device if you haven’t already
- Download font from Siyabas. I usedBhashitha for Linux. Potha also works. [4.2.2 only supported Potha in Shenal’s testing] Try other fonts and let us know if they work. [Chathura tried our custom MalithiWeb font but it showed rendering issues on other Apps like Twitter.] Link: Sinhala Fonts
- Copy the font files to /system/fonts (I copied the files to the SD card and used ADB Shell to mount and copy them to the relevant directory. You can use something like Root Browser too) — You can use any file you like. I decided to go with LBhashitaComplexSans
- Download the fallback_fonts.xml file from /etc
- Open the fallback_fonts.xml file and modify it by adding your font names before DroidSansFallback entry.
- Copy the file back to the /etc directory.
- Now an important part which took some time for me to figure out. PERMISSIONS! Change the permissions of your fallback_fonts.xml file AND the font files to 644 or -rw-r–r– (You can do this with the terminal with chmod or using a root browser application.)
Reboot and rejoice! (Maybe yell like a madman like I did.)
Bhasha Helakuru or Multilingual Keyboard with the Sinhala plugin for typing. Since I’m a Wijesekara guy I went with the latter.
Swiftkey also supports Sinhala now. It’s my primary keyboard now since it supports easier switching between languages + autocorrect and suggestions.
Bhasha Helakuru: https://play.google.com/store/apps/details?id=lk.bhasha.helakuru
Multilingual Keyboard: https://play.google.com/store/apps/details?id=kl.ime.oh
If you’re having Sinhala trouble with Lollipop (I had a few issues with 5.0 ROMs for HTC One) follow this guide written by Chamika Weerasinghe: Enable Sinhala fonts rendering in Nexus 7 Android 5.0 Lollipop
Thanks @chathuraw for testing on 4.3
Thanks @ShenalSilva for testing on 4.2.2
Everyone who has tried and reported back!