1. 程式人生 > >官方韌體修改以及T卡升級包修改

官方韌體修改以及T卡升級包修改

首先給大家介紹一下,system.img 檔案

system.img檔案經常以兩種格式出現:raw和sparse。 

1. raw ext4 image,即經常說的raw image,使用file觀察它: 

$ file system.img

system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b 

其特點是完整的ext4分割槽映象(包含很多全零的無效填充區),可以直接使用mount進行掛載,因此比較大(一般1G左右)。

2. sparse ext4 image,即經常說的simg,使用file觀察它:

$ file system.img

system.img: data

就是說是一個非常普通的dat檔案。由於它將raw ext4進行稀疏描述,因此尺寸比較小(沒有全零的無效填充區,一般在300到500M之間)。

注:

所有操作Linux中執行

make_ext4fs,simg2img 如果有原始碼可以從/out/host/linux-x86/bin/ 下獲取

signapk.jar 如果有原始碼可以從/out/host/linux-x86/framework/ 下獲取

第一部分 system.img檔案修改

1.system.img是raw ext4 image格式(raw image),

1)建system資料夾

         mkdir system
2) 掛載分割槽到系統修改

         sudo mount -t ext4 -o loop system_org.img system

3) ls 檢視一下system_org.img映象大小。
ls -l system_org.img
-rw-rw-r--  1 xxx:xxx999997440 .... system_org.img

        因為我們打包需要設定映象檔案大小,這個大小是固定的,最好別亂改。

4)  獲取file_contexts檔案,打包需要用到。

        adb pull system/file_contexts(或者解包boot.img來獲取,這裡不詳述)

5)  修改過後通過make_ext4fs來打包為sparse img模式的ext4,關鍵引數是 -s

sudo make_ext4fs -S file_contexts -s -l 999997440 -a system system_org.img ./system

6)  打包後,需要將simg轉換為raw image

        simg2img system.img system_out.img

2.system.img是sparse ext4 image格式(simg),

1)建system資料夾

         mkdir system

2)  將simg轉換為raw image

      simg2img system_org.img system_org_raw.img

3) 掛載分割槽到系統修改

         sudo mount -t ext4 -o loop system_org_raw.img system

4) ls 檢視一下system_org_raw.img映象大小。
ls -l system_org_raw.img
-rw-rw-r--  1 xxx:xxx 999997440 .... system_org_raw.img

        因為我們打包需要設定映象檔案大小,這個大小是固定的,最好別亂改。

5)  獲取file_contexts檔案,打包需要用到。

        adb pull system/file_contexts(或者解包boot.img來獲取,這裡不詳述)

6)  修改過後通過make_ext4fs來打包為sparse img模式的ext4,關鍵引數是 -s

sudo make_ext4fs -S file_contexts -s -l 999997440 -a system system_org.img ./system

第二部分 T卡整包升級修改

分為兩種,

1.update.zip包仿照增量包的方式進行打包了。使用make otapackage得到一個zip檔案,檢視內容:
boot.img
file_contexts
META-INF
system.new.dat
system.patch.dat
system.transfer.list

直接用修改後的system.img(可參考第一部分修改),

執行指令:python img2sdat.zip 

然後生成如下三個檔案

system.new.dat
system.patch.dat
system.transfer.list

替換原始T卡升級包,然後簽名即可

2.update.zip中system全部解包,

    

直接修改update.zip包,修改後簽名

簽名方法:

java -Xmx2048m -jar signapk.jar -w releasekey.x509.pem releasekey.pk8 update.zip update_new.zip