Tool

payload-dumper-go

Go command-line tool and library that extracts partition images from Android A/B OTA payloads, reading either a raw payload.bin or the OTA zip that contains it in place. It decompresses operations in parallel, can list partitions or dump only selected ones, and verifies operation data, source images and final images with SHA-256, exiting non-zero on any mismatch. Incremental (delta) payloads are applied onto previously extracted base images, and it regenerates the dm-verity hash tree and FEC parity that delta payloads omit, so the README reports bit-exact output.

Targets
Firmware
Category
Firmware tools
Relationship
Foundation tool
Sources reviewed

Requirements & limits

  • Latest release at review: 2.1.0, published 2026-09-23 and identical to the reviewed main commit, with prebuilt binaries for Linux (amd64, amd64 AVX2, arm64, armv7), macOS (amd64, amd64 AVX2, arm64) and Windows (amd64, amd64 AVX2, arm64) and a checksum file; the README also lists a Homebrew package. The changelog says macOS builds need macOS 13 or later since 2.0.2 moved to Go 1.27. The README requires xz on the system because decompression uses the C xz library through cgo; the Dockerfile builds with CGO and liblzma-dev.
  • Input is an OTA zip or payload.bin the analyst supplies; an incremental OTA also needs the base images extracted from the matching earlier full OTA, passed with -old. The README says PUFFDIFF, ZUCCHINI and LZ4DIFF delta operations are not supported yet, so affected partitions, usually system, product or system_ext, fail with an error while the rest can be extracted with -p; images written with -no-fec skip FEC and final verification and must not be flashed.
  • The repository commits no OTA images: its tests build synthetic payloads, and two opt-in tests read a real payload path from environment variables (E2E_PAYLOAD, DBG_PAYLOAD). The payload format follows AOSP's update_metadata.proto. Apache-2.0. No payloads were extracted.

About this entry

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

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

More in Firmware and hardware

All 65 entries in Firmware and hardware