Skip to content

FAT 2.0.1

Latest

Choose a tag to compare

@adi0x90 adi0x90 released this 26 Sep 05:11
14bb335

FAT 2.0.1

FAT 2.0.1 fixes extraction failures in nested firmware archives and older SquashFS images, and improves installation on Omarchy and Arch-based systems.
If your firmware stopped at extraction in 2.0.0 or FAT 1.x, this is the version to try again.

Firmware extraction

  • Native extraction follows ZIP, TAR, and gzip containers into embedded filesystems, including SquashFS 2, 3, and 4 with either byte order and zlib, LZMA, and XZ decoding. Legacy LZMA block layouts are supported too.
  • Carved images and empty directories no longer stop rootfs recovery attempts. Automatic extraction keeps fallback available when native recovery is incomplete.
  • Extraction manifests record each artifact's source, decoder outcome, limits, and recovery status, so you can see which parts succeeded and which still need attention.

Verification for #108 recovered root filesystems from all 11 tested firmware inputs, including the RAX30 image from #88, TL-WR940N from #58, and the attachment from #70. Across those inputs, 21,351 regular files and symlinks matched the reference extractions with no differences. Guest boot and network services still need separate testing for the open emulation reports.

Firmware containing names that differ only by case needs a case-sensitive output volume. On macOS, use a case-sensitive APFS volume or disk image. FAT reports a partial result on a filename collision instead of overwriting files.

Installer and tool fixes

  • The installer recognizes Omarchy and other distributions that declare ID_LIKE=arch. The Arch and Omarchy guide covers prerequisites and extraction checks.
  • Binwalk attempts that exit without scanning a file are retried up to twice within the original timeout. If scanning never starts, FAT reports the failure and preserves the failed attempts.
  • Existing healthy bootloader tmux sessions are reused with newer tmux versions that sanitize control characters in display formats.

These fixes were merged in #107.

Install and retry

Download the archive for your operating system and CPU, verify its adjacent SHA-256 checksum, and extract it. Keep the executable and share directory together; the runtime data must match FAT 2.0.1.

./fat --version
./fat data verify
./fat doctor
./fat extract ./firmware.bin --json

On Windows, use .\fat.exe instead of ./fat. For scripts, inspect recovery_status and rootfs: files_only and partial results can still exit successfully, so an exit code of zero alone does not confirm rootfs recovery.

Archives are available for macOS Apple Silicon and Intel, Linux x86-64 and ARM64, and Windows x86-64. Linux x86-64 requires glibc 2.35 or newer; Linux ARM64 requires glibc 2.39 or newer.

See the installation guide for source builds, runtime-data installation, and external tools. When following up on an issue, include the firmware version or download URL, its SHA-256, fat --version, and the new output so the result can be reproduced.