Install & Compatibility
Where this runs
tested against v1.16 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.086s · 23.1MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 2.1s · import 0.092s · 24MB
21MB installed
● package 21MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
AutoParser
✓ from uefi_firmware import AutoParser
✗ from uefi_firmware.parser import AutoParser
AutoParser is a top-level class, not in a submodule.
FirmwareVolume
✓ from uefi_firmware.volume import FirmwareVolume
Common usage for low-level access.
Parses a firmware file using AutoParser and lists all recognized objects.
import os
from uefi_firmware import AutoParser
# Path to a UEFI firmware image (e.g., a BIOS update file)
firmware_path = os.environ.get('FIRMWARE_PATH', 'test.rom')
with open(firmware_path, 'rb') as f:
data = f.read()
parser = AutoParser(data)
print(f"Parsed {len(parser.objects)} objects")
for obj in parser.objects:
print(type(obj).__name__)
uefi-firmware --version
Errors
Common errors & fixes
ImportError: No module named 'uefi_firmware.constructs'
Trying to import constructs submodule that doesn't exist in modern versions.
fixUse 'from construct import Container, Struct' etc., and install construct if needed.
uefi_firmware.AutoParser' object has no attribute 'objects'
AutoParser returns a list stored as 'result' attribute, not 'objects'.
fixAccess parser.result instead of parser.objects.
Upgrade
Version history
1.16latest on PyPI · released Jun 4, 2026
Audit
Dependencies
constructoptionalUsed for binary structure definitions and parsing.
pycryptodomeoptionalUsed for cryptographic operations (e.g., capsule authentication).