另一篇文章讲述了如何解压和生成system.img, 那是针对yaffs2格式的文件系统镜像。
目前越来越多的Android手机放弃了nand, 更多采用了emmc为内部存储设备。
以emmc为存储设备的android手机,其文件系统(/system,/data两个分区)一般采用ext4格式。
下面讲述如何解压和生成 system.img。
一、必备工具
(以下两个工具都可以在out\host\linux-x86\bin目录下找到)
make_ext4fs 用来制作ext4镜像
xpected 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>]
simg2img 用来将system.img还原来ext4镜像(通过make_ext4fs制作的ext4镜像包含了spare数据,无法以loop方式mount)
Usage: simg2img <sparse_image_file> <raw_image_file>
二、步骤
1. 得到system.img
2. $simg2img system.img system_raw.img
3. $mkdir system
4. mount -t ext4 -o loop system_raw.img system
5. .... "随意"修改system目录下的文件
6. $./make_ext4fs -s -l 512M -a system system_new.img system #512M表分区大小 第一个system表示挂载点为/system, 第二个system表示system目录。
7. 新生成的system_new.img就可以用来烧写了。