工具

payload-dumper-go Android OTA 载荷提取工具

用 Go 编写的命令行工具和库,可从 Android A/B OTA 载荷中提取分区镜像,既可读取原始 payload.bin,也可直接就地读取包含它的 OTA zip 包。它并行解压各项操作,可列出分区或只导出选定分区,并用 SHA-256 校验操作数据、源镜像和最终镜像,任何不一致都会以非零退出码结束。增量(差分)载荷会应用在先前提取的基础镜像之上,并重新生成差分载荷省略的 dm-verity 哈希树和 FEC 校验数据,因此 README 称输出可做到逐位一致。

目标
固件
类别
固件工具
关联
基础工具
来源复核于

使用条件与局限

  • 审阅时最新版本为 2.1.0,发布于 2026-09-23,与所审阅的 main 提交相同,提供 Linux(amd64、amd64 AVX2、arm64、armv7)、macOS(amd64、amd64 AVX2、arm64)和 Windows(amd64、amd64 AVX2、arm64)预构建二进制及校验和文件;README 还列出了 Homebrew 软件包。更新日志称自 2.0.2 改用 Go 1.27 起,macOS 版本需要 macOS 13 或更高版本。README 要求系统安装 xz,因为解压通过 cgo 调用 C 版 xz 库;Dockerfile 启用 CGO 并安装 liblzma-dev 进行构建。
  • 输入为分析者自行提供的 OTA zip 包或 payload.bin;增量 OTA 还需要从对应的前一版完整 OTA 中提取出的基础镜像,通过 -old 传入。README 称目前尚不支持 PUFFDIFF、ZUCCHINI 和 LZ4DIFF 差分操作,受影响的分区(通常是 system、product 或 system_ext)会报错失败,其余分区可用 -p 提取;使用 -no-fec 生成的镜像跳过了 FEC 和最终校验,不得刷入设备。
  • 仓库不含任何 OTA 镜像:测试使用合成的载荷,另有两个需手动启用的测试通过环境变量(E2E_PAYLOAD、DBG_PAYLOAD)读取真实载荷路径。载荷格式依据 AOSP 的 update_metadata.proto。采用 Apache-2.0 许可。本次未提取任何载荷。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · ssut/payload-dumper-go · 修订 c3a50ba
  2. README.md#L11-L25 GitHub · ssut/payload-dumper-go · 修订 c3a50ba
  3. README.md#L64-L102 GitHub · ssut/payload-dumper-go · 修订 c3a50ba
  4. CHANGELOG.md GitHub · ssut/payload-dumper-go · 修订 c3a50ba
  5. go.mod GitHub · ssut/payload-dumper-go · 修订 c3a50ba
  6. Dockerfile GitHub · ssut/payload-dumper-go · 修订 c3a50ba
  7. payload/payload_test.go GitHub · ssut/payload-dumper-go · 修订 c3a50ba
  8. payload/e2e_real_test.go GitHub · ssut/payload-dumper-go · 修订 c3a50ba
  9. LICENSE GitHub · ssut/payload-dumper-go · 修订 c3a50ba
  10. https://github.com/ssut/payload-dumper-go/releases/tag/2.1.0

同分区更多条目:固件与硬件

固件与硬件分区全部 65 项资源