云梦
www.htcp.net

Linux 下合并 moto system.img_sparsechunk 文件

0x01 介绍

Moto 默认的 fastboot 线刷包 system 镜像采用的是 sparse 分段文件,无法直接挂载提取文件。只能先转换一下。

0x02 编译 simg2img 工具

这个一般是在编译 android 源码过程中使用到的工具,为了方便,在这里使用 github 单独的源码:

1. 随便新建一个文件夹,存放工具。

git clone https://github.com/anestisb/android-simg2img

安装依赖:

apt install build-essential make zlib1g-dev

2. 编译:
cd 到源码目录
make

0x03 合并 system.img_sparsechunk

1. 将所有的 system.img_sparsechunk 分段文件放到 源码目录下。

2. 直接输入如下命令:

./simg2img system.img_sparsechunk.* system.img.raw.tmp
offset=$(LANG=C grep -aobP -m1 '\x53\xEF' system.img.raw.tmp | head -1 | awk '{print $1 - 1080}')
dd if=system.img.raw.tmp of=system.img.raw ibs=$offset skip=1

Moto Z 2016 以后的设备,您可能还需要去除底部的 MMI PROPERTY:

感谢 @erfanoabdi 的发现
注意,如果您的设备不是 Moto Z 2016,请不要执行此命令。

head -c $(( 4*1024*-1 )) system.img.raw > system.ext4.img

3. 新建挂载目录并挂载:
mkdir /mnt/system
mount system.img.raw /mnt/system/

这样就可以提取文件了。=*=

赞(0) 打赏
文章通过 CC 4.0 BY-NC-ND 协议发布,转载请注明出处:云梦 » Linux 下合并 moto system.img_sparsechunk 文件

评论 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #2

    GRIFFIN_RETCN_OCC27.102-23_cid11_subsidy-DEFAULT_regulatory-DEFAULT_CFC.xml.zip,这个包有11个分段文件,按上述方法挂载会报错can’t read superblock on /dev/loop7.,请问有新的解决方法吗

    harry5年前 (2019-07-19)回复
    • ./simg2img system.img_sparsechunk.* system.img.raw.tmp
      这一步就是合并trunk的。

      晨晨5年前 (2019-07-20)回复
      • 是的,按照上面的步骤先合并,然后两次文件转换,最后都不能挂载成功,另外不是很理解,dd 和 head这两次转换的具体含义

        harry5年前 (2019-07-20)回复
        • dd 是去签名,head 是去 MMI PROPERTY。

          晨晨5年前 (2019-07-21)回复
  2. #1

    我如何修改语言文件,app安装后还是显示的英文名字(Amaze),怎么破?语言文件设置正确的啊。

    bjb01259年前 (2015-03-25)回复

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

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

支付宝扫一扫打赏

微信扫一扫打赏