本文讲述如何解压和生成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
此时可以再次检测镜像类型:
filesystem.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就可以用来烧写了。