checksum
A checksum is a small value stored inside an ECU file that acts like a fingerprint for a block of data. If someone edits the data and does not update the checksum, the ECU can tell something is wrong — and may refuse to start, or worse.
checksum reads a file and checks whether its stored checksums still
match the data. Each one comes back OK (matches) or STALE (does
not match — the data was changed after the checksum was written).
Important
checksum only checks. It never fixes. Correcting checksums after a
modification is done by your flashing/checksum tool (ECM Titanium,
WinOLS, …) — OpenRemap deliberately leaves that to you.
When do I need it?
- Before you flash anything. A tuned file with stale checksums can brick an ECU. Verify first.
- After any modification.
healthflags stale checksums; runchecksumto see exactly which scheme is stale. - On a downloaded file you do not trust. Most freely-shared dumps carry stale or stripped checksums — the command will tell you.
Try it (2 minutes)
openremap checksum my-file.bin
If the file's checksums are intact you will see lines like
Bosch ME7 main checksum: OK. If something was edited after the checksum
was written, the line says STALE. Files of families OpenRemap does not
have a checksum scheme for may simply report that no known scheme matched.
Understanding the answer
| The output says… | In plain words |
|---|---|
| OK | The stored checksum matches the data — this block is untouched |
| STALE | The stored value differs from the recomputed one — the data was edited after the checksum was written |
| absent | The structure that would hold this checksum is missing from this file |
| no scheme(s) matched | This file's family is not covered by a known checksum scheme — nothing to compare |
Schemes are checked per ECU family: Bosch ME7 (main, multipoint, rolling, multirange), IronFelix family profiles (VAG ME7.XX, M3.x, …), Siemens GS20/SMG2 and MS43, and Denso Subaru descriptor tables. Not every check runs on every file — only the schemes that fit the file's family.
For developers
The same detection is one method of openremap.api — same schemes, same
OK/STALE result:
| Way of using it | Where to look | Example |
|---|---|---|
| Terminal (CLI) | checksum — CLI | openremap checksum my-file.bin |
| Python code | checksum — API | api.call("checksum", {"path": "my-file.bin"}) |
| Any language (JSON-RPC) | checksum — API | a request with "method": "checksum" |
Where to go next
| You want to… | Go to |
|---|---|
| See every option and the scheme-by-scheme reference | checksum — CLI |
Call checksum from your own code |
checksum — API |
| Run the six-check safety pass that includes checksums | health |
| First identify the file before checking it | identify |