OpenRemap Docs

Third-party credits & community ground truth

OpenRemap's checksum and detection knowledge is built on open community work. We port algorithms (never copy code wholesale) into an MIT codebase; these projects deserve the credit.

Community projects (algorithm sources)

Project What we took License Where it lands
ME7Sum Bosch ME7 main + multipoint checksum scheme GPL openremap/core/services/checksums/checksum.py, Rust sweep
IronFelix ME7.XX / M3.x / M7.9.7 / M7.9.8 / ME7.4.5 / Samand checksum profiles GPL openremap/core/services/checksums/ironfelix.py
NefMoto Open Source ME7 rolling / multirange checksum detection (firmware-code-driven) + the 6-form C166 parser that seeds the Rust xref decoder's size table GPL / community openremap/core/services/checksums/nefmoto.py, openremap/_rs/src/arch/c166.rs (size-table seed)
RomRaider RomChecksum.java descriptor-table algorithm (basis of the Denso Subaru scheme) GPL v2 openremap/core/services/checksums/denso.py
MS4X Wiki GS20 / SMG2 TCU checksum corrector algorithm (decompiled community tool) community openremap/core/services/checksums/ironfelix.py (GS20/SMG2)
td-d/SubaruDefs EcuFlash Subaru defs — checksum table addresses and layout knowledge community openremap/core/services/checksums/denso.py
bludgod/RomRaider The 501-file Subaru factory-ROM corpus community tests/data/ECUs/Subaru/ (gitignored)
mumbel/Ghidra_C166 C166/ST10 instruction encodings consulted to verify the Rust xref decoder's size table (dev-time oracle only — Ghidra is never a runtime dependency; no SLEIGH code is copied) Apache-2.0 openremap/_rs/src/arch/c166.rs (+ the public Infineon/Siemens ST10/C166 instruction-set manuals)

Used as libraries (runtime dependencies)

Project What we use License Where it lands
orjson Fast, spec-strict JSON parsing of recipe files Apache-2.0 / MIT recipe-load paths (tune/validate/merge/audit/diff-maps/TUI)
bincopy Intel HEX / Motorola S-Record parsing + record checksum validation MIT openremap/core/services/convert.py, openremap convert
vininfo VIN decoding — WMI → manufacturer/region/country, model years, ISO 3779 check digit BSD-3-Clause openremap/core/services/vin_decode.py (scan-vins/health/identify)
rapidfuzz Fuzzy string matching for family-name suggestions MIT families --family fuzzy lookup
capstone Code-region disassembly for the code-reference (xref) map signal — statically-resolvable absolute references (TriCore movh.a+lea, SuperH absolute mov.l/mov.w, x86 [abs]) BSD-3-Clause openremap/core/services/maps/xrefs.py (analyze / scan-maps --xrefs / recipe maps[] xref evidence)

What "port" means here

  • We implement the algorithm from the documented behaviour and validate against real binaries — we do not copy implementation code.
  • Where semantics were ambiguous (e.g. the Denso end-inclusive end address), the factory corpus resolved it; deviations are documented in the module docstrings.
  • The Rust ports are 1:1 re-implementations of our own validated Python, not copies of the upstream C/Java.

Sources of structural knowledge (non-code)

  • EcuFlash / OpenECU definitions (via td-d/SubaruDefs and the SubaruDefs mirror) — ROM layouts, flash methods.
  • The ECU tuning community's public forum knowledge (calibration ID conventions, flash layout facts) — credited inline where relied upon.