Skip to content

Latest commit

 

History

History
23 lines (20 loc) · 1.48 KB

squashfs4-be.en.md

File metadata and controls

23 lines (20 loc) · 1.48 KB

SquashFS 4 (BE)

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.