天天看點

MTK Android recovery/logo圖檔資源制作

一、文字圖檔轉換

png 圖檔生成源碼:

development/tools/recovery_l10n/

recovery_l10n 在 o上已經沒有源碼了,需要從kk上移植過來

原生的源代碼有個bug,導緻讀取出來的Locale[]數組值全部為空,無法完成圖檔的制作。

diff --git a/tools/recovery_l10n/src/com/android/recovery_l10n/Main.java b/tools/recovery_l10n/src/com/android/recovery_l10n/Main.java
index 3f2bebe..5da5592 100755
--- a/tools/recovery_l10n/src/com/android/recovery_l10n/Main.java
+++ b/tools/recovery_l10n/src/com/android/recovery_l10n/Main.java
@@ -150,7 +150,7 @@ public class Main extends Activity {
         Arrays.sort(localeNames);
         ArrayList<Locale> locales = new ArrayList<Locale>();
         for (String ln : localeNames) {
-            int u = ln.indexOf('_');
+            int u = ln.indexOf('-');
             if (u >= 0) {
                 Log.i(TAG, "locale = " + ln);
                 locales.add(new Locale(ln.substring(0, u), ln.substring(u+1)));
           

1、

res\values-zh-rCN\strings.xml

用于顯示中文文字,可以修改裡面的中文文字為您所需要的。

2、

res\layout\main.xml

用于改變文字格式,如大小、字型等。

3、然後使用mm編譯出

out\target\product…\system\app\RecoveryLocalizer.apk

4、安裝打開後選擇需要的文字圖檔後點選go按鈕。

5、取出圖檔:

adb pull data/data/com.android.recovery_l10n/files/text-out.png

6、生成的圖檔還不能直接替換系統圖檔,需要在Ubuntu環境下作進一步處理

(如未安裝 pngcrush,請先安裝 :

sudo apt-get install pngcrush

)

pngcrush -c 0 text-out.png output.png

二、android5.1 logo動畫

android5.1的logo動畫是單張多幀PNG圖檔

1、安裝python、pip、PIL 圖形庫

2、python interlace-frames.py .\src1.png .\src2.png .\src3.png .\src4.png .\src5.png .\src6.png .\src7.png .\src8.png .\dst.png

三、android8.1 logo動畫

android8.1的logo動畫是多張8位深度png的圖檔

用 imagemagick 工具的 convert 指令轉換 sudo apt-get install imagemagick

//convert src.png -colorspace gray dst.png

convert image.png -define png:color-type=2 result.png

bit_depth(8)channels(3)color_type(2)

// 批量轉換圖檔的腳本

#!/bin/bash
# get all filename in specified path

path=$1
files=$(ls $path)
for filename in `find . -name "*.png"`;
do
    echo "convert"$filename
    convert $filename -define png:color-type=2 $filename
done
           

檢視png圖檔資訊

sudo apt-get install pngtools
pnginfo bootable/recovery/res-mdpi/images/error_text.png
           

顯示結果如下:

error_text.png...
  Image Width: 163 Image Length: 2582
  Bitdepth (Bits/Sample): 8
  Channels (Samples/Pixel): 1
  Pixel depth (Pixel Depth): 8
  Colour Type (Photometric Interpretation): GRAYSCALE 
  Image filter: Single row per byte filter 
  Interlacing: No interlacing 
  Compression Scheme: Deflate method 8, 32k window
  Resolution: 0, 0 (unit unknown)
  FillOrder: msb-to-lsb
  Byte Order: Network (Big Endian)
  Number of text strings: 0
           

使用 convert 指令轉換之後檢視圖檔資訊顯示結果如下:

error_text.png...
  Image Width: 163 Image Length: 2582
  Bitdepth (Bits/Sample): 8
  Channels (Samples/Pixel): 3
  Pixel depth (Pixel Depth): 24
  Colour Type (Photometric Interpretation): RGB 
  Image filter: Single row per byte filter 
  Interlacing: No interlacing 
  Compression Scheme: Deflate method 8, 32k window
  Resolution: 0, 0 (unit unknown)
  FillOrder: msb-to-lsb
  Byte Order: Network (Big Endian)
  Number of text strings: 0
           

轉換之後的 channels 和 pixel depth 和 Colour Type 都已經發生了變化