Android 開機動畫分兩類:靜態 Logo (initlogo.rle) 與 動畫 (bootanimation.zip)。本教程專注靜態 Logo 替換:從 PSD/PNG 設計圖片,經 ImageMagick 轉 RAW、rgb2565 轉 RLE565 格式,解包重打包 ramdisk.img 替換系統內建開機圖。適用於 AOSP 源碼編譯環境或已 Root 且解鎖 Bootloader 的裝置。
ImageMagick、cpio、gziprgb2565 工具 (位於 out/host/linux-x86/bin/)ramdisk.img (或從官方固件提取)android_logo.pngconvert -depth 8 android_logo.png rgb:android_logo.raw
-depth 8:每通道 8 位,共 24 位真彩色android_logo.raw 為原始位元組流 (R1G1B1 R2G2B2 ...)rgb2565 -rle < android_logo.raw > initlogo.rle
rgb2565:Android 建構系統編譯產出的工具,將 RGB888 壓縮為 RLE 編碼的 RGB565 (16 位色深)initlogo.rle,**檔名必須完全一致**,否則需修改源碼 system/core/init/init.h 中 #define INIT_IMAGE_FILE "/initlogo.rle"# 重命名並解壓 gzip
mv ramdisk.img ramdisk.img.gz
gunzip ramdisk.img.gz
# 現在得到 cpio 格式的 ramdisk.img
# 驗證:file ramdisk.img → "ASCII cpio archive (SVR4 with no CRC)"
mkdir temp && cd temp
cpio -i -F ../ramdisk.img # 解包到當前目錄
cpio -i -t -F ../ramdisk.img > list # 導出檔案列表
編輯 list 檔案,在適當位置 (建議 init.rc 之後) 插入 initlogo.rle:
data
default.prop
dev
init
init.goldfish.rc
init.rc
initlogo.rle ← 新增此行
proc
sbin
sbin/adbd
sys
system
cpio -o -H newc -O ../ramdisk.img < list
-H newc:SVR4 cpio 格式 (Android 標準)-O:輸出檔案android-sdk/platforms/android-XX/images/ramdisk.img (先備份)fastboot flash ramdisk ramdisk.img (需解鎖 Bootloader)若需動畫而非靜態 Logo,製作流程不同:
part0/00001.png、part0/00002.png...desc.txt:寬 高 幀率\np 循環次數 0 part0\nzip -0 bootanimation.zip part0 desc.txt (無壓縮儲存)/system/media/bootanimation.zip (需 Root 掛載 /system 可寫) 或刷入包含此檔的 ZIP 包客製化開機 Logo 是 Android 玩家入門級「系統級修改」項目,完整踐行「設計 → 轉碼 → 封裝 → 刷寫 → 驗證」工程流程,為後續 Kernel 移植、ROM 定制奠定基礎。享受獨一無二的開機體驗!