Import additional CMS headers and update docs
[firmware_extractor.git] / README
1 This fwlzw (de)compressor originally came from the FFMPEG project and was modified by Broadcom for
2 (de)compressing device configuration files.
3
4 In the Zyxel/MitraStar/Broadcom source-code packages provided by those companies there is a tool
5 that runs on the host for compression only:
6
7 hostTools/CompressConfig
8
9 That tool includes the FFMPEG library code but does NOT provide its own source-code, as it should
10 since the files are licensed on the terms of the GNU GPL.
11
12 I've copied the files from the Zyxel source-code distribution as the basis of this host-based executable tool:
13
14  cp Zyxel/source/userspace/public/libs/cms_util/lzw*.c .
15  cp Zyxel/source/userspace/public/include/cms_lzw.h .
16  cp userspace/public/include/linux/os_defs.h .
17  cp userspace/public/include/cms_version.h .
18
19 With this tool it is possible to extract the payload from a firmware file. It is typically the second
20 payload image in the file - the first being the CFE/Kernel/root file-system combination.
21
22 My fwheader tool can report the location and size of the payloads in the firmware file. Those values can
23 then be used to extract the payload to a file, which can be passed to this fwlzw tool.