historical_blobs: v1.16..v1.18 snapshots + byte-divergence analysis

Extracted from rkbin git (using git show <add-commit>:<path> since
each version-update commit deletes the previous binary). Sits here
so future runs don't need to re-extract.

Byte-diff analysis: v1.x → v1.(x+1) differs in ~88% of bytes. Every
release is a near-rewrite, not a patch. Consequence: cross-version
symbol porting tools (Polypyus, BinDiff) would match few functions
on this target. Function-level opcode-silhouette matching with
wildcards for branch targets may still work but needs Ghidra baseline
in each version, not a one-sided v1.19 annotation.

Polypyus attempted 2026-04-15 — blocked by Python 3.14 / pony 0.7
bytecode decompiler incompatibility (LOAD_FAST_BORROW + varname
table layout). Would need pyenv Python 3.11 venv, or switch to
BinDiff CLI (no Python dep). Deferred.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-15 08:51:01 +02:00
parent be59c91707
commit 09c4a92432
5 changed files with 38 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
# Historical RK3588 DDR blob snapshots
Extracted from the rkbin git log for cross-version analysis. v1.19 is
the deployed version; v1.16-v1.18 are the closest-in-time prior revisions.
| file | size | commit msg |
|------|------|------------|
| v1.16.bin | 75480 B | "update ddrbin to v1.16" — 2736 MHz LP5 dropped |
| v1.17.bin | 73456 B | "update ddrbin to v1.17" — smaller, feature cull |
| v1.18.bin | 75320 B | "update ddrbin to v1.18" — single-rank LPDDR5 derate crash per BUG_ANALYSIS.md |
| v1.19 | 76704 B | current deployed (in `rkbin/bin/rk35/`) |
## Byte-level divergence
Each release is essentially a near-rewrite, NOT a patch:
v1.17 vs v1.18: ~88% bytes differ
v1.18 vs v1.19: ~88% bytes differ
v1.16 vs v1.19: even higher
This explains why cross-version symbol porting (via Polypyus or BinDiff)
has low yield on this target — not enough preserved byte sequences.
Function-level fuzzy matching (i.e., reduce each function to an opcode
silhouette with wildcards for branch targets and immediates) would help,
but requires Ghidra-analysed baselines in each version, not just
one-sided v1.19 annotations.
## Tooling note (2026-04-15)
Attempted Polypyus → blocked by Python 3.14 / pony 0.7 decompiler
incompatibility. See `project_rk3588_ddr.md` memory for retry options
(pyenv Python 3.11, or switch to BinDiff CLI which has no Python dep).
+6
View File
@@ -0,0 +1,6 @@
5aa6271195e422a2c30a8e801baa64e4a10cbc6a5f1963f9a29e6dc85096c7bf v1.16.bin
9e0095a52febfc0f57297dff71ecc82d1686b94d47be00c21391446fc6927f7a v1.17.bin
d89d40a8183b099589bfcffc5cc2ce9d874eb5b1d19b78bdad2cfcf45b9cb68f v1.18.bin
5aa6271195e422a2c30a8e801baa64e4a10cbc6a5f1963f9a29e6dc85096c7bf v1.16.bin
9e0095a52febfc0f57297dff71ecc82d1686b94d47be00c21391446fc6927f7a v1.17.bin
d89d40a8183b099589bfcffc5cc2ce9d874eb5b1d19b78bdad2cfcf45b9cb68f v1.18.bin
Binary file not shown.
Binary file not shown.
Binary file not shown.