解包system.img, cache.img,修改并重新打包

1,解包

三星的galaxy s2/S3/note等手机的官方odin线刷包是tar压缩,里面的system.img与cache.img等如果在linux下用file命令看,都是data格式。所以解包成有如下几个步骤

> tar -xvf KIES_HOME_I9300ZSDLK4.tar  解压tar包

> simg2img cache.img cache.img.ext4 从data格式转成ext4格式

> mkdir tmp 新建临时文件夹

> sudo mount -o loop cache.img.ext4 tmp 将ext4文件挂载到tmp目录

2,按照需要修改tmp目录中的内容

3,打包
先ls -l cache.img.ext4看大小,假设是1073741824,这个参数后边用到。

> make_ext4fs -s -l 1073741824 -a cache new_cache.img ./tmp

-s是个很重要的参数,不加的话生成的new_cache.img的大小直接就是1073741824(1个G),加上的话是按需生成。

-l刷到机器后的分区大小,-a挂载点(cache.img开机时会挂载到/cache),new_cache.img输出文件名,/tmp文件内容。

上述的simg2imgmake_ext4fs是android自带的工具,如果有android源码而且编译通过的话, 这些工具可以在/out/host/linux-x86/bin中找到。

=================================
附赠小知识,odin在刷tar包的时候,如果tar包里面有cache.img,刷机成功后手机会重启到recovery模式,然后recovery将会解析cache/recovery/command命令来执行。修改这个command文件可以达到很多有趣的效果。

你可能感兴趣的:(解包system.img, cache.img,修改并重新打包)