本文講述如何解壓和生成system.img以及其它ext4格式相關的文件鏡像
一、必備工具
(以下兩個工具都可以在out\host\linux-x86\bin目錄下找到)
1、make_ext4fs 用來製作ext4鏡像
expected filename after options
make_ext4fs [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]
[ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]
[ -L <label> ] [ -f ] [ -a <android mountpoint> ]
[ -z | -s ] [ -J ]
<filename> [<directory>]
2、simg2img 用來將system.img還原來ext4鏡像(通過make_ext4fs製作的ext4鏡像包含了spare數據,無法以loop方式mount)
Usage: simg2img <sparse_image_file> <raw_image_file>
二、步驟
1. 得到system.img,使用file命令查看是否爲ext4。
$file system.img
system.img:data
// 說明此img爲make_ext4fs製作的帶有spare數據的鏡像,則需要進行simg2img的轉換。
2. $simg2img system.img system.img.ext
此時可以再次檢測鏡像類型:
file system.img.ext4
system.img: Linux rev 1.0 ext4 filesystem data...
//如此說明此img爲ext4文件系統,可以進行loop
掛載了。
3. $mkdir system //創建一個任意名字的目錄用於後面的掛載
4. $sudo mount -t ext4 -o loop system.img_ext4 system/
5. .... "隨意"修改system目錄下的文件
6. $./make_ext4fs -s -l 512M -a system system_new.img system #512M表分區大小 “-a system”表示掛載點爲/system, 第二個system表示system目錄即第3步中創建的文件夾。
7. 新生成的system_new.img就可以用來燒寫了。