Steps to regenerate background text images under res-*dpi/images/

  1. Build the recovery_l10n app:

    cd bootable/recovery && mma -j32

  2. Install the app on the device (or emulator) with the intended dpi.

    • For example, we can use Nexus 5 to generate the text images under res-xxhdpi.
    • We can set up the maximum width of the final png image in res/layout/main.xml Currently, the image width is 1200px for xxxhdpi, 900px for xxhdpi and 480px for xhdpi/hdpi/mdpi.
    • When using the emulator, make sure the NDK version matches the current repository. Otherwise, the app may not work properly.

    adb install $PATH_TO_APP

  3. Run the app, select the string to translate and press the 'go' button.

  4. After the app goes through the strings for all locales, pull the output png file from the device.

    adb root && adb pull /data/data/

  5. Compress the output file put it under the corresponding directory.

    • "pngcrush -c 0 ..." converts "text-out.png" into a 1-channel image, which is accepted by Recovery. This also compresses the image file by ~60%.
    • zopflipng could further compress the png files by ~10%, more details in
    • If you're using other png compression tools, make sure the final text image works by running graphic tests under the recovery mode.

    pngcrush -c 0 text-out.png $OUTPUT_PNG