Skip to content

Latest commit

 

History

History
69 lines (47 loc) · 1.58 KB

File metadata and controls

69 lines (47 loc) · 1.58 KB

payxt

Modern Android OTA payload.bin extractor in Python 3.12+.

Screenshots

List Partitions

List Partitions

View Manifest

View Manifest

Extract Partitions

Extract Partitions

Verify Hashes

Verify Hashes

Features

  • High Performance: Parallel extraction, streaming IO, memory-efficient.
  • Protobuf Powered: Uses AOSP DeltaArchiveManifest.
  • Streaming Support: Local files, ZIP archives, and HTTPS URLs (via Range requests).
  • Compression: Supports REPLACE, REPLACE_BZ, REPLACE_XZ, REPLACE_ZSTD.
  • Verification: SHA256 integrity checks.
  • Modern CLI: Beautiful UI with rich and typer.

Installation

Clone the repository

git clone https://github.com/programmersd21/payxt.git
cd payxt

Install from source

pip install .

Or install directly from GitHub

pip install git+https://github.com/programmersd21/payxt.git

Usage

# Extract all partitions
payxt extract payload.bin

# Extract selected partitions from a URL
payxt extract https://example.com/ota.zip --partitions boot,vendor

# List partitions
payxt list payload.bin

Architecture

payxt follows a modular architecture inspired by AOSP update_engine:

  • core/: Payload header and manifest parsing.
  • operations/: Strategy-based handlers for different installation operations.
  • streaming/: Abstracted IO for files, ZIPs, and network.
  • protobuf/: Generated bindings for Android OTA metadata.