1、先来分析一下原因:system.img有两种常见的格式:raw和sparse。raw:即raw ext4 image,也就是经常说的raw image,用file命令可以查看他的特点,如图所示。raw是完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount挂载:sudo mount -o loop system.img /mnt
2、sparse:是sparse ext4 坡纠课柩image,也就是常说的simg, 用file命令可以查看他的属性,如图所示。看见了吗?system_sparse.img: Android sparse image,它是进行了稀疏描述的raw ext4文件,它尺寸比较小,因为它去掉了全零的无效填充数据,但是,这样造成我们不能直接使用mount挂载,需要转换成raw再挂载,下面我们来介绍如何转换。
3、安卓本身提供了raw和sparse之间的转换工具simg2img和img2simg,而且ubuntu将这个工具打包成了一个叫做android-tools-fsutils的软件包,我们只需要安装上这个工具就可以使用simg2img这个工具了,linux就是方便,要是在windows上,光是安装这个工具就得费点时间。sudo apt install android-tools-fsutils
4、工具安装好了之后就可转换了,只需要一条简单的命令:simg2img system_sparse.img system_raw.imgsimg2img后不带参数,是simg2img的使用方法,如图:
5、现在我们得到了可以挂载的raw image,我们再挂载试试:sudo mount -o loop system_raw.img /mnt成功,没有报错,ls /mnt/可以看到system.img的内容了