Skip to main content

unsuper

The fastest Android super.img dumper, made in Python.

GitHub Release GitHub Downloads (all assets, all releases) GitHub Actions Workflow Status

Features

  • Direct sparse streaming - Streams partitions directly from sparse images without writing temporary unsparse files to disk
  • Zero dependencies - Built entirely with standard library Python, no external packages required
  • Smart extraction - Automatically skips empty partitions and merges contiguous extents
  • Selective usage - Extract specific partitions, list partition layouts, or unsparse the full image

Installation

Directly running the script

Download the script, or clone into the repository if you want to contribute / fork.

Download and install Python (3.6 and later) and add it to PATH.

Follow Usage. You'll need to type "python" before calling the script, the directions don't include that for simplicity.

Using pip

Simply run pip install unsuper to install the latest version globally.

Executables

If you don't want to install Python, download and use the latest executable binary for your operating system from the releases page.

Speed

Extraction streams directly from sparse chunks to partition files in a single pass without allocating temporary images on storage.

Performance depends primarily on drive write throughput and thread allocation. Benchmark metrics will be published once standardized comparative testing against lpunpack is finalized.

Usage

unsuper's usage is straightforward: state the path to your super.img and start. If no output directory is stated, unsuper will create an "extracted_partitions" folder in the current directory and use it as default.

Extra arguments come AFTER the positional arguments.

positional arguments:
  super_image           Path to super.img file
  output_dir            Output directory for extracted partitions (default: extracted_partitions)

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -p, --partitions PARTITIONS [PARTITIONS ...]
                        Specific partition names to extract (vendor, product etc.) (default: extract all)
  -j, --jobs JOBS       Number of parallel extraction threads (default: 4)
  -q, --quiet           Suppress progress output
  --list                List available partitions and exit
  --temp-dir TEMP_DIR   Directory for temporary unsparse file if --unsparse is used (default: system temp directory)
  --unsparse            Unsparse image and save to output directory

For example, if you want to extract the system_a partition using 6 threads:

unsuper.py /path/to/super.img /output_path --partitions system_a --jobs 6

And so on.

unsuper can also simply unsparse an image and save it to a specified directory:

unsuper.py /path/to/super.img /output_path --unsparse

Or list all available partitions and exit:

unsuper.py /path/to/super.img --list

Notes

If the --list argument is used with --partitions, it will calculate the specified partitions' sizes and exit.

If the --unsparse argument is used along with --partitions or --list, the unsparse image will be saved to the output directory and used for extraction.

Extras

Enjoy my work? Please consider a small donation!

yellow-button

Metadata

Release files for unsuper 3.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unsuper 3.0.1
File Size Uploaded Provenance Actions
unsuper-3.0.1.tar.gz 12.1 kB Without provenance Details for unsuper-3.0.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for unsuper 3.0.1
File Interpreter ABI Platform Actions
unsuper-3.0.1-py3-none-any.whl Python 3 none any Details for unsuper-3.0.1-py3-none-any.whl

Total release size: 24.5 kB

Release files / unsuper-3.0.1.tar.gz

Download URL unsuper-3.0.1.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
89848bc7ec6d42ffab472d876e5ce3bb394e54fe65efd1c136627f6e4d96b934
BLAKE2b-256 checksum
How to use checksums
3747d27047305443007eb6b75b707a4a3fd613dacfef5d30ed064219a21fdaa0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.1

Release files / unsuper-3.0.1-py3-none-any.whl

Download URL unsuper-3.0.1-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9976044c652e1ad621dbc54ba9ffa37c11e4900d77ca4294062ddc51bf325738
BLAKE2b-256 checksum
How to use checksums
b9f6b41e4faf49315fa88534b1e0c7908a23728f7a64ba054d0e272b94d45136
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.15.1

Security for unsuper 3.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

3.0.1 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page