如何解包 Android ROM:修订间差异

来自Uotan Wiki · 刷机百科
(首次编写)
 
无编辑摘要
 
(未显示1个用户的2个中间版本)
第1行: 第1行:
== 提醒事项 ==
== 提醒事项 ==
注意:本教程以在 Windows 10 平台下进行解包操作为例,并确保你拥有可以访问国际网络的能力
注意:本教程以在 Windows 10 平台下进行解包操作为例,并确保你拥有可以访问国际网络的能力。在阅读本篇wiki前,请确保你有一定的基础。


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


# payload.bin
# [[#Payload.bin解包|'''payload.bin''']]
# super.img
# [[#super.img 解包|'''super.img''']]
# ozip格式
# [[#ozip 解包|'''ozip格式''']]
# br格式
# [[#br格式解包|'''br格式''']]
# dat格式(以及vivo分段dat)
# [[#dat格式解包|'''dat格式(以及vivo分段dat)''']]
# img格式
# [[#img格式解包|'''img格式''']]


== Payload.bin解包 ==
== Payload.bin解包 ==


=== 1. 获得所需工具 - Payload dumper go([https://kkgithub.com/ssut/payload-dumper-go GitHub]) ===
=== 1. 获得所需工具 - Payload dumper go - [https://kkgithub.com/ssut/payload-dumper-go GitHub] ===
请访问工具 GitHub 仓库并从 Release 内下载工具
请访问工具 GitHub 仓库并从 Release 内下载工具


第129行: 第129行:


=== 3. vivo 分段dat 解包 ===
=== 3. vivo 分段dat 解包 ===
暂未编写
 
# 将工具解压到 dat文件 所在目录
# 在该目录下打开 cmd 命令行
# 输入 <code>type dat文件.* > dat文件</code> (示例: <code>type system.new.dat.* > system.new.dat</code>)
# 输入 <code>python sdat2img.py transfer.list文件 dat文件 [输出img名]</code> (示例: <code>python sdat2img.py system.transfer.list system.new.dat system.img</code>)
# 小等一会 dat文件 将会被解压 解压后的文件在同目录内
 
注意:<code>[输出img名]</code> 为可选项 不传入此参数解压得到的 img 名称默认为 system.img


== img格式解包 ==
== img格式解包 ==

2024年2月17日 (六) 00:41的最新版本

提醒事项

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

格式确认

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

  1. payload.bin
  2. super.img
  3. ozip格式
  4. br格式
  5. dat格式(以及vivo分段dat)
  6. img格式

Payload.bin解包

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

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

2. 解包

  1. 将工具解压到 payload.bin 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 payload-dumper-go.exe payload.bin
  4. 小等一会 payload.bin 内的所有文件将会解压到 output_xxx 目录内

3. 进阶用法[可选]

1. 只解包某个分区

  1. 将工具解压到 payload.bin 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 payload-dumper-go.exe -p 所需分区名 payload.bin (示例: payload-dumper-go.exe -p system payload.bin )
  4. 小等一会 所指定的文件将会解压到 output_xxx 目录内

2. 只解包部分分区

  1. 将工具解压到 payload.bin 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 payload-dumper-go.exe -l payload.bin 以列出 payload.bin 内所有的分区文件
  4. 输入 payload-dumper-go.exe -p 所需分区名并以英文逗号分隔 payload.bin (示例: payload-dumper-go.exe -p system,vendor payload.bin )
  5. 小等一会 所指定的文件将会解压到一个名为 output_xxx 的目录内

注意:指定的顺序需要按照工具所列出的输入,否则无法正常解压指定的分区(如:system,vendor √ vendor,system ×)

super.img 解包

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

所需环境: Python(官网)

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

2. 解包

  1. 将工具解压到 super.img 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 python lpunpack.py super.img output
  4. 小等一会 super.img 内的所有文件将会解压到 output 目录内

3. 进阶用法[可选]

1. 只想要某个分区

  1. 将工具解压到 super.img 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 python lpunpack.py -p 所需分区名 super.img output(示例: python lpunpack.py -p system_a super.img output)

特别注意

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

  1. 下载 simg2img(GitHub)
  2. 解压到 super.img 所在目录
  3. 在该目录下打开 cmd 命令行
  4. 输入 simg2img.exe super.img super.rimg.img
  5. 小等一会 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. 解包

  1. 将工具解压到 ozip 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 pip install -r requirements.txt (只需运行一次 即后续使用无需再次运行)
  4. 输入 python ozipdecrypt.py Example.ozip (这里的 Example.ozip 替换为你所需要解压的 ozip 文件)
  5. 小等一会 ozip 将会转换为 zip

br格式解包

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

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

2. 解包

  1. 将工具解压到 br文件 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 brotli.exe -d br文件 (示例: brotli.exe -d system.new.dat.br)
  4. 小等一会 br文件 将会被解压 解压后的文件在同目录内

3. 进阶使用[可选]

1. 解包后删除源文件

  1. 将工具解压到 br文件 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 brotli.exe -j -d br文件 (示例: brotli.exe -j -d system.new.dat.br)
  4. 小等一会 br文件 将会被解压到同目录下 同时 br文件 也会被删除

dat格式解包

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

所需环境: Python(官网)

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

2. 解包

  1. 将工具解压到 dat文件 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 python sdat2img.py transfer.list文件 dat文件 [输出img名] (示例: python sdat2img.py system.transfer.list system.new.dat system.img)
  4. 小等一会 dat文件 将会被解压 解压后的文件在同目录内

注意:[输出img名] 为可选项 不传入此参数解压得到的 img 名称默认为 system.img

3. vivo 分段dat 解包

  1. 将工具解压到 dat文件 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 type dat文件.* > dat文件 (示例: type system.new.dat.* > system.new.dat)
  4. 输入 python sdat2img.py transfer.list文件 dat文件 [输出img名] (示例: python sdat2img.py system.transfer.list system.new.dat system.img)
  5. 小等一会 dat文件 将会被解压 解压后的文件在同目录内

注意:[输出img名] 为可选项 不传入此参数解压得到的 img 名称默认为 system.img

img格式解包

特别注意

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

  1. ext4 格式 img 解压
  2. erofs 格式 img 解压
  3. boot/recovery类型 img 解压

1. ext4 格式解包

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

所需环境: Python(官网)

所需工具:

imgextractor - GitHub & ext4 - GitHub

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

2. 解包

  1. 将文件放置到 img文件 所在目录(imgextractor.py 和 ext4.py 均需要放置)
  2. 在该目录下打开 cmd 命令行
  3. 输入 python imgextractor.py img文件 输出目录 (示例: python imgextractor.py system.img system)
  4. 小等一会 img文件 将会被解压

2. erofs 格式解包

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

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

2. 解包

  1. 将工具内所有文件放置到 img文件 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 extract.erofs.exe -i img文件 -o 输出目录 (示例: extract.erofs.exe -i system.img -o system)
  4. 小等一会 img文件 将会被解压

3. boot/recovery类型 img 解压包

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

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

2. 解包

  1. 将工具放置到 img文件 所在目录
  2. 在该目录下打开 cmd 命令行
  3. 输入 magiskboot.exe unpack -h img文件 (示例: magiskboot.exe unpack -h boot.img)
  4. 小等一会 img文件 将会被解压