ubi-reader
Extract files from UBI and UBIFS images.
Decision gist · record as of 2026-08-14
Yes, if you work with embedded device firmware or NAND flash analysis. Low install friction, active maintenance, no known vulnerabilities, and a focused feature set for a specialized task. The copyleft license is a consideration if you plan to redistribute derivative work. Not relevant for general application development.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Creating special files (sockets, devices) requires root or sudo privileges.
- Low install friction with a pure-Python wheel and only three runtime dependencies (cryptography, lzallright, zstandard).
License · maintenance · safety
GNU GPL (copyleft) — Licensed under GNU GPL with copyleft treatment, meaning any derivative work or distribution must also be GPL-licensed. This is a strong copyleft obligation that affects downstream use and modification.
last release 2026-06-16 (59 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 110,266 downloads/mo, #12,475 on PyPI
Alternatives
Verify before relying
pip install ubi_reader
ubireader_extract_files path/to/nand_dump.bin
# Extracts to ./ubifs-root/ by default- Whether journal replay is planned or if uncommitted data loss is acceptable for your use case.
- Whether error correction for NAND bit errors is handled or if raw dumps need pre-processing.
- Performance characteristics on large NAND dumps or images.
What it is and what it does
UBI Reader is a Python tool for extracting and analyzing UBI (Unsorted Block Images) and UBIFS (UBI Filesystems) from NAND device dumps. It includes both a library for programmatic use and command-line scripts for common tasks like file extraction, directory listing, and image analysis. The package depends on cryptography, lzallright, and zstandard for compression and encryption handling.
The tool is designed for firmware extraction, forensics, and embedded device analysis. It searches for UBI/UBIFS data within a dump file and extracts the filesystem contents or generates configuration suitable for rebuilding images with mtd-utils. Known limitations include lack of journal replay (uncommitted data may be lost), potential NAND bit errors if not corrected upstream, and special file handling that may require elevated privileges.
Use it for
- Extract firmware files from embedded device NAND dumps for analysis or recovery.
- List and copy individual files from a UBIFS image without full extraction.
- Analyze UBI image structure and generate shell scripts and config files for recreating images.
- Debug corrupted or problematic UBI images using override parameters and block-level inspection.
- Forensic examination of flash storage from routers, IoT devices, or other embedded systems.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with embedded device firmware or NAND flash analysis.
Low install friction, active maintenance, no known vulnerabilities, and a focused feature set for a specialized task. The copyleft license is a consideration if you plan to redistribute derivative work. Not relevant for general application development.
Install
ubi-reader on PyPI
Before you install
Low install friction with a pure-Python wheel and only three runtime dependencies (cryptography, lzallright, zstandard). Active maintenance as of 59 days ago, supporting modern Python versions from 3.10 through 3.14.
Requires Python 3.10 or later. Creating special files (sockets, devices) requires root or sudo privileges.
License in practice
Licensed under GNU GPL with copyleft treatment, meaning any derivative work or distribution must also be GPL-licensed. This is a strong copyleft obligation that affects downstream use and modification.
Quickstart
pip install ubi_reader
ubireader_extract_files path/to/nand_dump.bin
# Extracts to ./ubifs-root/ by default
Verify before relying
- Whether journal replay is planned or if uncommitted data loss is acceptable for your use case.
- Whether error correction for NAND bit errors is handled or if raw dumps need pre-processing.
- Performance characteristics on large NAND dumps or images.
Package facts
| License | GNU GPL copyleft |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagescryptographylzallrightzstandard |
| Maintenance | Actively maintained 59 days since the last release |
| First released | |
| Downloads | 110,266 / month, #12,475 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: Other/Proprietary LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: ubi_reader-0.8.14-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “extract UBI UBIFS images”
- ubi-readerExtracts files and analyzes the structure of UBI and UBIFS filesystem…
- pytesseractPytesseract wraps Google's Tesseract-OCR engine to extract text from…
- docx2txtExtracts text, headers, footers, hyperlinks, and images from…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also littlefs-python · ipsw-parser · minidump · esp-coredump · micawber · azure-ai-vision-imageanalysis · uefi-firmware · container-inspector · pymupdf · psd-tools