修改andorid開機LOGO及動畫
閒來無事,上網看了達人們修改開機LOGO和開機動畫不亦樂乎。自己也按耐不住寂寞,搗鼓了一把。
修改開機動畫
參考文件:
原理:
首先,開機動畫的地址:system\media\bootanimation.zip要修改開機動畫就是修改bootanimation這個檔案。如果說你的手機裡沒有這個檔案,那就是說明你用的是官方原始版本的rom,開機動畫沒有被修改過,但這不礙事,沒有就放一個進去,到時候想換回最原始的開機畫面,也可以把bootanimation這個檔案刪了。官方最原始的開機動畫在system\ framework\framework-res.apk\assets\images裡面。
Ø 模擬器修改
先上網下載yaffs2img瀏覽器20.exe,本文結尾附件中有,已經驗證使用沒有問題。
驗證碼是
使用者名稱:樂之家(春節快樂)
註冊碼:C0A4DF124620713C0A51A718071FF0C01E86E177D7
找到你的模擬器的image資料夾
用yaffs2img瀏覽器20.exe開啟你的system.img
在media資料夾中放入你製作好的bootanimation.zip開機動畫壓縮包(見文章結尾附件)
把儲存的img放入android-sdk-windows\platforms\android-10\images,記得一定要名字一定要以system.img
Ø 真機修改
這裡我就用中興的U960s做為小白鼠了。當然了你得有root許可權。
Adb shell
#cd system/media
#ls
果然有我們想要替換的bootanimation.zip檔案
參考本部落格的重掛載system目錄的許可權(保證有rw許可權)
好了 adb push yourpath/bootanimation.zip /sdcard/bootanimation.zip
adb shell
#cp /system/media/bootanimation.zip /system/media/bootanimation.zip.bk
#cp /sdcard/bootanimation.zip /system/media/bootanimation.zip
開機重啟,呵呵,大功告成。
修改開機LOGO
參考:
Ø 製作圖片是最關鍵的一步:
1. 製作當前螢幕畫素的圖片(模擬器預設為320*480)
使用PS製作一張320*480的圖片,儲存時選“儲存為 Web所用格式”,然後在彈開的視窗上,“預設”項選擇“PNG-24”,儲存為android_logo.png
注:好像只支援png-24,其他格式生成的rle檔案顯示不正常,有興趣大家可以再驗證一下。
2. 將圖片轉換為raw格式
使用linux下的ImageMagick自帶的convert命令,進行raw格式轉換,命令為:
convert -depth 8 android_logo.png rgb:android_logo.raw
注:ubuntu 10.04預設已經安裝ImgageMagick工具,如果當前系統沒有安裝,可以執行下面的命令安裝:
sudo apt-get install imagemagick
3. 將raw格式轉化為rle檔案
需要用到android編譯後的rgb2565工具,在android/out/host/linux-x86/bin目錄下(android為當前原始碼所在目錄),轉換命令如下:
rgb2565 -rle < android_logo.raw > initlogo.rle
到目前為止,啟動需要顯示的影象已經做好了,就是initlogo.rle,注意檔名必須是這個,如果想改檔名,需要修改android/system/core/init/init.h中的巨集:
#define INIT_IMAGE_FILE "/initlogo.rle"
Ø 提取boot.img並修改
這裡以中興的blade V880作為小白鼠
cat /proc/mtd
備份boot.img命令舉例如下(切記手機不同,命令不一定相同,請核對自己手機上一步的顯示):
cat /dev/mtd/mtd2 >/sdcard/boot_test.img
將boot.img拷貝到ubuntu上(你最好裝個虛擬機器)
(解包、打包中用到的pl指令碼在文章結尾的附件中)
解包:
./unpack-bootimg.pl boot_test.img
新增開機LOGO:
打包:
./repack-bootimg.pl boot.img-kernel.gz boot.img-ramdisk jhy_boot_logo_320.img
這裡boot.img.new就是新打包生成的img檔案。
不同的手機基址是不一樣的,你可以看看下面這篇文章來算出你自己手機的bootimg基址。
Ø 重新燒錄boot.img
將jhy_boot_logo_320.img拷到手機sdcard中
cat /dev/zero > /dev/mtd/mtd1
flash_image boot /sdcard/jhy_boot_logo_320.img
不過:本人實驗的有點問題,可能是圖片那塊沒有做好,開機LOGO是這個死樣,感覺圖片怎麼縮了。而且一下子出來好多個機器人。
對比原圖:這是慘不忍睹,也沒有時間再搗鼓了,如果有興趣的TX幫我找找原因,謝謝了。
本文所有的工具、資源下載連結