Discover and analyze external host volumes #20
Labels
No labels
needs-info
needs-triage
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
phg/iodd-tool#20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
IODD Tool specification
What to build
Integrate production external FAT32/exFAT discovery and verified read-only analysis with the ordinary worker/access mechanism. Validate the native lifecycle through disposable virtual volumes and controlled discovery inputs.
Acceptance criteria
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.
Resolution — external-volume discovery and read-only analysis implemented
Implemented on implement/iodd-tool-spec-7, completed branch 8794b71, integration merge f424fb8.
The native app discovers external fixed/removable volumes, invalidates stale selections and uses an ordinary signed worker for offline read-only FAT32/exFAT analysis. The worker derives device/partition identity from live evidence, checks both IPC peers, claims the whole device and siblings, requests ordinary unmounts, obtains explicit nontruncating read-only authopen/SCM_RIGHTS access and validates descriptor identity/geometry and selected bounds. Independent GPT primary/backup and MBR/extended parsing reject unsupported, overlapping or inconsistent layouts. Descriptor closure precedes separately reported mount restoration. Busy devices, denied/cancelled authorization, identity changes and unavailable exclusion produce truthful refusal; native writes remain unavailable.
Final combined source269b723 passed all 158 tests in 900.048 seconds using pinned Xcode27.0/27A266a and ordinary release optimization. Completed branch and integration preserve its exact qualified Sources/Tests/package/build scripts. Fresh integration passes all 15 public discovery/layout/lifecycle tests, arm64 app/worker release builds, plist and macOS15.0 checks. Canonical Developer ID deep/strict signatures and recorded binary hashes pass.
Actual signed v11 standard-user authorization, descriptor transfer, full 24-mode ordinary/exclusive whole/raw/block/sibling exclusion, cancellation, Stop, UI EOF, worker death and busy/removal handling are documented with their exact source/runtime provenance. Valid standard-account credentials were rejected by SecurityAgent; subsequent Cancel returned authorizationCancelled, without a false native authorizationDenied claim. The current authopen flag conflict was reproduced and corrected, then the final flags were exercised on both pristine runtime families. Final combined-source signed v12 exFAT scans ran as real nonadmin UID502 on macOS15.6.1/24G90 and27.0.1/26A434: independent six-file content/allocation/ValidDataLength/selected-range oracles match and complete offline container hashes remain unchanged. Gatekeeper stayed enabled; locally transferred signed artifacts are not final quarantined-download acceptance.
Reproducible validation, complete logs, native artifact provenance and limits. Physical media, native4K drivers, custom mount restoration, cache durability and final signing/notarization distribution gates remain separately scoped. Controlled adapters cover unavailable failure states. Both owned pristine VMs were handed back idle and normally shut down with disks/evidence preserved. Existing recovery evidence remains intact.