This document summarizes all (so far known) technical details about a non-standard SquashFS format (called AVM-BE below) used by AVM since Fritz!OS Labor 6.35.
-
AVM-BE format is a SquashFS4 based SquashFS format
-
instead of the little-endian data layout (the only layout supported by the original/unmodified code since SquashFS4) it uses the big-endian layout for most of the data stored in the SquashFS image (to be more precise for all file system related data)
-
the only data field stored in the little-endian format is the block length value at the beginning of each block
-
compression method is hardcoded to be XZ (aka LZMA2)
-
it is unknown if any compressor specific option could be set - all original AVM images seen so far have COMP_OPT flag unset
-
super-block field 'mkfs_time' contains (instead of the filesystem creation time) the same value as the super-block field 'bytes_used'
-
user id table is always stored uncompressed (TODO: needs more investigation, the current implementation ensures that it gets stored uncompressed, this behavior might however also be achieved by the original/non-modified code just because the size of the compressed data would be bigger than the size of the uncompressed one - see mksquashfs::mangle2 for details)
PS. The Freetz developer team is deeply grateful to the IPPF user PeterPawn for analyzing the AVM-BE format and providing the initial implementation of the mk-/unsquashfs utilities supporting it.