- Joined
- Jul 2, 2022
- Messages
- 368
- Reaction score
- 351
- Points
- 63
SWFL Extractor Tool - convert files to bin
It works with SWFL, BTLD, FLSL files from the psdzdata/swe/.
Maybe some of you had a look over the swfl_0000uuuu.bin.uuu_uuu_uuu files and saw that some of them use a compression method. It can also be confirmed by checking the corresponding swfl_0000uuuu.xml.uuu_uuu_uuu that some segments are marked as <FLASH-SEGMENT COMPRESSION-STATUS="COMPRESSED"> and some are <FLASH-SEGMENT COMPRESSION-STATUS="UNCOMPRESSED">.
BMW is actually using NRV algorithm for the compressed sections.
Python script to parse the .xml, extract binary blocks from corresponding .bin and call the unucl extractor app which is the open source implementation of the NRV compression algorithm and reassemble the final binary.
Windows CMD or Linux terminal usage example:
! Python is required to be installed on your machine !
Credits: bogdantogo
It works with SWFL, BTLD, FLSL files from the psdzdata/swe/.
Maybe some of you had a look over the swfl_0000uuuu.bin.uuu_uuu_uuu files and saw that some of them use a compression method. It can also be confirmed by checking the corresponding swfl_0000uuuu.xml.uuu_uuu_uuu that some segments are marked as <FLASH-SEGMENT COMPRESSION-STATUS="COMPRESSED"> and some are <FLASH-SEGMENT COMPRESSION-STATUS="UNCOMPRESSED">.
BMW is actually using NRV algorithm for the compressed sections.
Python script to parse the .xml, extract binary blocks from corresponding .bin and call the unucl extractor app which is the open source implementation of the NRV compression algorithm and reassemble the final binary.
Windows CMD or Linux terminal usage example:
python extract.py -i swfl_00004a5a.bin.010_006_040 -x swfl_00004a5a.xml.010_006_040
! Python is required to be installed on your machine !
Credits: bogdantogo