萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 手機 >  >> 手機應用 >> Android 教學

Android 開機動畫客製化完整教程:從 PNG 製作到 initlogo.rle 封裝替換

Android 開機動畫分兩類:靜態 Logo (initlogo.rle) 與 動畫 (bootanimation.zip)。本教程專注靜態 Logo 替換:從 PSD/PNG 設計圖片,經 ImageMagick 轉 RAW、rgb2565 轉 RLE565 格式,解包重打包 ramdisk.img 替換系統內建開機圖。適用於 AOSP 源碼編譯環境或已 Root 且解鎖 Bootloader 的裝置。

前置環境

  • Linux 環境 (Ubuntu 10.04+ / WSL2 / 虛擬機) —— 含 ImageMagick、cpio、gzip
  • Android 源碼編譯產出的 rgb2565 工具 (位於 out/host/linux-x86/bin/)
  • 目標裝置 ramdisk.img (或從官方固件提取)
  • 目標螢幕解析度 (模擬器預設 320×480,實機需查閱具體解析度)

製作流程

1. 設計源圖片 (PNG-24)

  • Photoshop/GIMP 建立畫布:精確匹配螢幕解析度 (如 480×800、720×1280、1080×1920)
  • 設計開機 Logo,建議純色背景 + 向量 Logo,避免漸變壓縮伪影
  • 存檔:「存檔為 Web 所用格式」→ PNG-24,檔名 android_logo.png
  • 關鍵:僅 PNG-24 經測試相容,PNG-8/JPEG 經轉換顏色失真

2. PNG → RAW (RGB888)

convert -depth 8 android_logo.png rgb:android_logo.raw
  • -depth 8:每通道 8 位,共 24 位真彩色
  • 輸出 android_logo.raw 為原始位元組流 (R1G1B1 R2G2B2 ...)

3. RAW → RLE565 (initlogo.rle)

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"

4. 解包 ramdisk.img

# 重命名並解壓 gzip
mv ramdisk.img ramdisk.img.gz
gunzip ramdisk.img.gz
# 現在得到 cpio 格式的 ramdisk.img
# 驗證:file ramdisk.img → "ASCII cpio archive (SVR4 with no CRC)"

5. 提取檔案列表並注入 initlogo.rle

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

6. 重打包 ramdisk.img


cpio -o -H newc -O ../ramdisk.img < list
  • -H newc:SVR4 cpio 格式 (Android 標準)
  • -O:輸出檔案

7. 替換 SDK/裝置 ramdisk.img

  • SDK 模擬器:覆蓋 android-sdk/platforms/android-XX/images/ramdisk.img (先備份)
  • 實機:需透過 Fastboot 刷寫 fastboot flash ramdisk ramdisk.img (需解鎖 Bootloader)

8. 驗證

  • 啟動模擬器 / 重啟實機,觀察開機瞬間是否顯示自訂 Logo
  • 若顯示異常 (色塊/花屏/無圖) → 檢查解析度匹配、PNG-24 格式、rgb2565 版本匹配

動畫版開機畫面 (bootanimation.zip) 簡介

若需動畫而非靜態 Logo,製作流程不同:

  1. 準備幀序列圖片 (PNG/JPG),命名 part0/00001.png、part0/00002.png...
  2. 編寫 desc.txt:寬 高 幀率\np 循環次數 0 part0\n
  3. 打包:zip -0 bootanimation.zip part0 desc.txt (無壓縮儲存)
  4. 放入 /system/media/bootanimation.zip (需 Root 掛載 /system 可寫) 或刷入包含此檔的 ZIP 包

風險與法律提醒

  • 修改系統分區需解鎖 Bootloader,**可能失去保固**
  • 錯誤 ramdisk.img 導致無法開機 (Kernel panic),需線刷官方固件救援
  • 商業用途勿侵犯商標/版權,個人 DIY 僅供學習研究

客製化開機 Logo 是 Android 玩家入門級「系統級修改」項目,完整踐行「設計 → 轉碼 → 封裝 → 刷寫 → 驗證」工程流程,為後續 Kernel 移植、ROM 定制奠定基礎。享受獨一無二的開機體驗!

copyright © 萬盛學電腦網 all rights reserved