Skip to content

Parse backup artifacts and show incomplete coverage - #11

Draft
hideouts-io wants to merge 3 commits into
mainfrom
codex/security-coverage-20261022
Draft

hideouts-io wants to merge 3 commits into
mainfrom
codex/security-coverage-20261022

Conversation

@hideouts-io

@hideouts-io hideouts-io commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Problem

Backup payloads use extensionless storage names, so content parsing could miss SQLite, plist, JSON, and text artifacts. Missing payloads and bounded parsing could also leave an incomplete scan looking complete. An immutable SQLite read can omit committed rows still held in a WAL file.

Change

  • Parse mapped backup files by validated logical identity or verified binary header, while retaining requested raw hashes if content parsing is unsupported or fails.
  • Report missing backup payloads, inventory bounds, text and SQLite truncation, and omitted binary values as explicit acquisition warnings.
  • Reject a backup inventory when a nonempty Manifest.db-wal makes immutable inventory coverage unverifiable. Mark a mapped SQLite database's content incomplete when its separately stored WAL cannot be applied; retain raw hashes of the original mapped database and WAL.
  • Show incomplete coverage and warning reasons in Findings and in JSON, CSV, and HTML exports.
  • Add task-owned synthetic backup fixtures with real Manifest.db, payloads, SQLite data, and uncheckpointed WAL rows. No device data or private evidence is included.

Verification

  • nice -n 10 swift build -j 4 -Xswiftc -warnings-as-errors --quiet — passed.
  • nice -n 10 swift test -j 4 -Xswiftc -warnings-as-errors --quiet — passed, 280 tests across three bundles.
  • macOS xcodebuild app build for arm64 passed with the project's warning settings. The documented global SWIFT_TREAT_WARNINGS_AS_ERRORS=YES override fails in third-party SwiftNIO because it conflicts with -suppress-warnings; it does not establish an app-source warning.
  • The prior revision's hosted checks passed. Hosted CI and Swift CodeQL for the updated head are pending. Native Findings accessibility/layout review and representative authorized decrypted-backup compatibility remain open, so this PR remains draft.

Device and privacy scope

Local synthetic backup validation only. No physical-device action, real backup upload, or release was performed.

Dispatch backup payloads by validated logical identity and retain raw hashes across parser outcomes. Surface missing and bounded content coverage in findings and JSON, CSV, and HTML reports. Verify with real synthetic backup and SQLite fixtures. Native UI and representative backup validation remain open.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant