Tool
UEFI Firmware Parser
Python library and uefi-firmware-parser command for identifying, parsing and extracting PC firmware images: UEFI firmware volumes, capsules, firmware file systems, files and sections, Intel PCH flash descriptors, Intel ME modules and Dell PFS update packages. An AutoParser picks the format, or a brute-force scan looks for volumes and other known objects inside an unidentified blob; results print as an object hierarchy or dump to files, with Tiano/EFI and LZMA sections decompressed by a bundled C extension. Helper scripts replace a section or file by GUID inside a volume, generate an FDF flash description from parsed volumes and output GUID labels for IDA scripts.
Requirements & limits
- Latest release at review: v1.16, published 2026-06-04 on GitHub and PyPI with abi3 wheels for Linux, Windows and macOS. The reviewed master commit, from 2026-10-12, is three commits ahead: it adds AMI capsule support and a safe-path utility for dumped files and drops the future dependency, so those changes are not yet released.
- Python 3.10+. A source install compiles the bundled efi_compressor C extension, which the README says needs the Python development headers and gcc; the package declares no other runtime dependencies. CI runs the unit tests on Python 3.12 on Ubuntu.
- Input is a firmware file the user supplies, such as a vendor BIOS/UEFI update or a flash dump. The README warns that not every vendor update parses and that some must first be decompressed or unpacked from the update mechanism, typically a PE executable; --test reports the detected type, -b searches a blob for volume headers and --superbrute checks every byte offset for any known object. It lists ASRock, Dell, Gigabyte, Intel, Lenovo, HP, MSI, VMware, Apple and Qualcomm updates as tested, without per-version results.
- GUID injection with fv_injector.py only replaces existing sections or files, with no addition or removal, and asks interactively which section to replace inside a firmware file. It parses containers and extracts their contents; analyzing the extracted modules needs a separate disassembler or decompiler. CI also parses a separately hosted samples repository, which this collection did not review.
- LICENSE carries MIT-style permission text and points to inline licenses in contributed work, while setup.py and the PyPI metadata declare BSD-3-Clause. The bundled Intel Tiano compression sources are BSD-2-Clause-Patent and the LZMA SDK files are public domain. Nothing was installed and no firmware was parsed.
About this entry
- Type
- Tool
- Category
- Firmware tools
- Relationship
- Foundation tool
- Targets
- Firmware
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.rst GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
- setup.py GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
- uefi_firmware/__init__.py GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
- bin/uefi-firmware-parser GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
- scripts/fv_injector.py GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
- .github/workflows/ci.yml GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
- LICENSE GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
- uefi_firmware/compression/Tiano/Decompress.c GitHub · theopolis/uefi-firmware-parser · Revision c4b8c64
- https://github.com/theopolis/uefi-firmware-parser/releases/tag/v1.16
- https://pypi.org/project/uefi_firmware/1.16/
More in Firmware and hardware
- ThinkPad IMX471: recovering camera tuning for Linux · Case study
- flipper-telink: replacement firmware for Tuya Zigbee remotes · Case study
- Supermodel: initial Real3D Pro-1000 image-generator emulation · Case study
- OpenDMCUFirm: a reimplemented Wii U DMCU display firmware · Case study
- reflecticon-224: running Lexicon 224 reverb firmware on emulated hardware · Case study
- TeddyCloud: a self-hosted replacement for the Toniebox cloud · Case study