1. 程式人生 > >Android MTK平臺最完備的開機動畫修改教程

Android MTK平臺最完備的開機動畫修改教程

修改手機的開機動畫不是什麼難事兒。

但修改一款很冷門的“山寨機”,就不太好修改第一屏了。

手機是MTK的一款手機,雖然比較貴(價格超過三星Note3),但在我看來跟山寨機木有啥區別。

很冷門的手機,百度谷歌都翻了個天,都木有刷機包,更別提recovery了。

好了,root完畢,開工。

開機動畫嚴格意義上可以分為三個步驟:

1.開機第一屏

2.開機第二屏

3.開機動畫

以MTK手機為例:

Boot logo:
1. 開機顯示的順序如下:
    boot logo(開機第一屏)   (logo.bin 中)
    Kernel logo(開機第二屏)  (system/media/images/boot_logo 檔案)
    Boot animation(開機動畫)(system/media/bootanimation.zip 檔案)
2. boot logo和kernel log所用的圖片資源在 mediatek/custom/common/uboot/logo 目錄下。
    在ProjectConfig.mk中指定具體目錄,比如BOOT_LOGO=wvga_XXX,表示用wvga_XXX目錄下的資源,該目錄下的資源都是bmp檔案。
    在logo/update 檔案中會呼叫tool/bmp_to_raw將bmp檔案轉換成raw檔案,並且在make uboot時會將這些資原始檔放到logo.bin 中。 
    Logo/update 針對wvga_XXX_kernel.bmp有特殊處理,將其轉成raw檔案並命名為/logo/boot_logo
    在mediatek/source/external/boot_logo_upater/Android.mk中會將boot_logo 檔案放到out/target/product/system/media/images/boot_logo. 這樣就放到了system.img中.
3. boot logo的顯示: boot.img中載入logo.img中的boot 圖片顯示;
    Kernel logo的顯示: init.rc 啟動 service bootlogoupdater /system/bin/boot_logo_updater .
    boot_logo_updater這個可執行程式由boot_logo_updater.c 編譯而成,其功能是從/system/media/images/boot_logo 中讀出kernel_boot資源,並通過framebuffer直接顯示到LCD上。
    注:可以根據logo/update中的指令碼單獨生成boot_logo檔案(修改第二屏),然後用adb remount/adb push的方法直接放到手機裡面觀察效果。

下面依次來修改三個螢幕。

1.開機第一屏

這一屏的修改主要是製作一個update.zip的升級包,用recovery刷上去就看到效果了。

但對於山寨機來說,就比較麻煩了(木有第三方recovery,官方的recovery戰鬥力就是個渣渣(原因可自行百度))。

(1)adb pull 匯出logo檔案(是的,木有後綴,我手邊的機子是在/dev/目錄下)

(2)將logo檔案加個字尾.bin

(3)下載開機第一屏製作軟體LogoBuilder

(4)如圖,替換img1圖片(也就是開機第一屏),點選“開始生成”,匯出update.zip的刷機包

(5)將生成的卡刷包 update.zip 拷到sd卡根目錄下,手機進入 recovery ,進行卡刷(特別提醒:不要雙清),刷完後重啟手機就會看到新的第一屏。

注:悲劇的是,自己不會做第三方recovery,而這破機子也沒有第三方recovery!

2.開機第二屏

(1)匯出boot_logo檔案至筆記本

(2)使用Image Search Editor軟體開啟boot_logo檔案,用同尺寸的bmp檔案替換顯示出來的圖片。

(3)將替換圖片後的boot_logo匯入到手機原目錄

(4)OK

3.開機動畫

(1)匯出bootanimation.zip 檔案至PC

(2)解壓縮,發現2個目錄和一個desc.txt的"指令碼檔案"



bootanimation.zip裡面一般有兩個資料夾part0,part1,一個文字檔案desc.txt
dest.txt裡面的引數是用來控制播放的,
比如:
第一行   540  960   24       540*960是手機的解析度,而接著的一秒播放多少幀,這裡是24
第二行    p  1  0    part0     這裡第一個數字1表示播放1遍,第二個數字表示不停頓,而part0表示播放用的圖片資料夾  

第三行    p  0  0    part1     這裡第一個數字0表示迴圈播放,第二個數字若不為0,則表示每播放到當前這個數字的幀停頓一下,(以10為例,就是每播放10幀停一下)而part1表示播放用的圖片資料夾

更換兩個資料夾的檔案為自己的逐幀動畫圖片素材,重新打包為zip檔案。
注意:要存為zip格式,並且只能是儲存,否則開機動畫是播放不出來的
製作好之後進行替換就可以了需要注意的是檔案容量不能太大盡量不要高於原開機動畫大多否則會造成讀取慢卡失效,另外,還需要配合開機音樂的時長。

開機音樂相對簡單,替換system/media中的bootaudio.mp3檔案即可。

關機動畫與開機動畫修改類似。

The End。