LZFSE is a compression library introduced by Apple.
LZFSE is a Lempel-Ziv style data compression algorithm using Finite State Entropy coding. It targets similar compression rates at higher compression and decompression speed compared to deflate using zlib.
Github: https://github.com/lzfse/lzfse
Apple uses LZFSE compressing its ipa packages.
I downloaded an ipa directly from appstore, named like pre-thinned xxx .thinned.signed.dpkg.ipa, e.g. pre-thinned12345678.thinned.signed.dpkg.ipa
I tried to decompress this ipa, with unzip, 7-Zip on windows, many many other archiver management tools, all failed.
1 |
skipping: Payload/....... unsupported compression method 99 |
unsupported compression method 99
I integrated lzfse into unzip based on unzip-6.0.
Github: https://github.com/sskaje/unzip-lzfse
Steps:
1 Build and install lzfse
1 2 3 4 |
$ git clone https://github.com/lzfse/lzfse.git $ cd lzfse $ make $ sudo make install |
2 Build unzip-lzfse
1 2 3 4 5 |
$ git clone https://github.com/sskaje/unzip-lzfse $ git checkout lzfse $ cd unzip-lzfse $ export LZFSE_PATH=/usr/local $ make -f unix/Makefile all |
3 test
1 |
$ ./unzip -d test ../pre-thinned12345678.thinned.signed.dpkg.ipa |
Tested under macOS 10.12.6
Incoming search terms:
- unsupported compression method 99 unzip
- unsupported compression method 99
- lzfse decompression
- lzfse unzip
- pre thinned ipa
- skipping: /sv/uid dat unsupported compression method 99
- zip LZFSE