Today, while I surveyed, as all days, the “genymotion” results in Twitter, Sergey Ryabov asked this question:

As I answered that it could be possible, there is almost no chance to add it to a close backlog…

And by the way, why would he want to do that? Font is Font, Locale is Locale, there is no real point to change the Font when changing the Locale. Maybe for different languages with different symbols, graphemes or writing systems but not much more. Let’s assume he just wanted to change the Font, using the Locale settings.

What do we want here:

  • Showcase an app with private data
  • Hide the text from the app as it is private using an alternative special font
  • Don’t change the app source code

The easiest way will be to use an emulated rooted device (so we can do what we want, break it and trash it after the shwocase). We will use Genymotion. As an example showcased application, we will use Twitter. So we start here:

Twitter in Genymotion without modification

Then we download the desired font. Here, the Redacted Script Font will hide the text behind a beautiful scratch.

We will now use the functionalities of ADB (Android Debug Bridge) to communicate and modify the Android system fonts.

As Genymotion devices are already rooted, we will just remount the system partition in write mode:

$ adb remount
remount succeeded

Then we will replace the default system fonts Roboto (Normal, Light and Bold) by the Redacted ones.

In order to backup the existing font, we just rename them by adding .old at the end:

$ for filename in `adb shell ls /system/fonts/Roboto*`; do `adb shell mv /system/fonts/$filename{,.old}`; done

We now copy all the Redacted Light font in the system folder, with the Roboto Light and Thin fonts names:


$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-light.ttf /system/fonts/Roboto-Light.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-light.ttf /system/fonts/Roboto-LightItalic.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-light.ttf /system/fonts/Roboto-Thin.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-light.ttf /system/fonts/Roboto-ThinItalic.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-light.ttf /system/fonts/RobotoCondensed-Light.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-light.ttf /system/fonts/RobotoCondensed-LightItalic.ttf


$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/Roboto-Italic.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/Roboto-Medium.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/Roboto-MediumItalic.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/Roboto-Regular.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/RobotoCondensed-Italic.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/RobotoCondensed-Regular.ttf


$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-bold.ttf /system/fonts/Roboto-Black.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/Roboto-BlackItalic.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/Roboto-Bold.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/Roboto-BoldItalic.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/RobotoCondensed-Bold.ttf
$ adb push ~/Downloads/Redacted-Font-old-sources/fonts/redacted-script-regular.ttf /system/fonts/RobotoCondensed-BoldItalic.ttf

and then, let’s restart the device

$ adb reboot

After the restart of the device, let’s reopen our showcased application, and Voila:

Twitter in Genymotion without modification