Analyze an exFAT image #9

Closed
opened 2026-10-11 19:10:40 +00:00 by phg · 1 comment
Owner

Parent

IODD Tool specification

What to build

Open an exFAT image through the same native analysis workflow and obtain a complete, independently checked allocation snapshot.

Acceptance criteria

  • The existing image selector and public Analyze operation accept supported exFAT fixtures with the same statistics and file-table behavior.
  • Chained and NoFatChain files produce accurate complete extents and allocation ownership using the live entry set and bitmap.
  • DataLength and ValidDataLength, directory chains, and entry-set checksums are respected in reported analysis.
  • Bitmap/chain inconsistencies, invalid checksums, unsupported variants, and out-of-bounds metadata are diagnosed according to the target contract.
  • Independent manifests cover fragmented bitmap storage and entries spanning sector/cluster boundaries under the agreed geometry matrix.
  • Hidden/nested/long/Unicode names and large-file range coverage are tested through the same operation API without writing the input image.
  • FAT32 analysis remains verifiable through its existing public behavior.

Blocked by

Validation contract

Completion requires the applicable independently checked software evidence in Set validation gates and the implementation handoff. A closed policy decision does not establish that implementation tests have passed. Use disposable images/virtual volumes and controlled faults; no hardware-trial or performance gate applies.

Scope

This ticket belongs to the later implementation effort. All planning decisions are resolved; current work covers tracker and documentation updates. The parent specification indexes the authoritative product and software-validation contracts. Forgejo governs live updates; retained local files record the handoff.

## Parent [IODD Tool specification](https://git.s1q.dev/phg/iodd-tool/issues/7) ## What to build Open an exFAT image through the same native analysis workflow and obtain a complete, independently checked allocation snapshot. ## Acceptance criteria - [ ] The existing image selector and public Analyze operation accept supported exFAT fixtures with the same statistics and file-table behavior. - [ ] Chained and NoFatChain files produce accurate complete extents and allocation ownership using the live entry set and bitmap. - [ ] DataLength and ValidDataLength, directory chains, and entry-set checksums are respected in reported analysis. - [ ] Bitmap/chain inconsistencies, invalid checksums, unsupported variants, and out-of-bounds metadata are diagnosed according to the target contract. - [ ] Independent manifests cover fragmented bitmap storage and entries spanning sector/cluster boundaries under the agreed geometry matrix. - [ ] Hidden/nested/long/Unicode names and large-file range coverage are tested through the same operation API without writing the input image. - [ ] FAT32 analysis remains verifiable through its existing public behavior. ## Blocked by - [Analyze a FAT32 image](https://git.s1q.dev/phg/iodd-tool/issues/8) ## Validation contract Completion requires the applicable independently checked software evidence in [Set validation gates and the implementation handoff](https://git.s1q.dev/phg/iodd-tool/issues/6). A closed policy decision does not establish that implementation tests have passed. Use disposable images/virtual volumes and controlled faults; no hardware-trial or performance gate applies. ## Scope This ticket belongs to the later implementation effort. All planning decisions are resolved; current work covers tracker and documentation updates. The parent specification indexes the authoritative product and software-validation contracts. Forgejo governs live updates; retained local files record the handoff.
phg self-assigned this 2026-10-13 09:45:30 +00:00
Author
Owner

Resolution — ordinary exFAT image analysis implemented

Implemented on implement/iodd-tool-spec-7, implementation 23c10f9, merge 2606516. Integrated map and native assessment evidence is included through 904dd22.

The public analysis API handles ordinary exFAT bitmap ownership, chained and NoFatChain streams, system allocations, complete spanning entry sets, Unicode paths and ValidDataLength zero semantics. Diagnostics prevent incomplete/unsupported/malformed/stale results from establishing mutation eligibility. File reads and complete directory-slot/parent locators support the later mutation slices.

Validation: all62 accepted filesystem-sector/cluster pairs pass independent Swift/Python observations. The49-test integration suite passes with Xcode27.0/27A266a and Swift6.4, including FAT32 regressions, exFAT map projection and footer reads beyond ValidDataLength. The arm64 release build and plist validation pass. Independent native fsck_exfat -n verifies23 cases, including all17 512-byte-filesystem-sector pairs;45 larger-sector attachments are explicitly unqualified because the virtual driver exposes512-byte blocks, with zero other failures. Before/after image hashes agree. Native macOS26.6.2/25G83 table/map/assessment checks exercise complete fixedVHD and zero-tail malformed-footer exFAT images.

Analysis corpus and exact qualification results, integrated native evidence. Full device/layout lifecycle and baseline/current-stable distribution qualification remain the later gates; no physical-device evidence is claimed.

## Resolution — ordinary exFAT image analysis implemented Implemented on [implement/iodd-tool-spec-7](https://git.s1q.dev/phg/iodd-tool/src/branch/implement/iodd-tool-spec-7), implementation [23c10f9](https://git.s1q.dev/phg/iodd-tool/commit/23c10f9), merge [2606516](https://git.s1q.dev/phg/iodd-tool/commit/2606516a08cd71a79cf25ccb717b9b0e4cf67a52). Integrated map and native assessment evidence is included through [904dd22](https://git.s1q.dev/phg/iodd-tool/commit/904dd2267443afcc6391e92b58b3e70ae98a482c). The public analysis API handles ordinary exFAT bitmap ownership, chained and NoFatChain streams, system allocations, complete spanning entry sets, Unicode paths and ValidDataLength zero semantics. Diagnostics prevent incomplete/unsupported/malformed/stale results from establishing mutation eligibility. File reads and complete directory-slot/parent locators support the later mutation slices. Validation: all62 accepted filesystem-sector/cluster pairs pass independent Swift/Python observations. The49-test integration suite passes with Xcode27.0/27A266a and Swift6.4, including FAT32 regressions, exFAT map projection and footer reads beyond ValidDataLength. The arm64 release build and plist validation pass. Independent native fsck_exfat -n verifies23 cases, including all17 512-byte-filesystem-sector pairs;45 larger-sector attachments are explicitly unqualified because the virtual driver exposes512-byte blocks, with zero other failures. Before/after image hashes agree. Native macOS26.6.2/25G83 table/map/assessment checks exercise complete fixedVHD and zero-tail malformed-footer exFAT images. [Analysis corpus and exact qualification results](https://git.s1q.dev/phg/iodd-tool/src/commit/904dd2267443afcc6391e92b58b3e70ae98a482c/docs/validation/exfat-analysis.md), [integrated native evidence](https://git.s1q.dev/phg/iodd-tool/src/commit/904dd2267443afcc6391e92b58b3e70ae98a482c/docs/validation/image-eligibility.md). Full device/layout lifecycle and baseline/current-stable distribution qualification remain the later gates; no physical-device evidence is claimed.
phg closed this issue 2026-10-13 10:42:20 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
phg/iodd-tool#9
No description provided.