解压和生成 system.img&data.img ( ext4格式)

时间:2021-01-23 16:21:24

另一篇文章讲述了如何解压和生成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就可以用来烧写了。