Extract and build Android OTA payload.bin files with lightning-fast parallel processing.
- Extract: Unpack partition images from payload.bin files
- Build: Create custom payload.bin from partition images
- Fast: Parallel processing with customizable workers
- Cross-platform: Linux, macOS, and Windows support
Install XZ Utils:
- macOS:
brew install xz
- Ubuntu/Debian:
sudo apt-get install xz-utils liblzma-dev
- RHEL/Fedora:
sudo dnf install xz-devel
- Windows: Download XZ Utils
Get the latest binary from Releases or build from source:
git clone https://github.com/jamshid-ds/android-payload-toolkit.git
cd android-payload-toolkit
go build -o android-payload-toolkit .
# Extract all partitions
./android-payload-toolkit payload.bin -o extracted/
# Extract specific partitions
./android-payload-toolkit payload.bin -p boot,system,vendor -o extracted/
# List partitions without extracting
./android-payload-toolkit payload.bin -l
# Auto-detect from directory
./android-payload-toolkit build -input extracted/ -output custom_payload.bin
# Specify partitions manually
./android-payload-toolkit build \
-partitions boot:boot.img,system:system.img,vendor:vendor.img \
-output custom_payload.bin
./android-payload-toolkit [options] payload.bin
Options:
-o, --output
: Output directory-p, --partitions
: Specific partitions to extract (comma-separated)-l, --list
: List partitions only-c, --concurrency
: Parallel workers (default: 4)
./android-payload-toolkit build [options]
Options:
-input
: Directory with .img files (auto-detect mode)-partitions
: Manual partition:image pairs-output
: Output file (default: payload.bin)
Use either
-input
OR-partitions
, not both
# Extract partitions
./android-payload-toolkit lineage.bin -o parts/
# Patch boot.img with Magisk
# ...
# Rebuild with modified boot
./android-payload-toolkit build -input parts/ -output modified.bin
./android-payload-toolkit build \
-partitions boot:rom1/boot.img,system:rom2/system.img,vendor:rom3/vendor.img \
-output custom.bin
For detailed usage and examples, see docs/USAGE.md
Requirements: Go 1.18+, XZ libraries
go mod download
go build -o android-payload-toolkit .
macOS users may need:
export CGO_CFLAGS="-I/opt/homebrew/opt/xz/include"
export CGO_LDFLAGS="-L/opt/homebrew/opt/xz/lib"
Apache License 2.0 - see LICENSE
- Based on Android Open Source Project update_engine
- Inspired by payload-dumper-go