Skip to content

Support the observed PSSSS5 / 2026-04-17 HWCONFIG variant - #27

Merged
phryneas merged 1 commit into
OpenCentauri:mainfrom
fbettic:support-pssss5-hwconfig-variant
Oct 25, 2026
Merged

phryneas merged 1 commit into
OpenCentauri:mainfrom
fbettic:support-pssss5-hwconfig-variant

Conversation

@fbettic

@fbettic fbettic commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

Summary

  • accept the physically observed 12PSSSS5 serial and UOID structures alongside 12PSSSS3 and 12PSSSS4
  • accept the physically observed 2026-04-17 HWCONFIG calendar-shaped value
  • retain fail-closed rejection of unobserved identity families and date values
  • record the fifth camera's non-sensitive fingerprints and physical recovery result
  • update the read-only identification output and focused regression tests

Relation to existing reports

Related to #21 and provides a narrower, evidence-backed alternative to #23.

PR #23 correctly identifies that the digit after 12PSSSS is not limited to 3 and 4, but widens the pattern to [3-9]. This change accepts only the directly observed set [345]. It also adds the 2026-04-17 HWCONFIG date required by the same physical unit, plus regression coverage and the repository's compatibility documentation.

Physical evidence

The fifth camera is an EF-S7-V1.0.30B unit with manufacturing code 2526, an Ingenic T23 processor, and an 8 MiB ZB25VQ64D-family SPI NOR reporting JEDEC ID 5e4017. Before recovery it did not enumerate as a USB device.

Three consecutive 8 MiB reads were acquired at 1 MHz without moving the SOIC-8 clip. They are byte-for-byte identical with SHA-256:

f41e33b9927cfd8a5b11180872a2b940d645ad33ca3d13d5271476e930eb352e

The dump has:

  • the existing normalized invariant SHA-256 4dee29ee9f996779a8af0f4e4a66ebad3c6c1ca353cf8b4287b4f1f9a8b12823
  • exact matches for boot, kernel, root, system, partition layout, stock patch window, and known HWCONFIG bytes
  • the observed 261-byte type-12 HWCONFIG record with extension 00 00 00 08 40
  • structurally valid 12PSSSS5 serial and UOID fields
  • HWCONFIG date 2026-04-17
  • a live, CRC-valid serial.cfg
  • 659 CRC-valid JFFS2 nodes, 657 obsolete nodes, and 98.457% non-FF config usage

The three-read recovery build passed strict post-build validation and produced SHA-256:

45acd32f451428513f14ca1238815e52a0508636060ef6973fa3ebafe0228a41

After programming, a complete 8 MiB readback was byte-for-byte identical to that image. The camera then booted, enumerated normally, and produced a working video feed.

Safety rationale

  • no generic range or --force path is introduced
  • identities 2 and 6 and an unobserved valid date remain explicitly rejected in tests
  • all invariant firmware hashes and writable-region restrictions remain unchanged
  • recovery continues to preserve the complete HWCONFIG partition and the camera's own serial payload
  • no raw dump, recovery image, serial.cfg, complete serial, or complete UOID is committed

Validation

  • Python 3.10: python -m unittest discover -s tests -q — 165 tests passed
  • Python 3.12: python -m unittest discover -s tests -v — 165 tests passed
  • package installation, CLI help, packaging smoke test, compileall, JSON parsing, and git diff --check passed
  • a fresh build from all three physical reads reproduced the recorded recovery SHA-256 and matched the permanent full readback byte-for-byte

No package version is changed here; release/version selection is left to the maintainer.

@phryneas phryneas left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Sorry I reacted so late, after we moved the repo, notifications were off!

@phryneas
phryneas merged commit e19c288 into OpenCentauri:main Oct 25, 2026
7 checks passed
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.

2 participants