powpack is a C++ library and CLI for inspecting, extracting, and repacking
Actions .fw, PowKiddy OTA update.zip, and Actions resource .res / .str
containers.
Powpack is heavily based on https://github.com/FoxExe/PowKiddy_fw (also GPL2) but in C++, without the python requirement. It is structured as a library so it can be used by other applications. powpack is just a thin cli around libpowpack.
Project structure:
- central reusable library
- lean CLI front-end
- Meson build
- gettext-ready localization layer
Current scope:
powpack l <archive>lists embedded entriespowpack i <archive>shows archive analysis and boot metadatapowpack x <archive>extracts embedded entriespowpack a <input_dir> <output.fw|update.zip|file.res|file.str>repacks an extracted container directory
Build:
meson setup build
meson compile -C buildExamples:
./build/powpack l ../firmware/x51.fw.community-ddr128-800x480-220825/atm7051_game_hdmi_ddr128_800480_025_047_047V2_HLCD0_V1.0_220825.fw
./build/powpack x ../firmware/x51.fw.community-ddr128-800x480-220825/atm7051_game_hdmi_ddr128_800480_025_047_047V2_HLCD0_V1.0_220825.fw
./build/powpack a ./my_firmware_UNPACKED ./rebuilt.fw
./build/powpack l ../firmware/x51.ota.official-pato-220825/update.zip
./build/powpack x ../firmware/x51.ota.official-pato-220825/update.zip
./build/powpack a ./update.zip_DATA ./update.zip
./build/powpack l ../firmware/x51.ota.official-pato-220825/update.zip_DATA/5.res.img
./build/powpack x ../firmware/x51.ota.official-pato-220825/update.zip_DATA/5.res.img
./build/powpack a ./5.res.img_UNPACKED ./5.res.imgFirmware extraction uses this output layout:
NAME.FILESYSTEM.bin
Examples:
MISC.FAT16.binSYSTEM.squashfs.binFW.FW.bin
For OTA files the extraction output matches the established partition naming:
RAW.1.uboot.bin0.misc.img1.recovery.img3.system.img5.res.img
OTA extraction also writes a small metadata sidecar:
.powpack-ota.meta
That stores the OTA version string so an unpacked tree can be repacked cleanly.
Resource extraction writes:
- exported entries such as
STR1.txt,PIC1.ppm, orPIC2.pam .powpack-resource.meta.powpack-blobs/
The metadata and blob cache let powpack preserve untouched entries byte-for-byte
while still allowing text and image edits before repacking.