I want to read and write Thai and Tibetan languages and also see real symbols for many other fonts instead of squares.

As you can see, replacing system fonts is not a good method, because in this case we need a font consisting of all the aforecited fonts.

iFont and similar programs also just replace system fonts, but I need to add new ones.

My Android version is 4.4.2.


Android does support custom fonts, but there's no user interface for it and you need root access. The basic steps are as follows:

  1. Make backups in case something goes wrong. Do not skip this step! It's very easy to get stuck in a "boot loop" after making the wrong changes with fonts.
  2. Enable USB debugging (so you can use adb on your computer to fix your Android device if something goes wrong).
  3. Remount the /system partition as writable. Some file managers do this for you. Otherwise you'll need to enter mount -o remount,rw /system in a console on your phone or use adb remount from a computer via USB debugging mode.
  4. Copy your custom fonts to /system/fonts.
  5. Edit /etc/system_fonts.xml and/or /etc/fallback_fonts.xml to tell Android where to use the custom fonts. I don't know where to find the font names for system_fonts.xml, but adding your fonts to fallback_fonts.xml should "just work" for characters that aren't in the default system fonts.
  6. Reboot the device and hope everything worked.

If your device gets stuck in a boot loop, then you can probably still use adb to revert or fix the changes. From experience, this consistently happens when directly replacing the system's Roboto-Bold font with a custom font that doesn't have as many characters. This is the reason for editing the xml files and adding new files instead of just replacing existing files.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.