Extract HP SoftPaq BIOS update packages on Linux and macOS — no Windows / Wine required.
Given a SoftPaq .exe from HP Support, this tool:
- Unwraps the SoftPaq CAB wrapper
- Detects nested update formats (AMI UCP / HP UCORE, Insyde, Phoenix TDK, plain CAB BIOS payloads)
- Decompresses EFI/Tiano-compressed BIOS modules
- Writes usable firmware images (typically
BIOS_XX.bin, Intel PCH flash images)
| Dependency | Purpose | Install |
|---|---|---|
| Python 3.10+ | Runtime | brew install python / distro packages |
cabextract or 7z |
SoftPaq CAB unwrap | brew install cabextract / apt install cabextract |
| TianoCompress | Decompress AMI/HP UCP BIOS modules | hp-bios-extractor build-deps |
git, make, C compiler |
Only to build TianoCompress | Xcode CLT / build-essential |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
# One-time: build TianoCompress into third_party/
hp-bios-extractor build-depsCheck helpers:
hp-bios-extractor deps# SoftPaq from HP (example in bin/)
hp-bios-extractor extract bin/sp152415.exe -o out/sp152415 -v
# Only keep decompressed BIOS images under out/.../bios/
hp-bios-extractor extract bin/sp152415.exe -o out/sp152415 --bios-onlyExample result from SoftPaq sp152415 (HP Notebook System BIOS Update):
BIOS images (4):
out/sp152415/bios/HP_BIOS_F.53_board-08600.bin
out/sp152415/bios/HP_BIOS_F.53_board-08601.bin
out/sp152415/bios/HP_BIOS_F.53_board-08603.bin
out/sp152415/bios/HP_BIOS_F.53_board-08604.bin
Names come from firmware metadata: BIOS version (F.53) and HP board/SSID ($BID08600, …).
You can also pass the inner update EXE directly (after a manual CAB unwrap).
Modern HP notebook SoftPaqs often look like:
spXXXXXX.exe SoftPaq PE wrapper + embedded Microsoft CAB
└─ 08600F53.exe AMI UCORE2 / UCP update package (@UAF …)
├─ HpBiosUpdate.efi / helpers
└─ BIOS_00.bin … EFI-compressed SPI/BIOS images (@R00, @R01, …)
Older SoftPaqs may expand to a BIOSUpdate folder with .bin payloads instead.
- Multiple
BIOS_XX.binfiles are normal (platform / SKU variants). Use the one that matches your board ID / SoftPaq notes. - This tool extracts firmware for analysis and recovery workflows. Flashing is out of scope — use HP’s supported update methods unless you know exactly what you are doing.
third_party/TianoCompressis gitignored; rebuild it on each machine withbuild-deps.- Nested AMI/HP UCP, Insyde, and Phoenix parsers are provided by BIOSUtilities.
MIT