Skip to content

Vendor qnxprobe for QNX6 and ext volume access - #168

Merged
abrignoni merged 1 commit into
mainfrom
feat/vendor-qnxprobe
Aug 30, 2026
Merged

abrignoni merged 1 commit into
mainfrom
feat/vendor-qnxprobe

Conversation

@abrignoni

Copy link
Copy Markdown
Owner

Vendors qnxprobe into scripts/vendor/ so VLEAPP can read QNX6 and ext2/3/4 volumes out of a raw image without the examiner installing anything. Standard library only, so requirements.txt is unchanged. Nothing imports it yet; that comes in the next PR.

  • scripts/vendor/vendored.json records the upstream commit and sha256.
  • admin/scripts/check_vendored.py fails when the copy stops matching that record, and with --upstream when upstream has moved on. Runs in CI.
  • lint_changed.py skips scripts/vendor/, since a verbatim copy is guarded by hash rather than style.

qnxprobe reads QNX6 and ext2/3/4 volumes out of a raw image without mounting and
without administrator rights. Vehicle head units run both: the Ford Sync units in
the test corpus are QNX6 and the BMW MGU is ext4, and no filesystem type Sleuth Kit
supports can walk QNX6 at all.

It is one file and uses only the standard library, so requirements.txt is unchanged.
Copied verbatim into scripts/vendor/ with its licence. Nothing imports it yet.

A vendored copy drifts in two directions and both are silent: an edit here looks
like a fix until the next re-vendor reverts it, and an upstream release leaves this
copy quietly old. scripts/vendor/vendored.json records the upstream commit and
sha256, check_vendored.py fails when the file stops matching that record, and with
--upstream it also fails when upstream has moved on. It runs in CI unconditionally,
because the record lives in a .json and a stale record is the same defect.

lint_changed.py now skips scripts/vendor/. Linting a verbatim copy would fail the
job on 21 warnings that are not ours to fix, and both ways to silence them, editing
the copy or adding a file-level disable, turn the next re-vendor into a merge.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@abrignoni
abrignoni merged commit 5686d1c into main Aug 30, 2026
8 checks passed
@abrignoni
abrignoni deleted the feat/vendor-qnxprobe branch August 30, 2026 22:36
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