Android Rom定制与修改学习(一)
最近ZUK慘遭聯想拋棄,從而使得ZUK系列全線大降價,于是將服役了三年的榮耀6換下了,入手ZUK2 PRO,機器在硬件方面都挺讓人滿意,只是聯想采用了一塊AMOLED屏,相比較于IPS而言,A屏顏色實在過于飽和,外加ZUK自帶ZUI也可能不再更新,于是便萌生了在ZUI2.3基礎上自行定制來達到降低屏幕飽和度以及進行適量調整的想法,在此記錄下自己的學習歷程。
- 1、聯想ZUI Rom解包
- 2、boot.img解打包
- 3、system.img解打包
1、聯想ZUI ROM解包
聯想官方ROM解包出來的是一系列QSB文件,需要進行進一步解包才能得到相應的.img文件,本部分主要參考:http://bbs.lenovomobile.cn/z2pro/t296299中的流程進行,下載文中提到的qsb_bootimg.exe和作者制作的bat文件進行一鍵解包(直接將qsb文件拖上bat)。
解包后得到如下文件:system1.img、system2.img。。。以及boot1.img、boot2.img等等,分開的零散文件無法使用正常的方法進行打開,于是采用上面解包bat作者制作的合并工具qsb-imger.exe將零散的img文件進行合并,使用方法如下:
經過以上步驟,可得到一個完整rom所需要的幾乎所以img文件和底包(一些mbn文件和類似分區的bin文件,目前還有待進一步探索),對于rom的修改基本上只需要用到boot.img和system.img文件。
2、boot.img解打包
從本部分開始主要在ubuntu16.04下進行。
boot.img中的內容主要包括一個head和linux內核和跟文件系統,對于從官方rom基礎上進行修改得到定制rom而言,解包boot.img主要是為了做內核root,同時也可以從跟文件系統ramdisk中抽取file_contexts文件供之后system.img再打包是使用。解打包使用的工具為mkbootimg系列工具,具體使用方法在終端中輸入命令參考幫助即可獲得。
3、system.img解打包
linux下system.img解包使用mount命令即可:
sudo mount -t ext4 -o loop system.img system解包后掛載文件夾system為755權限,不利用修改,因此對其權限進行修改:
sudo chmod -R 777 system之后便可以對該文件夾進行一系列修改,修改完成后,將file_contexts文件復制到與system文件夾同一目錄,使用make_ext4fs和simg2img對system進行再打包操作:
sudo make_ext4fs -s -l 3072M -S file_contexts -a system system_new.img system 這里有幾個注意點,之前我沒注意到的時候制作成刷機包一直刷機失敗:
1.-l后面的文件大小盡量與原文件保持一致,甚至可以直接復制源文件屬性中文件大小。
2.make_ext4fs最好升級至最新版本。
3.-s這個參數是生成ext4的sparse版img,實測不加好像也沒什么影響,只是加上后需要用simg2img進行再次轉換,具體會產生什么影響之后有時間再研究。
成功后,將生成文件改名為system.img文件,并找到一個刷機包的updater-script文件(在META-INF文件夾深處)進行相應修改,同boot.img文件一同打包為一個update.zip文件,使用auto-sign工具進行簽名之后就可以進行愉快的刷機了。
總結
以上是生活随笔為你收集整理的Android Rom定制与修改学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我在滴滴数据分析岗实习8个月的收获(文末
- 下一篇: Android实例——拼图游戏