Files
unixtract/README.md
T

210 lines
8.6 KiB
Markdown
Raw Normal View History

2025-12-26 22:46:36 +01:00
# unixtract
Extractor for various file formats.
2026-01-12 21:43:23 +01:00
This is a tool that is able to extract the contents of various firmware package formats, mostly from TVs and AV devices.
2026-02-25 13:28:46 +01:00
Built in Rust, and made to not depend on any external dependancies, only Rust crates. This way it can work on Windows, Linux and MacOS and even Android.
2026-01-12 21:43:23 +01:00
Please note that this project is still under active development and errors may occur. Feel free to make an issue in that case, or if you have any feature request.
**PLEASE NOTE** - this program is NOT, and will never be designed for re-packing the extracted files!
2026-01-12 21:43:23 +01:00
# Installation
2026-02-25 13:28:46 +01:00
You can download the latest auto build for Windows and Linux x86-64 from [here](https://nightly.link/theubusu/unixtract/workflows/rust/main).
Or, build from source, by downloading the code or cloning the respository and running `cargo build --release`. The binary will be saved in `target/release`.
2025-12-26 22:46:36 +01:00
# Usage
2026-02-18 16:56:32 +01:00
`unixtract [OPTIONS] <INPUT_TARGET> [OUTPUT_FOLDER]`
Arguments:
2025-12-26 22:46:36 +01:00
`<INPUT_TARGET>` - The target to analyze/extract.
`[OUTPUT_FOLDER]` - Folder to save extracted files to.
If an output folder is not provided, extracted files will be saved in folder `_<INPUT_TARGET>`.
2026-02-18 16:56:32 +01:00
Options:
`-o, --options <OPTIONS>` - Format specific or global(for all formats that implement it) options, see the list below for format specific options. You can use this multiple times to activate multiple options.
## Global options
`dump_dec_hdrs` - For formats with an encrypted header - dump the decrypted header(s).
2025-12-26 22:46:36 +01:00
2026-01-12 21:43:23 +01:00
# Supported formats
## Amlogic burning image
**Used in:** Android TVs and Boxes
**Notes:** V1 format is not supported because of the lack of sample file.
**Thanks to:** https://github.com/7Ji/ampack
2026-01-12 21:43:23 +01:00
## Android OTA payload.bin
**Used in:** Android devices, smartphones, TVs
**Notes:** Some compression methods may not be supported.
**Thanks to:** https://android.googlesource.com/platform/system/update_engine/+/HEAD/update_metadata.proto
## BDL
**Used in:** Enterprise HP Printers
**Notes:** None, all files should be supported
2026-04-09 16:28:49 +02:00
## CD5
**Used in:** Some Samsung TV tuners, and possibly other Irdeto(?)-based tuners
**Notes:** Decryption is not supported.
2026-01-12 21:43:23 +01:00
## EPK v1
**Used in:** LG TVs before ~2010
**Notes:** None, all files should be supported
**Thanks to:** https://github.com/openlgtv/epk2extract
## EPK v2
**Used in:** LG TVs since ~2010
**Notes:** **Depends on keys** - see keys.rs (most common keys should be included)
**Thanks to:** https://github.com/openlgtv/epk2extract
**Options:**
※ Support `dump_dec_hdrs` option
2026-01-12 21:43:23 +01:00
## EPK v3
**Used in:** LG webOS-based TVs
**Notes:** **Depends on keys** - see keys.rs
**Thanks to:** https://github.com/openlgtv/epk2extract
**Options:**
※ Support `dump_dec_hdrs` option
2026-01-12 21:43:23 +01:00
2026-02-20 21:05:51 +01:00
## Funai BDP
**Used in:** Funai & Funai-made Philips Blu-Ray player/HTS (USA market)
**Notes:** N/A
2026-01-12 21:43:23 +01:00
## Funai UPG
**Used in:** Some Funai TVs
**Notes:** **Depends on keys** - see keys.rs.
## Funai UPG PHL
**Used in:** Funai & Funai-made Philips TVs (USA market)
**Notes:** **Depends on keys** - see keys.rs (most common keys should be included).
2026-01-12 21:43:23 +01:00
2026-04-27 18:37:03 +02:00
## GX DVB
**Used in:** Cheap NationalChip GX-based DVB tuners
**Notes:** None, all files should be supported
2026-01-12 21:43:23 +01:00
## INVINCIBLE_IMAGE
**Used in:** LG Broadcom-based Blu-Ray players
2026-04-29 16:28:21 +02:00
**Notes:** Key ID 1 (<2010) is not supported.
2026-04-28 18:41:49 +02:00
Tip: if you have split ROM (.ROM-00 and .ROM-01), extract both into the same folder so they get combined.
2026-01-12 21:43:23 +01:00
## MSD 1.0
**Used in:** Samsung TVs 2013-2015
**Notes:** **Depends on keys** - see keys.rs
**Thanks to:** https://github.com/bugficks/msddecrypt
2026-02-18 16:56:32 +01:00
**Options:**
`msd10:save_cmac` - Save CMAC data for files that is skipped by default.
`msd:print_ouith` - Prints the entire parsed OUITH header.
※ Support `dump_dec_hdrs` option
2026-01-12 21:43:23 +01:00
## MSD 1.1
**Used in:** Samsung TVs 2016+
**Notes:** **Depends on keys** - see keys.rs (keys 2015-2018, 2020 included)
2026-01-12 21:43:23 +01:00
**Thanks to:** https://github.com/bugficks/msddecrypt
**Options:**
`msd:print_ouith` - Prints the entire parsed OUITH header.
※ Support `dump_dec_hdrs` option
2026-01-12 21:43:23 +01:00
## MStar upgrade bin
**Used in:** Many MStar-based TVs (Hisense, Toshiba...)
**Notes:** All files should be supported, includes lzop, lz4, lzma, sparse_write support
**Options:**
※ Support `dump_dec_hdrs` option (will save the script)
2026-01-12 21:43:23 +01:00
## MediaTek BDP
**Used in:** Many MediaTek-based Blu-Ray players (LG, Samsung, Philips, Panasonic...)
**Notes:** Some older files may fail to extract
## MediaTek PKG (New)
**Used in:** Newer MediaTek-based TVs (TCL, Hisense, Sony, Philips, CVT...)
**Notes:** **Depends on keys** - see keys.rs (Keys for Philips and Sony included)
**Options:**
`mtk_pkg:no_del_comp` - Don't delete LZHS compressed partition file after decompressing.
※ Support `dump_dec_hdrs` option
2026-01-12 21:43:23 +01:00
## MediaTek PKG (Old)
**Used in:** Older MediaTek-based TVs (Philips, Sony, Hisense...)
**Notes:** All files should be supported, decryption + decompression
**Options:**
`mtk_pkg:no_del_comp` - Don't delete LZHS compressed partition file after decompressing.
※ Support `dump_dec_hdrs` option
2026-01-12 21:43:23 +01:00
## MediaTek PKG
**Used in:** MediaTek-based TVs (Sony, Philips, Panasonic, Sharp...)
**Notes:** All files should be supported, decryption + decompression, however some Philips files use custom keys - most are included some could be missing
**Thanks to:** https://github.com/openlgtv/epk2extract
**Options:**
`mtk_pkg:no_del_comp` - Don't delete LZHS compressed partition file after decompressing.
※ Support `dump_dec_hdrs` option
2026-01-12 21:43:23 +01:00
## Novatek PKG (NFWB)
**Used in:** Some older Novatek-based TVs (LG, Philips)
**Notes:** None, all files should be supported.
## Novatek TIMG
**Used in:** Newer Novatek-based TVs (Philips(TPVision), Hisense, TCL...)
2026-05-01 21:38:35 +02:00
**Notes:** None, all files should be supported.
## Onkyo
**Used in:** Onkyo AVRs and other AV devices
**Notes:** Newer files seem to use a different encryption and are not (yet) supported.
**Thanks to:** http://divideoverflow.com/2014/04/decrypting-onkyo-firmware-files/
**Options:**
※ Support `dump_dec_hdrs` option
2026-01-12 21:43:23 +01:00
## Panasonic Blu-Ray (PANA_DVD.FRM, PANA_ESD.FRM, PANAEUSB.FRM)
**Used in:** Panasonic Blu-Ray Players and Recorders
2026-02-19 21:29:34 +01:00
**Notes:** **Depends on keys** - see keys.rs (Included keys should work for 99% of players released in and before 2014, and some released in 2018), Note that there is currently an issue with MAIN in some very ancient files not extracting correctly.
2026-02-18 18:03:52 +01:00
**Options:**
`pana_dvd:split_main` - Automatically split the MAIN module into seperate partitions.
※ Support `dump_dec_hdrs` option
2026-01-12 21:43:23 +01:00
## Philips UPG (Autorun.upg, 2SWU3TXV)
**Used in:** Philips pre-TPVision TVs 200?-2013
**Notes:** **Depends on keys** - see keys.rs
**Thanks to:** https://github.com/frederic/pflupg-tool
## PUP
**Used in:** Sony PlayStation 4/5
**Notes:** File has to be decrypted.
**Thanks to:** https://github.com/Zer0xFF/ps4-pup-unpacker
## Roku
**Used in:** Roku TV's/players
**Notes:** The contents of the update file can be extracted, but some firmware images contained inside are additionally encrypted, and they cannot be decrypted as of now.
## RUF
**Used in:** Samsung Broadcom-based Blu-Ray players
**Notes:** **Depends on keys** - see keys.rs
## RVP/MVP
**Used in:** Sharp Blu-Ray players/recorders
**Notes:** Only the older types of files are supported (XOR-encrypted)
## Samsung (Folder with ***.img.sec)
**Used in:** Samsung TVs pre 2013
**Notes:** **Depends on keys** - see keys.rs
**Thanks to:** https://github.com/george-hopkins/samygo-patcher
2026-04-08 18:34:22 +02:00
## SDBoot
**Used in:** Panasonic TVs SD boot
**Notes:** There is only one known sample, so support may vary.
**Base:** https://github.com/theubusu/sddl_dec
2026-01-12 21:43:23 +01:00
## SDDL.SEC
**Used in:** Panasonic TVs
2026-04-08 18:34:22 +02:00
**Notes:** None, all files should be supported.
2026-02-18 16:56:32 +01:00
**Options:**
2026-02-18 18:39:44 +01:00
`sddl_sec:save_extra` - Save SDIT.FDI and .TXT files that are not extracted by default.
`sddl_sec:split_peaks` - Split PEAKS module into partitions (only on older files). This will also automatically decompress compressed partitions.
2026-04-08 18:34:22 +02:00
`sddl_sec:no_decomp_peaks` - Do not automatically decompress partitions when splitting PEAKS with above option.
**Base:** https://github.com/theubusu/sddl_dec
## SDImage (SDImage.bin)
**Used in:** Some 2010 USA Panasonic TVs
**Notes:** Decryption is not yet supported.
2026-01-12 21:43:23 +01:00
## SLP
**Used in:** Samsung Tizen-based NX series cameras
**Notes:** None, all files should be supported.
## Sony BDP
**Used in:** Sony Blu-Ray players
**Notes:** Only platforms up to MSB18 are supported.
**Thanks to:** http://malcolmstagg.com/bdp/s390-firmware.html
# License
2026-02-25 13:28:46 +01:00
Licensed under GNU GPL v3.