Skip to content

About

Android firmware dumper, rewritten in Python

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

dumpyara

PyPI version Codacy Badge

Requires Python 3.9 or greater

Requirements

Besides Python, the following tools must be available in PATH:

  • 7-zip (7zz) or p7zip (7z)
  • erofs-utils 1.8 or greater (fsck.erofs)
  • e2fsprogs (debugfs)
  • simg2img, from android-sdk-libsparse-utils or platform-utils, unless firmware_parsers is installed

erofs-utils older than 1.8 must not be used: fsck.erofs --extract silently drops holes in chunk-based files, producing truncated output while still exiting 0, so corrupt dumps are published without any error. This was fixed upstream in b063ea3, first released in 1.8. Distro packages are often far older than that, so check fsck.erofs -V rather than assuming.

Installation

pip install dumpyara

Instructions

python -m dumpyara <path to OTA file>

Supported formats

Step 1 - Archives

  • All the ones supported by shutil's extract_archive
  • Samsung's .tar.md5 archives
  • Nested archives
  • LG's .kdz archives

Step 2 - What's inside the archive

  • A-only OTAs (Brotli and/or sdat compressed)
  • A/B OTAs
  • Dynamic partitions (super.img)
  • payload.bin
  • Raw images (e.g. Xiaomi fastboot packages)
  • Sparse images
  • LZ4 images

Step 3 - Partition images

  • Android boot images
  • 7z supported archives/images
  • EROFS images using erofs-utils (1.8 or greater)
  • ext4 images using debugfs, which preserves symlinks that 7z rewrites

Credits

License

#
# SPDX-FileCopyrightText: Dumpyara Project
# SPDX-License-Identifier: GPL-3.0-or-later
#

About

Android firmware dumper, rewritten in Python

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages