Android: How to Change the Default System Font

   Posted by Jimmy Selix in Android

One can change an Android phone’s system fonts in two different ways–manually using the Android SDK / adb or by using the paid app Rootexplorer.  Warning, this process can be risky and requires a rooted Android device or adb knowledge.  This technique has been verified working on Froyo 2.2. (Galaxy Tab and Nexus One)

Please review the notes and warnings at the bottom of this article before attempting to follow these directions.

vs  

Default vs custom font

Requirements:

– Android phone

– You will need either the Android SDK installed, configured, and basic ADB knowledge or Root Explorer App which requires a rooted phone and can be purchased from the Android Market for about $4 USD.

– TrueType Font (MUST BE A REAL TrueType, .ttf font)

Easy Way Using Root Explorer

1. Root your phone if it isn’t already.

2. Go to the Android Market and purchase the app, Root Explorer (approx $4).  This app is made by Speed Software and allows you read/write access to your phone’s internal memory and system folders.  You do need to be rooted to use but it is well worth the price for what you can do with it.

3. Copy the TrueType font file to the root of your SD Card.

4. Open Root Explorer and go to the root of your SD Card and tap and hold and choose Copy.  Then browse to the /system/fonts folder.

5.  Hit the Mount R/W button and then hit the Paste button.

6. Tap and hold on the DroidSans.ttf file and choose to rename it to DroidSans.ttf.orig and then rename the .ttf file we just copied to DroidSans.ttf.

7.  Now hit the Mount R/O  button to unmount it and power off and on your phone for the font to take effect.

Manual Way Using ADB and Command Line

1. This way assumes you have the Android SDK installed and setup. You also need the USB Debugging drivers for your device installed.  Also be sure to copy the TrueType font file into the same folder as the adb.exe and fastboot.exe programs (default is c:\android-sdk-windows\tools ). This should work on a non-rooted device since we are using the SDK and ADB Remount commands; however, I have not tested personally on a non-rooted phone.

Backup your phone’s /System/Fonts folder to your PC before doing anything!!

2. Enable USB Debugging mode on your phone in Settings > Applications > Development and then plug in the USB cable and wait for windows to detect your phone.

3. Open a command prompt and browse to the folder where your dev / sdk Tools folder is located.  Then type (without the >)

>adb devices

You should get a device id and it say device next to it.

on your pc’s commandline type the following to mount the system folders and then backup your default /system/fonts/DroidSans.ttf to your pc

>adb remount        (should say remount succeeded)

>adb pull /system/fonts/DroidSans.ttf DroidSans.ttf    (this copies the default system font to your pc)

4. Next, we need to rename the original file on our device by typing:

>adb shell mv /system/fonts/DroidSans.ttf /system/fonts/DroidSans.ttf.orig

5. Finally, we will need to copy our new TrueType font to be used as the default system font.  Be sure you saved your ttf file in the development/sdk tools folder (mine is called Unique.ttf)

>adb push Unique.ttf /system/fonts/DroidSans.ttf

and finally we can force our device to now reboot and hopefully boot with the new system font.

>adb reboot

example of commands in commandline form:

More Screenshots using the Unique TrueType font

NOTES:

– Files and paths are CASE SENSITIVE!

– Backup your /System/Fonts folder to your PC before doing anything!!

– I’ve noticed boot loop problems trying to replace the DroidSans-Bold.ttf file. Therefore, I suggest not messing with it.  However, it may have been a corrupted file too.  Having a Clockword or Anon recovery image helps restoring problems if you run into any.

– If you get in a Boot loop error after doing this, you will need to do the following:

1. Boot to recovery mode on device, go into Recovery and again to Mounts / Storage and mount /System

2. On your pc, again open up command prompt and issue these two adb command to restore back to your original DroidSans.ttf:

>adb rm /system/fonts/DroidSans.ttf
>adb mv /system/fonts/DroidSans.ttf.orig /system/fonts/DroidSans.ttf

Reboot and hopefully your device will be back to normal, most likely the font itself caused the boot loop.  If this does not work, just try copying back over your backed up DroidSans.ttf file using:

>adb push DroidSans.ttf /system/fonts/DroidSans.ttf

 

About Jimmy Selix

Jimmy Selix is an early adopter that loves to be one of the first on the block to have the latest and greatest in technology and gadgets. Another love of his is being able to share his knowledge to others seeking it. Feel free to drop any comments or questions that you may have.
View more articles by Jimmy Selix

The Conversation

Follow the reactions below and share your own thoughts.

  • http://www.tech-recipes.com/ Rob Rogers

    Great stuff! Have you found any particular fonts that display better than others?

    • http://blogs.tech-recipes.com/jimmyselix jimmyselix

      i have not messed around with too many fonts yet. however i do like the Unique.ttf that is provided in Mac OS X Snow Leopard. looks pretty slick.

      I’ll try out a few of my faves that i use on my desktop and rainmeter skins to see how they look. :)

      • Thom

        Hi,

        really appreciate your blog posting but could you please give me a hint where to look for this font? I have not found Unique.ttf in Snow Leopard…

        Thanks!

  • metin balaban

    when I type adb remount, “remount failed: operation not permitted” appears. what should I do?

  • http://twitter.com/hanmyohtwe Han Myo Htwe

    same problem here

  • asdf

    adb remount is impossible without flashing a new boot image to the device.

    You really shouldn’t post things you haven’t tried.

  • http://tech-recipes.com jimmy selix

    @asdf I will update article with that note. did not have a non-rooted device at the time i wrote this.

    thanks

  • extraordinary

    u need root to avoid “operation not permitted” at adb remount