如何把打碎的system_1.img,重新打包回原始文件系统rawimage - kiddlu/android-platform-knife GitHub Wiki

如何把打碎的system_1.img,重新打包回原始文件系统rawimage

高通方案,会把system.ext4打碎成零散的system_x.img,这样做是为了方便刷机。

只记录有用的数据,00这种一大片的空数据,就直接跳过了,数据的偏移保存在rawprogram_unsparse.xml,刷机工具根据这个xml,只烧录有用的数据,空数据直接跳过。

可以使用packsparseimg,将system, cache, userdata分区还原,packsparseimg的源码在这里,我自己使用golang实现的,这样是为了在多个平台上都好部署,预先编译好的版本可以在这里找到。github上应该还有别的实现方式 ~ 居然还看到了baohaojun大神,么么搭 ~

具体使用方法:

-o 指定output路径, -x 指定记录偏移的xml文件, -t指定需要打包哪个image

$ packsparseimg.exe -h
Usage of D:\MyWinix\Cygwin\home\huangxiaolu\xbin\windows\android\packsparseimg.exe:
-o string
    output dir path (default "./")
-t string
    image to unsparse: system / cache / userdata (default "system")
-x string
    xml file to load (default "./rawprogram_unsparse.xml")

打包完成后,就会生成system.raw,这个是文件系统的镜像。如果需要用fastboot flash刷机,需要调用 img2simg system.raw syster.img 转换成Android烧录使用的格式,这个工具同样可以在上面的预先编译的目录中找到,src在这里