• v3.0 c123639cdd

    UFS2Tool v3.0 Stable

    archiver-bot released this 2026-02-13 11:08:31 -06:00 | 8 commits to main since this release

    🗄️ UFS2Tool v3.0

    📟 New UFS Image Commands

    • rename
      • Rename a file or directory inside an UFS image

    🌍 New Languages

    • Svenska
    • Suomi
    • Polski
    • Tiếng Việt
    • Română
    • Українська
    • Čeština
    • ไทย

    🔧 Fixes

    • Critical Core Fixes:
      • UFS1: di_gen offset was wrong
      • UFS1: inode layout mismatch at offset 4
      • Superblock Sector Size not recovered on read
    • Other Core Fixes:
      • Ufs2Image.ReadFile: new byte[inode.Size] silently overflows for files >2GB (inode.Size is long, array index is int)
      • Ufs2Image.ReadBlockPointerAt: Only traversed direct + single-indirect blocks; returned 0 for double/triple indirect, breaking operations on large directories
      • Ufs2Image.AddDirectoryEntry: (dirSize - 1) / blockSize computes -1 when dirSize == 0, causing IndexOutOfRangeException
      • AlignedStream.Dispose: Flushed _deviceStream but never disposed it — file handle leak
      • Ufs2ImageCreator.MakeFsImage: Inode count used totalEntries + RootInode (+2) instead of +3 for reserved inodes 0, 1, root
      • Program.ParseGrowFsSize: Missing x product notation (e.g., 512x1024) that TryParseMakeFsSize already supported
    • CLI:
      • TryParseIntArg/TryParseLongArg/TryParseStringArg called PrintNewFsUsage() even when invoked from tunefs/makefs/growfs
    • GUI:
      • chmod Validation
      • Output Log: Missing log updates & possible crash
    • Windows Dokan Mounting:
      • MoveFile now delegates to Rename instead of returning NotImplemented
      • FindFiles function left timestamps uninitialized for special file types
    Downloads