云梦
www.htcp.net

解包与重新打包 Android erofs 格式镜像

最近发现手头的设备,super 下的分区镜像全换成 erofs 了,erofs 是完全只读的文件系统,可以将其理解为一个经过优化的压缩包。

想着修改一下系统文件,然后找了好多工具来转换它。突然灵光一现,Linux 不就是最好的解包工具么!还用找什么工具!直接走起~

挂载镜像

super.img 直接用 7z 解包即可。

解包出来会有例如 system_a system_ext_a product_a vendor_a 等镜像。

erofs 格式 7z 目前不能被正常识别并支持。

找到需要修改的镜像,例如 system_a.img。

执行如下命令:

mkdir tmp
sudo mount system_a.img tmp

拷贝文件

全拷贝镜像中的所有文件,包括权限、用户组、selinux contents 等:

cp -rf --preserve=all tmp system
umount tmp

修改文件

注意:如果是同名文件,直接使用 cp 命令覆盖,不会让权限、selinux contents 等发生改变。

如果需要新建文件,则需要设置权限,所有者,并手动 chcon 变更 selinux contents 内容。

重新打包 erofs

简单的很,就一条命令:

mkfs.erofs -zlz4hc system_new.img system/

生成的新的镜像为 system_new.img。

进 fastbootd 模式,刷进去试试看吧。

哦,对了,记得去除 dm-verity 才能使用修改的镜像哦。

方法也很简单,fastboot 刷入当前版本系统固件的 vbmeta。

fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

参考

erofs 参考:

https://source.android.com/docs/core/architecture/kernel/erofs?hl=zh-cn

https://github.com/erofs/erofs-utils/blob/dev/README

赞(0) 打赏
文章通过 CC 4.0 BY-NC-ND 协议发布,转载请注明出处:云梦 » 解包与重新打包 Android erofs 格式镜像

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

如果您觉得文章有用,可以支持一下本站

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏