payload-dumper-go is a command-line tool that extracts Android OTA payload files written in Go.
The tool solves the problem of extracting system images from Android over-the-air update packages. It handles both full OTA payloads and incremental delta OTA updates, applying deltas on top of base images to produce bit-exact output. The extraction process uses parallel decompression to achieve high speed, relying on the xz library for decompression rather than a pure Go implementation due to significant performance differences. The tool verifies operation data, source images, and final images using SHA256 checksums and exits with a non-zero code on failure. It can read directly from zip packages containing payload.bin without requiring temporary copies.
The tool suits developers and enthusiasts working with Android system images who need fast, reliable extraction of OTA payloads. It works as both a standalone command-line utility and as a Go library that can be imported into other projects. The primary limitation is lack of support for PUFFDIFF, ZUCCHINI, and LZ4DIFF delta operations, which typically affect system, product, and system_ext partitions; affected partitions can be skipped while extracting others. The tool requires xz to be installed on the system and performs best on SSDs rather than mechanical drives.
Development activity shows consistent maintenance with regular updates addressing bugs and adding features. The project accepts community contributions and responds to issues raised by users. The maintainer has invested effort in performance optimization, including detailed benchmarking and comparison of different implementation approaches. Documentation includes clear installation instructions for multiple platforms and practical examples of both standard and incremental OTA extraction workflows.