在做copy machine的img中,遇到不能重新build的情况(会改变信息),这个时候可以将原来生
成的这些.img(system.img,persist.img,cache.img,userdata.img)直接解包
解包命令如下:
在Linux中执行:
#先获取超级用户权限
su
#然后才能执行解包
simg2img system.img system_test.img
即可得到system.img的解包文件system_test.img(四个_test.img用于生成factoryimage.bin).
该方法延伸还可以用来修改system.img
1、得到ext4格式的文件
simg2img system.img system_test.img #这步得到ext4格式的文件
2、创建一个文件夹system_m
mkdir system_m #创建一个文件夹system_m
3、挂载镜像到system_m,这样后就可以进入该system.img内部,进行操作或修改
mount -o loop system_test.img system_m
提示:app目录内的文件权限都是644,framework目录也是644,其他目录一般也都是644的,文件
夹权限一般都是755.修改权限时不要改错了。
4、重新打包生成system.img
打包命令:
./make_ext4fs -l 1024M -s -a system system_new.img system_m #此处l是小写的L
参数解析:1024M代表你要打包的system.img大小,这个值可以参考挂载前system.img的大小,"-a system",是指这个img用
于android系统,挂载点是/system,使用这个参数,make_ext4fs会根据private/android_filesystem_config.h里定义好的权限
来给文件夹里的所有文件重新设置权限,如果你刷机以后发现有文件权限不对,可以手工修改android_filesystem_config.h来
添加权限,重新编译make_ext4fs,也可以不使用 “-a system”参数,这样就会使用文件的默认权限。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)