如何解包 Android ROM

如何解包 Android ROM

提醒事项

注意:本教程以在 Windows 10 平台下进行解包操作为例,并确保你拥有可以访问国际网络的能力。在阅读本篇wiki前,请确保你有一定的基础。

格式确认

在正式开始之前,你需要了解你接下来需要解包的是哪种类型的文件。本教程将介绍

payload.bin

super.img

ozip格式

br格式

dat格式(以及vivo分段dat)

img格式Payload.bin解包

1. 获得所需工具 - Payload dumper go - GitHub

请访问工具 GitHub 仓库并从 Release 内下载工具

2. 解包

将工具解压到 payload.bin 所在目录

在该目录下打开 cmd 命令行

输入 payload-dumper-go.exe payload.bin

小等一会 payload.bin 内的所有文件将会解压到 output_xxx 目录内3. 进阶用法[可选]

1. 只解包某个分区

将工具解压到 payload.bin 所在目录

在该目录下打开 cmd 命令行

输入 payload-dumper-go.exe -p 所需分区名 payload.bin (示例: payload-dumper-go.exe -p system payload.bin )

小等一会 所指定的文件将会解压到 output_xxx 目录内2. 只解包部分分区

将工具解压到 payload.bin 所在目录

在该目录下打开 cmd 命令行

输入 payload-dumper-go.exe -l payload.bin 以列出 payload.bin 内所有的分区文件

输入 payload-dumper-go.exe -p 所需分区名并以英文逗号分隔 payload.bin (示例: payload-dumper-go.exe -p system,vendor payload.bin )

小等一会 所指定的文件将会解压到一个名为 output_xxx 的目录内注意:指定的顺序需要按照工具所列出的输入,否则无法正常解压指定的分区(如:system,vendor √ vendor,system ×)

super.img 解包

1. 获得所需工具 - lpunpack(GitHub)

所需环境: Python(官网)

访问 lpunpack 仓库并点击 Code - Download zip 下载

2. 解包

将工具解压到 super.img 所在目录

在该目录下打开 cmd 命令行

输入 python lpunpack.py super.img output

小等一会 super.img 内的所有文件将会解压到 output 目录内3. 进阶用法[可选]

1. 只想要某个分区

将工具解压到 super.img 所在目录

在该目录下打开 cmd 命令行

输入 python lpunpack.py -p 所需分区名 super.img output(示例: python lpunpack.py -p system_a super.img output)特别注意

由于小米线刷包提供的是 sparse image(simg) 而解压 super.img 前需要转换为 raw image(rimg) 请跟随以下步骤转换

下载 simg2img(GitHub)

解压到 super.img 所在目录

在该目录下打开 cmd 命令行

输入 simg2img.exe super.img super.rimg.img

小等一会 super.img 将会转换为 raw image注: 转换之后上面教程中的 super.img 请替换为 super.rimg.img(示例: python lpunpack.py super.rimg.img output)

ozip 解包

1. 获得所需工具 - oppo_ozip_decrypt(GitHub)

所需环境: Python(官网)

访问 oppo_ozip_decrypt 仓库并点击 Code - Download zip 下载

2. 解包

将工具解压到 ozip 所在目录

在该目录下打开 cmd 命令行

输入 pip install -r requirements.txt (只需运行一次 即后续使用无需再次运行)

输入 python ozipdecrypt.py Example.ozip (这里的 Example.ozip 替换为你所需要解压的 ozip 文件)

小等一会 ozip 将会转换为 zipbr格式解包

1. 获得所需工具 - brotli(GitHub)

请访问工具 GitHub 仓库并从 Release 内下载工具

2. 解包

将工具解压到 br文件 所在目录

在该目录下打开 cmd 命令行

输入 brotli.exe -d br文件 (示例: brotli.exe -d system.new.dat.br)

小等一会 br文件 将会被解压 解压后的文件在同目录内3. 进阶使用[可选]

1. 解包后删除源文件

将工具解压到 br文件 所在目录

在该目录下打开 cmd 命令行

输入 brotli.exe -j -d br文件 (示例: brotli.exe -j -d system.new.dat.br)

小等一会 br文件 将会被解压到同目录下 同时 br文件 也会被删除dat格式解包

1. 获得所需工具 - sdat2img(GitHub)

所需环境: Python(官网)

访问 sdat2img 仓库并点击 Code - Download zip 下载

2. 解包

将工具解压到 dat文件 所在目录

在该目录下打开 cmd 命令行

输入 python sdat2img.py transfer.list文件 dat文件 [输出img名] (示例: python sdat2img.py system.transfer.list system.new.dat system.img)

小等一会 dat文件 将会被解压 解压后的文件在同目录内注意:[输出img名] 为可选项 不传入此参数解压得到的 img 名称默认为 system.img

3. vivo 分段dat 解包

将工具解压到 dat文件 所在目录

在该目录下打开 cmd 命令行

输入 type dat文件.* > dat文件 (示例: type system.new.dat.* > system.new.dat)

输入 python sdat2img.py transfer.list文件 dat文件 [输出img名] (示例: python sdat2img.py system.transfer.list system.new.dat system.img)

小等一会 dat文件 将会被解压 解压后的文件在同目录内注意:[输出img名] 为可选项 不传入此参数解压得到的 img 名称默认为 system.img

img格式解包

特别注意

本章节将分为三个部分,分别是

ext4 格式 img 解压

erofs 格式 img 解压

boot/recovery类型 img 解压1. ext4 格式解包

1. 获得所需工具 - imgextractor & ext4

所需环境: Python(官网)

所需工具:

imgextractor - GitHub & ext4 - GitHub

访问对应链接 并点击 下载图标 下载文件

2. 解包

将文件放置到 img文件 所在目录(imgextractor.py 和 ext4.py 均需要放置)

在该目录下打开 cmd 命令行

输入 python imgextractor.py img文件 输出目录 (示例: python imgextractor.py system.img system)

小等一会 img文件 将会被解压2. erofs 格式解包

1. 获得所需工具 - extract.erofs(GitHub)

请访问工具 GitHub 仓库并从 Release 内下载工具

2. 解包

将工具内所有文件放置到 img文件 所在目录

在该目录下打开 cmd 命令行

输入 extract.erofs.exe -i img文件 -o 输出目录 (示例: extract.erofs.exe -i system.img -o system)

小等一会 img文件 将会被解压3. boot/recovery类型 img 解压包

1. 获得所需工具 - magiskboot(GitHub)

请访问工具 GitHub 仓库并从 Release 内下载工具

2. 解包

将工具放置到 img文件 所在目录

在该目录下打开 cmd 命令行

输入 magiskboot.exe unpack -h img文件 (示例: magiskboot.exe unpack -h boot.img)

小等一会 img文件 将会被解压