Skip to content

Releases

ECU Studio AI v1.19.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:44
63ea112

Kennfelderkennung ohne Definition, abgesichert durch eine abschließende Prüfung; Lerndaten ohne nachweisbare Freigabe
sind entfernt, die App zeigt die Art des Belegs statt Prozentwerten. Messungen, Daten und Grenzen:
Entwicklungsbericht und Validierungsbericht. Status je Funktion: validiert = an unabhängigen Referenzen
nachgewiesen, experimentell = vorhanden, aber nicht unabhängig geprüft.

  • TriCore-Programmcode (experimentell): Interpolationsaufrufe, die einen Datensatzkopf übergeben (Anzahl und
    Stützstellen beider Achsen vor den Daten, auch gemischt 8/16 Bit), werden erkannt. Die Zellbreite kommt aus den
    Ladebefehlen der Routine ohne die Zählerzugriffe. Bedingte Sprünge werden verfolgt. Erwartet eine Routine ihre
    Argumente in anderen Registern als a4/a5/a6, wird die Belegung aus ihrem Aufrufverhalten abgeleitet.
    Gemessen nur am MSD80-Vollflash I8A0S, an dem auch entwickelt wurde (Teil-XDF): 73 → 84 von 99 Kennfeldern exakt,
    Kennlinien 164 → 173. Netto 11 mehr: 13 Kennfelder sind neu exakt, 2 in 1.18.2 exakte Kennfelder sind es nicht
    mehr
    (0x4FB18 6 × 7 u16, 0x5604C 6 × 8 u16; bekannte Regression, Aufgabe für 1.19.1). Für andere TriCore-Stände
    gibt es keine unabhängige Referenz. Auf allen anderen Vergleichspaaren sind exakte Kennfelder, Datentypen, Achsen
    und Achsadressen gleich wie in 1.18.2.
  • Drei Erkennungsebenen: Definitionen bleiben unverändert. Funde aus Code und Struktur füllen Lücken, bevor
    Datenmuster und KI zum Zug kommen. Findet die Erkennung über Programmcode oder Struktur dieselbe Tabelle wie eine
    Definition, gilt die Definition als „unabhängig bestätigt“ (nicht als geprüft). Ein Fund allein über Datenmuster
    stützt nur die Lage und wird getrennt gezählt. Widersprüche (Start, Größe, Zellbreite, Byte-Reihenfolge, belegtes
    Vorzeichen) stehen im Scanbericht. Ein Fund, der eine Definition teilweise überlappt, wird nicht mehr zusätzlich in
    die Liste übernommen.
  • Falsche Definition erkannt: Kehren sich bei mehr als 10 % der prüfbaren Kennfelder die Achswerte um, warnen
    XDF-Import und Scan, dass die Definition vermutlich zu einem anderen Softwarestand oder einer anderen Familie
    gehört. Gemessen an lokalen Paaren: passende Definitionen 0,1–0,8 %, falsche 87–97 %. Leere oder gelöschte
    Tabellenbereiche sind nur noch ein Hinweis, keine Warnung (sie sind bei unbenutzten Funktionen üblich).
  • Datentyp nicht erfunden: Ist das Vorzeichen nicht durch Programmcode belegt und entscheiden die Bytes es, zeigt
    der Inspektor die andere mögliche Lesart.
  • Identifikation mit Stufe: eindeutig, wahrscheinlich, mehrdeutig oder unbekannt, jeweils mit Grund.
  • Prüfliste (Werkzeuge): erkannte Kennfelder nach Prüfbedarf, mit Gründen und gemeinsamen Achsen. Bestätigen und
    Ablehnen werden im Projekt gespeichert und gelten nur für die Originaldatei, auf der sie getroffen wurden. Unter
    „Entscheidungen …“ lässt sich jede Entscheidung zurücknehmen. Eine abgelehnte Tabelle bietet ein neuer Scan nicht
    wieder an, außer sie wird jetzt mit stärkerem Beleg gefunden; dann erscheint sie mit Hinweis.
  • Namensübertragung zwischen Softwareständen: Vorschläge, die die Erkennung im Zielstand an derselben Stelle mit
    gleicher Größe, Zellbreite und Byte-Reihenfolge findet, sind gekennzeichnet. Gemessen an MED17 (Entwicklungsdaten):
    „ähnliche Werte“ 92 → 99 % richtig (nicht unabhängig validiert; die App zeigt diese Quoten nicht an). Findet die Erkennung dort andere Achsen, gilt das nicht als Bestätigung. Ist
    eine Achse am Zielort nicht bestätigt, werden ihre Werte nicht mehr mitübertragen; vorher waren bei 296 von 941
    solcher Achsen die Werte falsch. Vorschläge ersetzen beim Übernehmen eine ungeprüfte, unbenannte Erkennung an
    derselben Stelle. Bisher wurden gerade die bestätigten Vorschläge übersprungen.
  • Lernmodelle ohne nachweisbare Freigabe entfernt: Das seit 1.15.0 mitgelieferte Lernmodell für Datenmuster-Funde
    wurde unter anderem mit einer Datei trainiert, deren Herkunftsvermerk Training ausschließt, und mit Daten ohne
    dokumentierte Freigabe. Es ist aus Programm, ZIP, Installer und Quellcode entfernt, ebenso das
    MS43-Strukturmodell (keine Trainingsfreigabe) und die Tabelle der gemessenen Trefferquoten (gemessen an Dateien
    ohne geklärte Herkunft). Die Git-Historie bleibt unverändert, Prüfsummen und Herkunft stehen in der
    Modellkarte § 2e. Der Build bricht ab, wenn eine dieser Dateien (auch umbenannt) wieder in
    ein Paket gerät. Ein neues Modell wird nur mit dokumentierter Freigabe seiner Trainingsdaten angewendet.
  • Folgen für die Erkennung: Exakte Kennfelder, Datentypen, Achsen und Achsadressen bleiben auf allen 15
    Vergleichspaaren gleich. Ohne Modell erscheinen aber mehr ungeprüfte Datenmuster-Funde (z. B. ME9: Präzision
    62 → 42 %, MS45: 66 → 38 %). Formhinweise des MS43-Modells gibt es nicht mehr; sie betrafen nur Kennfelder, die die
    mitgelieferte MS43-Definition ohnehin enthält.
  • Art des Belegs statt Prozentzahl: Jeder automatische Fund zeigt Code-Beleg, Strukturbeleg oder
    Datenmuster-Vermutung. Das ist keine Wahrscheinlichkeit und nicht unabhängig validiert; der Tooltip sagt das.
    TriCore-Codebelege sind als experimentell markiert. Der Katalogfilter nutzt dieselben Stufen. Quoten, die
    1.15.0–1.18.2 in Projekten gespeichert haben, werden beim Laden entfernt; eigene Notizen bleiben. Die historischen
    Werte mit ihrer Herkunft stehen in der Modellkarte.
  • Prüfliste: Reine Datenmuster-Vermutungen ohne Widerspruch stehen als eigene Gruppe nach den Funden mit Code-
    oder Strukturbeleg, jede Zeile als „Vermutung“ gekennzeichnet. Die Gruppe ist beim Öffnen aufgeklappt, weil sie
    auch echte Kennfelder enthält (MS42: alle 22 exakten Funde, MS45: 21 von 30), und lässt sich einklappen
    („Datenmuster-Vermutungen anzeigen“). Alle Funde bleiben im Projekt, im Katalog und im Filter.
  • Training reproduzierbar: Datensatz mit Herkunft, Familien-Auslassung, Seed, Protokoll und Ersetzungsregel.
    Trainiert wird nur mit Daten, deren Freigabe festgehalten ist (training_allowed), und nur ein so trainiertes
    Modell wird im Scan angewendet. Ein freigegebener Datensatz mit vollständiger Referenz liegt derzeit nicht vor.
  • Scan: benannte Stufen in der Statusleiste, durchgehend steigender Fortschritt, schnellere Achsensuche bei
    identischen Ergebnissen. Mit einer großen geladenen XDF fror das Fenster nach dem Scan bisher 35–43 s ein
    (MED17 mit 3446 Definitionen); die Übernahme der Funde dauert jetzt unter 0,3 s bei gleichem Ergebnis.
    Musste das Fenster während eines Scans neu zeichnen (erste Anzeige einer Datei, Schließen der Prüfliste), stand es
    bis zum Scan-Ende still (MS43: 4,7–5,1 s, auch in 1.18.2); jetzt längste Pause 0,11 s bei gleicher Scandauer.
    Beendete Hintergrundaufgaben werden vor dem Freigeben und beim Schließen abgewartet.
  • Bekannte Grenzen:
    • Die Präzision der Funde aus Programmcode ist nicht gemessen. Die TriCore-Codeerkennung bleibt experimentell.
    • Bosch EDC17 setzt Tabellenzeiger zur Laufzeit über a9, das ist statisch nicht auflösbar.
    • EDC17, MG1, MD1, Simos und SID bleiben nicht validiert. Die früheren Hersteller-A2L-Messungen (MSD80, MSD85,
      EDC16, EDC17CP09) lassen sich lokal nicht wiederholen und gelten als historisch.
    • Ein einmaliger Absturz (Zugriffsverletzung) vom 01.11.2026 trat in den späteren Belastungsläufen nicht wieder
      auf. Seine Ursache ist unbekannt.
    • Liegt der Programmordner tiefer als rund 200 Zeichen, startet das Programm nicht (Windows-Pfadlänge).
    • Ein Abbruch wirkt bei MS43 erst nach 3–5 s, weil das Einlesen der mitgelieferten Definition nicht unterbrechbar
      ist. Funde eines abgebrochenen Scans werden nicht übernommen.
    • Geplante Arbeiten für 1.19.1: Aufgaben.

English

Map recognition without a definition, backed by a final validation round. Status per feature: validated = proven
on independent references, experimental = present but not independently checked.

  • TriCore program code (experimental): interpolation calls that pass a record header (count and breakpoints of
    both axes in front of the data, also mixed 8/16 bit) are recognised. The cell width comes from the routine's load
    instructions, without the count reads. Conditional branches are followed. Where a routine expects its arguments
    in other registers than a4/a5/a6, the assignment is derived from its call behaviour. Measured only on the
    MSD80 full flash I8A0S, which was also used during development (partial XDF): 73 → 84 of 99 maps exact, curves
    164 → 173. Net 11 more: 13 maps are newly exact, 2 maps that were exact in 1.18.2 no longer are (0x4FB18
    6 × 7 u16, 0x5604C 6 × 8 u16; known regression, task for 1.19.1). There is no independent reference for other
    TriCore versions. On all other comparison pairs, exact maps, data types, axes and axis addresses are the same as
    in 1.18.2.
  • Three recognition layers: definitions stay unchanged. Findings from code and structure fill gaps before data
    patterns and AI do. If code/structure detection finds the same table as a definition, the definition is marked
    "independently confirmed" (not "checked"). A data-pattern match only supports the position and is counted
    separately. Contradictions (start, size, cell width, byte order, proven sign) are listed in the scan report. A
    finding that partly overlaps a definition is no longer added to the list as well.
  • Wrong definition detected: if the axis values change direction in more than 10 % of the checka...
Read more

ECU Studio AI 1.18.2

Choose a tag to compare

@github-actions github-actions released this 01 Nov 12:10
0cec5e8

Hinweis (04.11.2026): Diese Version enthält gelernte Daten (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json), deren Trainings- bzw. Messdaten teilweise
keine dokumentierte Herkunft oder Freigabe haben. Ab 1.19.0
sind diese Dateien entfernt, und die App zeigt statt gemessener Prozentwerte die Art des Belegs. Wir empfehlen,
auf die aktuelle Version zu aktualisieren. Details:
Modellkarte, Abschnitt 2e.

Notice (4 Nov 2026): This version contains learned data (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json) whose training or measurement data partly has
no documented provenance or clearance. From 1.19.0
on, these files are removed, and the app shows the kind of evidence instead of measured percentages. We recommend
updating to the current version. Details:
model card, section 2e
(German).

Sicherheitskorrektur des Firmware-Schutzes und Nacharbeit am Programm-Symbol. Kennfelderkennung, Import,
Bearbeitung, Prüfsummen, Vergleich, Projekte und Update-System sind unverändert.

  • Firmware-Schutz: Bildprüfung geschlossen (Sicherheitskorrektur). In 1.18.1 ignorierte die PNG-Prüfung Bytes
    hinter dem Ende des komprimierten Bilddatenstroms. Eine PNG mit 5 000 angehängten Bytes in einem IDAT-Chunk
    mit korrekter Prüfsumme wurde angenommen und normal angezeigt. Jetzt wird schrittweise und speicherbegrenzt
    entpackt; jedes Byte muss zum Strom gehören, die Pixelmenge muss genau stimmen, die Zeilenfilter müssen gültig
    sein. Dazu kommen Chunk-Reihenfolge, Farbtiefen und eine Grenze von 64 MiB gegen Dekompressionsbomben. GIF-Bilder
    werden jetzt LZW-dekodiert (keine Daten mehr hinter dem Endecode), Text-Metadaten in PNG, GIF und JPEG werden auf
    eingebettete Hex-/Base64-Daten geprüft, binäre Metadaten sind auf 16 KiB begrenzt, ICO-Einträge müssen zum
    Verzeichnis passen. JPEG und WEBP brauchen eine Freigabe nach Sichtprüfung, weil ihre Bilddaten nicht dekodiert
    werden. Eine Datei mit Bild-Endung, die gar kein Bild ist, wird abgewiesen. Alle Bilder im Repository bestehen
    die neue Prüfung.
  • Programm-Symbol in kleinen Größen und in der Taskleiste: Bei 16, 20 und 24 Pixeln war das Symbol nur ein
    blauer Fleck; dort gibt es jetzt eine vereinfachte, pixelgenau gezeichnete Variante (Chip, Anzeige, Kennlinie,
    ohne Ring). Ab 32 Pixeln bleibt das bisherige Bild unverändert. Startmenü- und Desktop-Verknüpfung tragen jetzt
    dieselbe Windows-App-ID wie das Programmfenster, und das Fenster nennt ECU-Studio-AI.exe als Startbefehl. Das
    Anheften an die Taskleiste startet also das Programm, nicht pythonw.exe mit Python-Symbol. Die Verknüpfungen
    bekommen die App-ID bei der Installation mit dem Installer von 1.18.2; eine schon angeheftete Schaltfläche
    einmal lösen und neu anheften.
  • Bekannte Grenzen: Daten in den Bildpixeln selbst erkennt keine Strukturprüfung (neue Bilder vor dem Push
    ansehen); JPEG und WEBP brauchen eine Freigabe. Startmenü, Desktop-Verknüpfung und Anheften nach echter
    Installation wurden nicht in einer isolierten Umgebung getestet.

Installation: ECU-Studio-AI-<version>-windows-x64.zip entpacken und ECU-Studio-AI.exe starten, oder den
Installer ECU-Studio-AI-<version>-setup.exe ausführen. Bestehende Installationen finden das Update unter „Einstellungen → Jetzt nach Updates suchen“ (automatisch nur, wenn eingeschaltet).

Windows-Warnung beim ersten Start: Die EXE ist noch nicht code-signiert. Bei „Der Computer wurde durch Windows
geschützt“ auf „Weitere Informationen“ → „Trotzdem ausführen“ klicken. Echtheit prüfen: SHA-256 gegen die
.sha256-Datei, Build-Herkunft mit gh attestation verify <datei> --repo PCTestAdmin/ECU-Studio-AI.

ECU Studio AI 1.18.1

Choose a tag to compare

@github-actions github-actions released this 31 Oct 16:21

Hinweis (04.11.2026): Diese Version enthält gelernte Daten (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json), deren Trainings- bzw. Messdaten teilweise
keine dokumentierte Herkunft oder Freigabe haben. Ab 1.19.0
sind diese Dateien entfernt, und die App zeigt statt gemessener Prozentwerte die Art des Belegs. Wir empfehlen,
auf die aktuelle Version zu aktualisieren. Details:
Modellkarte, Abschnitt 2e.

Notice (4 Nov 2026): This version contains learned data (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json) whose training or measurement data partly has
no documented provenance or clearance. From 1.19.0
on, these files are removed, and the app shows the kind of evidence instead of measured percentages. We recommend
updating to the current version. Details:
model card, section 2e
(German).

  • Programm-Symbol: ECU Studio AI hat ein eigenes Symbol (Chip mit Kennfeld) für die .exe, Explorer,
    Startmenü, Desktop-Verknüpfung, Installer, Deinstallationseintrag, alle Fenster und die Taskleiste (eigene
    Windows-App-ID, damit dort nicht das Python-Symbol erscheint). Die ICO enthält 16 bis 256 Pixel und wird mit
    python -m ecu_studio.tools.make_app_icon BILD.png aus einer Vorlage erzeugt.
  • Firmware-Schutz prüft Bilder jetzt strukturell: Bisher genügte bei ICO der Dateikopf, und eine PNG mit
    beliebigen Daten vor IEND wäre durchgegangen. Jetzt werden PNG-Chunks samt Prüfsumme und Pixelmenge, GIF- und
    JPEG-Blöcke, ICO-Einzelbilder und WEBP-Länge geprüft; Metadaten sind auf 64 KiB begrenzt.

Installation: ECU-Studio-AI-<version>-windows-x64.zip entpacken und ECU-Studio-AI.exe starten, oder den
Installer ECU-Studio-AI-<version>-setup.exe ausführen. Bestehende Installationen finden das Update unter „Einstellungen → Jetzt nach Updates suchen“ (automatisch nur, wenn eingeschaltet).

Windows-Warnung beim ersten Start: Die EXE ist noch nicht code-signiert. Bei „Der Computer wurde durch Windows
geschützt“ auf „Weitere Informationen“ → „Trotzdem ausführen“ klicken. Echtheit prüfen: SHA-256 gegen die
.sha256-Datei, Build-Herkunft mit gh attestation verify <datei> --repo PCTestAdmin/ECU-Studio-AI.

ECU Studio AI 1.18.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 11:50
18fdacc

Hinweis (04.11.2026): Diese Version enthält gelernte Daten (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json), deren Trainings- bzw. Messdaten teilweise
keine dokumentierte Herkunft oder Freigabe haben. Ab 1.19.0
sind diese Dateien entfernt, und die App zeigt statt gemessener Prozentwerte die Art des Belegs. Wir empfehlen,
auf die aktuelle Version zu aktualisieren. Details:
Modellkarte, Abschnitt 2e.

Notice (4 Nov 2026): This version contains learned data (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json) whose training or measurement data partly has
no documented provenance or clearance. From 1.19.0
on, these files are removed, and the app shows the kind of evidence instead of measured percentages. We recommend
updating to the current version. Details:
model card, section 2e
(German).

  • Offline zuerst: automatische Update-Prüfung ab Werk aus. Ohne eigene Einstellung baut ECU Studio AI keine
    Netzwerkverbindung mehr von selbst auf. „Einstellungen → Automatisch nach Updates suchen“ schaltet sie ein; eine
    bereits gespeicherte Wahl (ein oder aus) bleibt erhalten. „Jetzt nach Updates suchen“ funktioniert unverändert.
    Die Prüfung fragt nur die GitHub-Releases-API ab und sendet keine Dateien.

  • Lokale Referenzsuche beim Öffnen einer BIN: Projekte und Kennfeldpakete werden jetzt auch über gleiche
    Hardware- und Softwarenummern gefunden (eigene indizierte Tabelle; ältere Einträge werden beim Öffnen aus den
    gespeicherten Metadaten ergänzt, ohne eine BIN zu lesen). Jeder Vorschlag zeigt Stufe und Grund: „nachgewiesen“
    nur bei identischer Datei (SHA-256), „wahrscheinlich“ bei gleicher Softwarenummer (mit oder ohne Hardware),
    „mehrdeutig“ bei nur gleicher Hardwarenummer oder Familie. Bisher zählten nur gleicher Hash und gleiche Familie,
    auf 50 Einträge begrenzt, sodass ein Projekt mit gleicher Softwarenummer fehlen konnte. „Bestehende Projekte
    indexieren …“ schreibt in wenigen Transaktionen statt einer je Projekt, zeigt Fortschritt, lässt sich abbrechen
    und meldet Fehler gesammelt. Synthetischer Benchmark mit 20 000 Projekten und 2 000 Paketen
    (python -m ecu_studio.tools.library_benchmark): Datenbankanteil je indiziertem Projekt 17,4 → 0,27 ms,
    Vorschläge beim Öffnen 25,5 → 28,2 ms, einmalige Ergänzung beim ersten Öffnen 0,3 s.

  • Definition bearbeiten und XDF-Export, Fehlerbehebungen: Eine strukturelle Änderung (Adresse, Größe,
    Datentyp, Byte-Reihenfolge, Faktor/Offset, Achsenadresse oder -werte) setzt den Prüfstatus einer geprüften
    Definition jetzt zurück; nur ein ausdrücklicher Klick auf „Fachlich geprüft“ bestätigt ihn erneut. Vorher blieb
    er mit einer Warnung bestehen. Eine gespeicherte Achsenadresse lässt sich im Dialog durch Leeren des Feldes
    entfernen (vorher blieb sie erhalten). Der XDF-Export schreibt in eine temporäre Datei, prüft sie per Rückimport
    und ersetzt das Ziel erst danach in einem Schritt; bei Abweichung oder Schreibfehler bleibt eine vorhandene Datei
    unverändert. Die Rückimport-Prüfung verglich bisher falsche Paare, sobald eine ungültige Definition im Katalog
    stand, und meldete dann fälschlich „Datei nicht verwenden“. Der Bericht sagt jetzt ausdrücklich, dass der
    Rückimport mit dem eigenen Import erfolgt und kein Test in TunerPro ist.

  • Firmware-Schutz für das Repository: Pre-Commit- und Pre-Push-Hooks (.githooks/, aktivieren mit
    python src\ecu_studio\tools\firmware_guard.py install) blockieren Firmware-, Dump-, Definitions-, Archiv- und
    Datenbankdateien, umbenannte Binärdateien, eingebettete Hex-/Base64-/Intel-HEX-Daten, Dateien über 1 MiB, private
    Datenordner und den konfigurierten lokalen Datenordner. Geprüft wird der Index (auch bei selektivem Staging) bzw.
    jeder ausgehende Commit samt Commit-Nachricht und dem ganzen gepushten Baum. Öffentliche Ausnahmen (synthetische
    Beispiele, mitgelieferte GPL-XDFs) gelten nur für Pfad + SHA-256. CI prüft den Baum erneut. Die bisherige Historie
    wurde vollständig geprüft: keine Firmware (Beschreibung und Restrisiken).

  • Dokumentation und App-Daten aktualisiert: „Hilfe → Unterstützte Steuergeräte“ führt MSD80 jetzt als TriCore
    (vorher PowerPC), MSD85 als ungeprüft und Delco Multec S als nicht validiert; Messwerte unverändert. PROGRESS.md mit
    den TriCore-Stufen, Roadmap-Grafik auf 1.17.0, Modellkarte mit den heutigen Trefferquoten je Beweisart und dem
    Lernmodell, Beweisart-Tabelle der README an die Kalibrierdaten angeglichen. Herkunftsangaben zu nicht
    mitgelieferten Referenz- und Trainingsdateien entfernt, ebenso firmware_holdout sources samt Quellenliste.

  • TriCore-Zelltyp aus dem Programmcode (MSD80): Breite und Vorzeichen einer Tabelle folgen aus den
    Ladebefehlen ihrer Interpolationsroutine, deren Basis vom Tabellenzeiger a4 abgeleitet ist; nur bei
    übereinstimmenden Zugriffen, sonst bleibt der Typ als ungeprüft markiert. Diese Breite hat Vorrang vor einer
    zufällig exakt gefüllten Lücke (22 von 832 Fällen: zwei gleich große Bytetabellen hintereinander). Alle per
    a4 an bekannte Kennfeldroutinen übergebenen Adressen begrenzen jetzt die Lücke. Eine Kennfeldroutine nach
    Achsensuche muss Tabellenzellen lesen. MSD80 I8A0S (Entwicklungsdaten): exakt 71 → 73 von 99, Typ richtig
    53 → 62, Konflikte unverändert; MS42/MS43, Negativkontrollen und EDC17C69 unverändert
    (Bericht, Abschnitt 11).

  • Delco D98 / Multec S: Recherche dokumentiert; kein rechtmäßig nutzbares Abbild gefunden, daher keine
    Erkennungsmetrik (Recherche, Benchmark).

  • TriCore-Aufrufe, zweite Stufe (MSD80): Achszeiger, die eine Funktion früh auf dem Stack ablegt und erst
    vor dem Aufruf wieder lädt, werden über die nächste vorangehende Belegung des Slots aufgelöst (nur bei
    einmaliger sp-Änderung und ohne herausgegebene Slotadressen). Getrennte Interpolation (Achsensuche je Achse,
    danach Kennfeldaufruf nur mit Daten) wird pfadgebunden erkannt; Routinenrollen folgen aus dem Aufrufverhalten,
    die Zellbreite nur aus exakter Lückenfüllung. Eigene, nicht kalibrierte Evidenzklasse code:call-pre.
    MSD80 I8A0S (Entwicklungsdaten): exakte 2D-Kennfelder 61 → 71 von 99, Konflikte mit der XDF 13 → 11,
    Gruppenpaare 17 → 33. MS42/MS43, alle Negativkontrollen und EDC17C69 unverändert. Behoben: 16-Bit-ld.a a15,[sp]
    verwarf den alten a15-Wert nicht (Bericht, Abschnitt 10).

  • Kennfelder aus TriCore-Interpolationsaufrufen (Siemens MSD80 und andere Vollflash-Images mit derselben
    Aufrufkonvention): Der Code übergibt Tabellendaten in a4 und die Köpfe von X-/Y-Achse in a5/a6. Der neue
    Decoder core/tricore_refs.py liest daraus Start, Größe und Achsen; die Zellbreite folgt ohne Referenz aus dem
    nächsten benannten Objekt. Gemessen an einem MSD80-Vollflash (I8A0S, Community-XDF, Entwicklungsdaten): exakte
    2D-Kennfelder 39 → 61 von 99, Kennlinien 115 → 160 von 262, gemeinsame Achsen 17/17. Keine neue Kollision mit
    der Referenz; MS42/MS43 und alle Negativkontrollen unverändert; EDC17C69 bleibt ohne Treffer. Eigene,
    nicht kalibrierte Evidenzklasse code:call. Reine Kalibrierbereiche (S19) enthalten keinen Code und bleiben
    unverändert. MSD80 ist nachweislich TriCore, nicht PowerPC
    (Bericht).

  • Kennfelddefinition bearbeiten / prüfen … (Strg+E, Werkzeuge und Kontextmenü der Kennfeldliste): Name,
    Beschreibung, Adresse, Größe, Datentyp, Byte-Reihenfolge, Faktor/Offset, Einheiten, X-/Y-Achsenadresse mit eigenem
    Datentyp und Faktor, Prüfstatus. „Prüfen“ zeigt Änderungen, Warnungen und eine Vorschau der Werte aus den
    aktuellen Dateibytes; „Übernehmen“ erst danach und nur nach Bestätigung, als rückgängig machbare
    Definitionsänderung. Die BIN wird nie verändert; „geprüft“ setzt nur der Nutzer. Achsen werden nur neu gelesen,
    wenn der Nutzer ihre Leseart ändert (sonst blieben importierte Achsen mit unbekannter Skalierung nicht erhalten).

  • Kennfelder als TunerPro-XDF exportieren … (Datei-Menü): XML-XDF 1.70 für Tabellen, Kennlinien und Konstanten
    mit 8/16/32 Bit, Vorzeichen, Byte-Reihenfolge, Speicherordnung, Strides, Formel, Einheiten und Ordner. Achsen als
    feste Stützstellen (folgen keiner späteren Achsenänderung). 32-Bit-Gleitkomma und ungültige Definitionen werden
    mit Grund ausgelassen. Jeder Export wird sofort mit dem eigenen XDF-Importer zurückgelesen und Feld für Feld
    verglichen; nur dann meldet die App „Rückimport geprüft“. In TunerPro selbst ist der Export nicht getestet.

  • Konfidenzfilter „Noch nicht manuell geprüft“: alle Kennfelder, die der Nutzer noch nicht bestätigt hat.

  • Open-Source-Detektoren am fixierten Quellstand verglichen; zwei eigenständig implementierte Strukturversuche
    bleiben außerhalb des produktiven Scanners. Neuer tools.detector_benchmark nutzt die bestehenden
    hashgebundenen Messungen für Baseline, Einzelversuch und konservative Kombination.

  • Negative Achszeiger werden vor dem Bytezugriff abgewiesen; keine Dateiumwicklung durch Python-Indizierung.

  • Wiederholte Record-Oberflächenprüfungen werden pro Scan begrenzt wiederverwendet. Auf der synthetischen
    64-KiB-Rampenkontrolle sinkt der Median von 35,965 auf 8,750 s bei identischen Resultaten; kein allgemeiner
    ECU-Geschwindigkeitsfaktor. Neue reale Kennfeldtreffer sind nicht nachgewiesen.

  • [Quellco...

Read more

ECU Studio AI 1.17.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 12:59
62d98e1

Hinweis (04.11.2026): Diese Version enthält gelernte Daten (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json), deren Trainings- bzw. Messdaten teilweise
keine dokumentierte Herkunft oder Freigabe haben. Ab 1.19.0
sind diese Dateien entfernt, und die App zeigt statt gemessener Prozentwerte die Art des Belegs. Wir empfehlen,
auf die aktuelle Version zu aktualisieren. Details:
Modellkarte, Abschnitt 2e.

Notice (4 Nov 2026): This version contains learned data (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json) whose training or measurement data partly has
no documented provenance or clearance. From 1.19.0
on, these files are removed, and the app shows the kind of evidence instead of measured percentages. We recommend
updating to the current version. Details:
model card, section 2e
(German).

Offenes Kennfeldpaket und integrierter Projektworkflow

  • Bestehendes JSON-Map-Pack auf Version 2 erweitert: Original-Hash/-Größe, erkannte ECU-/HW-/SW-Kennungen,
    Definitionen inklusive Strides, Achsadressen und Gruppen, optionale Beschreibungen/Belege und Integritäts-Hash.
    Keine Firmware oder Patches. Format 1 bleibt lesbar; unbekannte Felder werden angezeigt und blockieren die Übernahme.
  • Importvorschau mit Konflikten; keine Überschreibung vorhandener Definitionen und keine automatische Verifikation.
    Abweichende Hashes laufen mit lokaler Quell-BIN durch den bestehenden Softwarestand-Vergleich statt an gleiche Offsets.
  • Paketübernahme plus Projektversionsstand sind als gemeinsame Katalogtransaktion mit Strg+Z/Strg+Y rückgängig machbar,
    in zeitlicher Reihenfolge mit Byte-Bearbeitungen. Lokaler Projektindex merkt Pakete und bietet beim Öffnen Vorschläge an.
  • Export: alle, bestätigte oder ausgewählte Definitionen; Achsadressen/Gruppen optional; private Freitexte standardmäßig aus.
  • tools.validation_report verbindet die bestehenden Benchmarks und Fehlfundanalysen mit lokalem SHA-256-Manifest,
    getrennten Datenrollen und JSON-/Markdown-Ausgabe. Geänderte Referenz, Rolle oder Software ist nicht vergleichbar.
  • Keine Änderung am Scanner oder an OEM-Korrektursperren. Prioritätsfamilien ohne Referenzen bleiben nicht neu gemessen.
    Format,
    Messworkflow,
    technischer Prüfbericht.
  • Geprüft: 591 Tests bestanden, 7 optionale Referenztests übersprungen; synthetischer GUI-Ablauf und Windows-Paketbau.
    Die MS42-Kontrolle bleibt bei 22/213 exakten 2D-Layouts. Kein neuer unabhängiger OEM- oder Transfernachweis.

Installation: ECU-Studio-AI-<version>-windows-x64.zip entpacken und ECU-Studio-AI.exe starten, oder den
Installer ECU-Studio-AI-<version>-setup.exe ausführen. Bestehende Installationen bieten das Update automatisch an.

Windows-Warnung beim ersten Start: Die EXE ist noch nicht code-signiert. Bei „Der Computer wurde durch Windows
geschützt“ auf „Weitere Informationen“ → „Trotzdem ausführen“ klicken. Echtheit prüfen: SHA-256 gegen die
.sha256-Datei, Build-Herkunft mit gh attestation verify <datei> --repo PCTestAdmin/ECU-Studio-AI.

ECU Studio AI 1.16.4

Choose a tag to compare

@github-actions github-actions released this 23 Oct 13:13

Hinweis (04.11.2026): Diese Version enthält gelernte Daten (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json), deren Trainings- bzw. Messdaten teilweise
keine dokumentierte Herkunft oder Freigabe haben. Ab 1.19.0
sind diese Dateien entfernt, und die App zeigt statt gemessener Prozentwerte die Art des Belegs. Wir empfehlen,
auf die aktuelle Version zu aktualisieren. Details:
Modellkarte, Abschnitt 2e.

Notice (4 Nov 2026): This version contains learned data (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json) whose training or measurement data partly has
no documented provenance or clearance. From 1.19.0
on, these files are removed, and the app shows the kind of evidence instead of measured percentages. We recommend
updating to the current version. Details:
model card, section 2e
(German).

Bericht mit allen Messungen: docs/ANALYSE_2026-10-23.md.

Projektkompatibilität und Werteübernahme

  • Kennfeldfelder aus einer neueren Projektversion werden beim toleranten Öffnen weiterhin nicht angezeigt,
    aber jetzt verlustfrei am Kennfeld mitgeführt und beim Speichern unverändert zurückgeschrieben.
  • Unabhängige synthetische Transfer-Matrixtests decken mehrere Softwarestand-Layouts, Datentypen, Byte-Reihenfolgen,
    Skalierungen, Überlauf-/Review-Sperren und den gemeinsamen Undo-Schritt ab. Das ist kein OEM-Nachweis.

Gemeinsame Achsen (Gruppenkennfelder)

  • Kennfelder kennen die Dateiadresse ihrer X-/Y-Stützstellen (A2L STD_AXIS/COM_AXIS mit Achsobjekt-Namen,
    XDF eingebettete und verlinkte Achsen, Kopf-/Kennlinien-Datensätze und Code-Verweise der Erkennung). Gespeichert
    im Projekt; alte Projekte laden unverändert.
  • Neues Modul core/axis_groups.py: Gruppen nur über dieselbe Achsadresse, mit Evidenz aus Definition oder
    strukturell, ungeprüft und Markierung unsicher bei Widersprüchen. Gleiche Achswerte an anderer Adresse sind nur
    eine Hypothese. Katalog („Achse geteilt“), Detailbereich, Funktionsgruppen (inkl. CSV) und Funktionsgraph zeigen
    die Gruppen; der Funktionsgraph gruppierte vorher nach gleichen Achswerten.
  • Gemessen an MS43 430069 (Rolle training): 491 von 491 erkannten Gruppenpaaren richtig, 86 % der Referenzpaare
    unter den exakt gefundenen Kennfeldern.

Softwarestände vergleichen und Definitionen übernehmen (Werkzeuge, neu)

  • Zuordnung über eindeutige Anker in Klassen exakt / strukturell / wahrscheinlich / mehrdeutig / nicht zuordenbar;
    gleiche Adresse allein ist kein Beleg. Differenzen je Kennfeld, zwei synchronisierte Wertetabellen, Filter,
    Liste „nur in Stand B“.
  • Übernahme nur von Definitionen (BIN unverändert), alles oder nichts, „wahrscheinlich“ nur mit Bestätigung,
    mehrdeutig nie; Protokoll im Projekt-Journal und Versionsstand mit den übernommenen Definitionen.
  • MS43 E46 → E39 (1454 Definitionen, 0,31 s): alle 1140 zugeordneten am richtigen Ort. Zugeordnet wird über die
    Originale beider Stände, Bearbeitungen in Stand A ändern die Zuordnung nicht.
  • Werteänderungen von Stand A übertragen …: markierte, eindeutige Zuordnungen gehen an den geprüften
    Delta-Transfer (bestätigte Identität und Definitionen, gleiche Achsen und Einheiten, Vorschau, ein Undo-Schritt).
    Nicht bestätigte Achsen in Stand B werden bei der Definitionsübernahme nicht aus Stand A übernommen.

Projektbibliothek und Versionen

  • Projektliste mit Familie, HW/SW-Kennung, Definitionsquellen, App-Version, geprüften/ungeprüften/geänderten
    Kennfeldern und Versionen; eigene Tags und Kommentare; Filter nach Familie und Tag. Die Angaben stehen in
    zusätzlichen Tabellen: Ältere Versionen öffnen und beschreiben dieselbe Projektdatenbank weiterhin.
  • Tests laufen mit temporären Benutzerordnern und berühren die echte Projektdatenbank nicht mehr.
  • Projekte aus neueren Versionen öffnen jetzt mit einer Warnung, die die unbekannten Kennfeldangaben nennt
    (sie bleiben beim Speichern unverändert erhalten), statt mit einem Fehler abzubrechen. Hinweis: Projekte dieses Stands lassen
    sich in 1.16 und älter nicht öffnen – dort fehlt diese Toleranz noch.
  • Versions-Explorer: zwei beliebige Stände vergleichen (Bytes, Kennfelder, Definitionen).

Messwerkzeuge

  • tools/miss_analysis: Ursachen verfehlter Referenzkennfelder je Paar.
  • benchmark_suite: Version, Commit, Referenzquelle/-lizenz, Achsadress- und Gruppenkennzahlen, --baseline für
    einen Vorher/Nachher-Bericht (mehr Kandidaten allein gilt nie als Verbesserung).

Nicht erreicht: Keine Änderung an der Kennfeldsuche. Die Referenzpaare der Prioritätsfamilien (EDC17CP09, EDC16,
MSD80/85) waren nicht verfügbar; zwei an MS42/MS43 geprüfte Ansätze für Gruppenkennfelder wurden wegen zu geringer
Präzision verworfen (Bericht, Abschnitt 3).


Installation: ECU-Studio-AI-<version>-windows-x64.zip entpacken und ECU-Studio-AI.exe starten, oder den
Installer ECU-Studio-AI-<version>-setup.exe ausführen. Bestehende Installationen bieten das Update automatisch an.

Windows-Warnung beim ersten Start: Die EXE ist noch nicht code-signiert. Bei „Der Computer wurde durch Windows
geschützt“ auf „Weitere Informationen“ → „Trotzdem ausführen“ klicken. Echtheit prüfen: SHA-256 gegen die
.sha256-Datei, Build-Herkunft mit gh attestation verify <datei> --repo PCTestAdmin/ECU-Studio-AI.

ECU Studio AI 1.16.3

Choose a tag to compare

@github-actions github-actions released this 22 Oct 20:18

Hinweis (04.11.2026): Diese Version enthält gelernte Daten (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json), deren Trainings- bzw. Messdaten teilweise
keine dokumentierte Herkunft oder Freigabe haben. Ab 1.19.0
sind diese Dateien entfernt, und die App zeigt statt gemessener Prozentwerte die Art des Belegs. Wir empfehlen,
auf die aktuelle Version zu aktualisieren. Details:
Modellkarte, Abschnitt 2e.

Notice (4 Nov 2026): This version contains learned data (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json) whose training or measurement data partly has
no documented provenance or clearance. From 1.19.0
on, these files are removed, and the app shows the kind of evidence instead of measured percentages. We recommend
updating to the current version. Details:
model card, section 2e
(German).

  • Updater repariert: Der PowerShell-Updater läuft jetzt mit einem Arbeitsordner außerhalb der Installation,
    damit Windows den Installationsordner beim Austausch nicht selbst als „in Benutzung“ sperrt.
  • Der Austausch wartet bei kurzfristigen Windows-Dateisperren bis zu 30 Sekunden und bricht danach unverändert ab.

Installation: ECU-Studio-AI-<version>-windows-x64.zip entpacken und ECU-Studio-AI.exe starten, oder den
Installer ECU-Studio-AI-<version>-setup.exe ausführen. Bestehende Installationen bieten das Update automatisch an.

Windows-Warnung beim ersten Start: Die EXE ist noch nicht code-signiert. Bei „Der Computer wurde durch Windows
geschützt“ auf „Weitere Informationen“ → „Trotzdem ausführen“ klicken. Echtheit prüfen: SHA-256 gegen die
.sha256-Datei, Build-Herkunft mit gh attestation verify <datei> --repo PCTestAdmin/ECU-Studio-AI.

ECU Studio AI 1.16.2

Choose a tag to compare

@github-actions github-actions released this 22 Oct 19:56

Hinweis (04.11.2026): Diese Version enthält gelernte Daten (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json), deren Trainings- bzw. Messdaten teilweise
keine dokumentierte Herkunft oder Freigabe haben. Ab 1.19.0
sind diese Dateien entfernt, und die App zeigt statt gemessener Prozentwerte die Art des Belegs. Wir empfehlen,
auf die aktuelle Version zu aktualisieren. Details:
Modellkarte, Abschnitt 2e.

Notice (4 Nov 2026): This version contains learned data (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json) whose training or measurement data partly has
no documented provenance or clearance. From 1.19.0
on, these files are removed, and the app shows the kind of evidence instead of measured percentages. We recommend
updating to the current version. Details:
model card, section 2e
(German).

Prüfsummen: Bosch MED17/EDC17-Blockverfahren (neu: Werkzeuge → EDC17/MED17-Prüfsummenblöcke prüfen / korrigieren …)

  • Neues Modul core/edc17_checksum.py liest die selbstbeschreibenden Bosch-Prüfsummenblöcke (Signatur
    FADECAFE/CAFEAFFE), rechnet TriCore-Flash-Adressen (0x8/0xA-Alias) auf Dateioffsets um und rechnet die drei
    dokumentierten Verfahren nach: CRC32 (reflektiert, Startwert 0xFADECAFE, gespeichert als Komplement),
    ADD32 (Dword-Summe) und ADD16 (16-Bit-Wortsumme mit dokumentiertem Schlusswort). Ein Block gilt nur als
    nachgewiesen, wenn er den gespeicherten Wert aus dem unveränderten Original exakt reproduziert; aus dem
    Familiennamen wird nichts geschlossen.

  • Korrektur nur für additive Blöcke (ADD32/ADD16) über ihr Kompensationswort, mit Byte-Vorschau, Endprüfung und
    Rücknahme. CRC32-Blöcke werden nur geprüft (könnten Signaturen/Sicherheitsfelder abdecken – bewusst nicht
    angefasst). Keine Signatur-Umgehung, keine Flashfreigabe.

  • Der Prüf-/Exportbericht (audit_export) warnt jetzt auch bei falschen EDC17/MED17-Blockprüfsummen.

  • Korrektur schreibt alle Kompensationswörter in einem Undo-Schritt: ein einziges Strg+Z nimmt die gesamte
    Korrektur zurück (vorher nur das zuletzt geschriebene Feld).

  • Eindeutiger Prüfstatus vollständig / teilweise / nicht prüfbar: check_current/verify und die Oberfläche
    weisen nicht am Original nachgewiesene Strukturen jetzt klar als ungeprüft aus, statt für einige Strukturen einen
    positiven Status zu zeigen.

  • Strengere Grenzprüfung: Jede Prüfsummenstruktur muss vollständig innerhalb ihres Blocks liegen; Strukturen
    beschädigter/ungewöhnlicher Dateien, deren Bereich aus dem Block fällt, gelten als „nicht prüfbar“ und erzeugen
    keinen irreführenden Treffer und kein Schreibziel.

  • tools/validate_pair misst zusätzlich die EDC17/MED17-Prüfsummenabdeckung (nicht nur die Kennfelderkennung).

  • Herkunft des Blockformats: öffentlich dokumentiertes Bosch-Layout, gegengeprüft am MIT-lizenzierten
    medc17-checksum-tool (Connor Howell). Die Mechanik ist synthetisch im Bosch-Format end-to-end getestet
    (tests/test_edc17_checksum.py, u. a. unabhängige CRC-Gegenrechnung). Ein OEM-Nachweis an echter EDC17CP09-
    Firmware steht aus – es liegt keine echte Firmware im Repository
    (siehe docs/ECU_SUPPORT.md). EDC17/MED17-
    Korrekturen sind ohne einen SHA-256-gebundenen OEM-Nachweis gesperrt; Teilstrukturen werden nie korrigiert.

  • EDC16U1/U31/U34: selbstbeschreibende FADECAFE/CAFEAFFE-Bereiche mit BE-DWORD-Summe 0xD01FE500 werden
    geprüft und nur nach vollständigem Originalnachweis sowie OEM-Freigabe korrigiert. Ohne OEM-Eintrag bleibt die
    Funktion bewusst im Prüfmodus.

  • OEM-Freigaben akzeptieren nicht mehr nur Metadaten: checksum_validation.py verlangt mindestens zwei
    verschiedene vertrauenswürdige Ed25519-Signaturen über eine kanonische, SHA-256-gebundene Bescheinigung und
    einen Hash der Evidenz. Die menschliche Unabhängigkeit bleibt ein Review-Prozess und wird nicht behauptet.

  • Hinweisbalken nach dem Öffnen: Siemens-Dateien ohne Bosch-EPK (MS41/MS42/MS43, GS20) galten als „nicht
    bestimmbar“, obwohl die App sie an ihren Softwaremarkern erkennt (Titelzeile). Die Erkennung nutzt diese Marker
    jetzt auch für Hinweisbalken, Kennungsanzeige und Unterstützungsstatus.


Installation: ECU-Studio-AI-<version>-windows-x64.zip entpacken und ECU-Studio-AI.exe starten, oder den
Installer ECU-Studio-AI-<version>-setup.exe ausführen. Bestehende Installationen bieten das Update automatisch an.

Windows-Warnung beim ersten Start: Die EXE ist noch nicht code-signiert. Bei „Der Computer wurde durch Windows
geschützt“ auf „Weitere Informationen“ → „Trotzdem ausführen“ klicken. Echtheit prüfen: SHA-256 gegen die
.sha256-Datei, Build-Herkunft mit gh attestation verify <datei> --repo PCTestAdmin/ECU-Studio-AI.

ECU Studio AI 1.16.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 17:40

Hinweis (04.11.2026): Diese Version enthält gelernte Daten (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json), deren Trainings- bzw. Messdaten teilweise
keine dokumentierte Herkunft oder Freigabe haben. Ab 1.19.0
sind diese Dateien entfernt, und die App zeigt statt gemessener Prozentwerte die Art des Belegs. Wir empfehlen,
auf die aktuelle Version zu aktualisieren. Details:
Modellkarte, Abschnitt 2e.

Notice (4 Nov 2026): This version contains learned data (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json) whose training or measurement data partly has
no documented provenance or clearance. From 1.19.0
on, these files are removed, and the app shows the kind of evidence instead of measured percentages. We recommend
updating to the current version. Details:
model card, section 2e
(German).

⚠️ Bitte diese Version einmal von Hand installieren (Installer …-setup.exe oder ZIP), wenn du 1.15.0 oder
1.16.0 nutzt: Deren Update-Funktion installiert nichts (siehe unten). Ab 1.16.1 funktioniert das Update aus der App.

  • Automatisches Update repariert: Die App startete das Update-Programm mit einer Windows-Option, bei der
    Windows PowerShell sofort beendet, ohne das Skript auszuführen – das Update meldete keinen Fehler, die alte
    Version blieb. Betroffen: alle Updates aus der App bis einschließlich 1.16.0. Wer 1.15.0 oder 1.16.0 nutzt,
    muss diese Version einmal von Hand installieren
    (Installer oder ZIP); danach funktioniert das Update aus der App.
    Ein neuer Test startet das Update-Programm genau wie die App und prüft, dass das Skript wirklich läuft.
  • Update-Prüfung bei jedem Start (bisher höchstens einmal am Tag): Wurde kurz vor einer Veröffentlichung geprüft,
    blieb die neue Version bis zu 24 Stunden unsichtbar (so bei 1.16.0). Während die App läuft, weiter einmal täglich.
  • Messung ohne A2L (validate_pair DATEI.bin --family …): Kennung, Funde je Konfidenz und Laufzeit; Familie wird
    „experimentell“, nie „validiert“. Ergebniszeilen heißen nach Familie und Hash, nicht nach dem Dateinamen.
  • Signaturschlüssel-Erzeugung gibt Pfad und Inhalt der Schlüsseldatei nicht mehr aus (CodeQL-Hinweis).
  • README mit englischer Kurzfassung.

Installation: ECU-Studio-AI-<version>-windows-x64.zip entpacken und ECU-Studio-AI.exe starten, oder den
Installer ECU-Studio-AI-<version>-setup.exe ausführen. Bestehende Installationen bieten das Update automatisch an.

Windows-Warnung beim ersten Start: Die EXE ist noch nicht code-signiert. Bei „Der Computer wurde durch Windows
geschützt“ auf „Weitere Informationen“ → „Trotzdem ausführen“ klicken. Echtheit prüfen: SHA-256 gegen die
.sha256-Datei, Build-Herkunft mit gh attestation verify <datei> --repo PCTestAdmin/ECU-Studio-AI.

ECU Studio AI 1.16.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 16:32

Hinweis (04.11.2026): Diese Version enthält gelernte Daten (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json), deren Trainings- bzw. Messdaten teilweise
keine dokumentierte Herkunft oder Freigabe haben. Ab 1.19.0
sind diese Dateien entfernt, und die App zeigt statt gemessener Prozentwerte die Art des Belegs. Wir empfehlen,
auf die aktuelle Version zu aktualisieren. Details:
Modellkarte, Abschnitt 2e.

Notice (4 Nov 2026): This version contains learned data (candidate_model.json,
ms43_430069_structure_model.json, confidence_calibration.json) whose training or measurement data partly has
no documented provenance or clearance. From 1.19.0
on, these files are removed, and the app shows the kind of evidence instead of measured percentages. We recommend
updating to the current version. Details:
model card, section 2e
(German).

Kennfelderkennung (alt → neu, gleiche Referenzen und gleiche Messmethode; Test = nie zum Einstellen verwendet)

  • Siemens MSD85 · Test: exakt 148 → 279 von 1026, Präzision 74 → 81 %.
  • Siemens MSD80 · Test (6 Stände, davon 4 neu als Testpaare): exakt 133–143 → 217–224 von 864, Präzision 77–78 → 81–82 %.
  • Bosch EDC16C35 / EDC16C31: exakt 111 → 283 / 123 → 272, Präzision 66 → 81 % / 71 → 82 %, Abdeckung 80 / 84 %.
  • Bosch EDC17CP09: exakt 157 → 463 von 703, Präzision 71 → 85 %; BMW ME9.2.1 109 → 170, ME9 41 → 98; BMW MSS54 69 → 97.
  • Bosch MED17.1.62 (6 Stände, Teil-XDF): exakt 49–64 → 121–145.
  • Kopf-Datensätze (Anzahl, Achsen, Werte) werden auch mit flachen oder groben Werten erkannt; Größe und Achsen belegt
    der Kopf (eigene Evidenzklasse header:nxny:shape, gemessen 98 % Treffer). Verrauschte Datensätze nur innerhalb einer
    Kette direkt aneinanderliegender Datensätze. Gelockerte Achsenregel nur bei 16-Bit-Zählern: auf Zufallsdaten,
    komprimierten und gelöschten Daten 0 Kandidaten (Negativkontrolle, 13 Dateien).
  • Belegte Funde (Kopf-Datensatz, Code-Verweis, Deskriptor) gewinnen Überlappungen gegen reine Glattheits-Kandidaten –
    außer ihr Kopf liegt im Inneren einer früher beginnenden Tabelle – und werden nicht mehr vom Ergebnislimit abgeschnitten.
  • Vorzeichen: bei gleich guter Lesart wird s16 nur gewählt, wenn die Bytes negative Werte enthalten.
  • Konfidenz neu kalibriert, nur auf Entwicklungs- und Trainingspaaren (Testdaten nicht mehr in der Kalibrierung).

Roadmap mit Clips

  • Jede neue Funktion in der Roadmap mit kurzem GIF-Clip und Version (wie bei Feature-Listen kommerzieller Editoren).
    Die Clips sind echte Aufnahmen der App: tools/feature_clips.py bedient das Hauptfenster offscreen, zeichnet
    Mauszeiger und Klicks ein und schreibt GIFs mit einem eigenen Encoder (tools/gif_writer.py, nur NumPy).
  • Vorführdatei core/showcase.py: synthetische Kopf-Datensätze, keine Herstellerdaten.

Englische Oberfläche

  • Komplette Oberfläche auf Englisch: Menüs, Werkzeugleiste, Dialoge, Meldungen, Statuszeile, Kennfeldliste, Prüfberichte.
    Auswahl unter Einstellungen → Sprache / Language (Standard: Systemsprache, deutsche Systeme bleiben deutsch).
  • Auch gezeichnete Ansichten (Heatmap, 3D, Kurven, Speicheratlas) und zusammengesetzte Statuszeilen
    („16 × 16 · u16 · Unbekannt“) werden übersetzt.
  • Übersetzungskatalog recognition/data/i18n/en.json (1792 Texte); tools/i18n_extract.py sammelt neue Texte aus dem
    Quellcode, ein Test verhindert unübersetzte Texte. Auswahlfelder zeigen Englisch, Projekte und Programmlogik bleiben
    sprachunabhängig.

Rechtlich saubere Referenzdaten

  • Recherche nach rechtmäßig verfügbaren Original/Definition-Paaren für MD1, MG1, Simos, SID, MED17.5/17.7: keine gefunden
    (öffentliche Uploads Dritter ohne Lizenz wurden nicht heruntergeladen; Begründung in docs/ECU_SUPPORT.md).
  • Neu: tools/tunerstudio_image.py – Kalibrierabbild + vollständige Referenz aus TunerStudio-Definition (.ini) und
    Abstimmung (.msq) für offene Steuergeräte (Speeduino, rusEFI, MegaSquirt); sichere Ausdrucksauswertung ohne eval,
    versionsgenaue Definition wird erzwungen.
  • Speeduino gemessen (14 offizielle Abstimmungen, GPL-2.0/CC BY-NC 4.0): ohne Definition nur 0–2 von 18–20 Tabellen
    exakt – Tabellen liegen vor ihren Achsen ohne Anzahl-Kopf. Ein Scanner dafür wurde gebaut, gemessen und verworfen
    (auf anderen Familien hunderte Fehlfunde). Status „teilweise“.
  • Unterstützungsmatrix: „validiert“ verlangt jetzt zusätzlich ≥ 20 % exakt gefundene Referenztabellen; Siemens MS45
    und MS42 stehen damit ehrlich auf „teilweise“.

Neue Steuergeräte-Familien validierbar machen

  • Identifikation erkennt zusätzlich Klartext-Kennungen von Continental/Siemens (Simos, SID, MSV, MSD) und MD1/MG1;
    auf den 27 Referenzdateien keine falsche Familie. Matrix-Zuordnung fällt auf die übergeordnete Familie zurück
    (SIMOS18.1 → Simos 18).
  • Neu: tools/validate_pair.py – ein Befehl misst für ein Original + passende A2L Kennung, exakte Kennfelder, Typ,
    Achsen, Präzision und Fehlfunde und schreibt eine Ergebniszeile; support_matrix übernimmt sie (auch für Familien
    ohne bisherige Messung). MD1, MG1, Simos, SID, MED17.5/17.7 bleiben nicht validiert, bis echte Paare gemessen sind.

Vertrauen: signierte Updates

  • Ed25519-Signaturen nach RFC 8032 (reines Python, gegen die RFC-Testvektoren geprüft, keine neue Abhängigkeit).
  • Release-Workflow signiert ZIP und Installer, sobald das Secret UPDATE_SIGNING_KEY existiert; ist ein öffentlicher
    Schlüssel im Repository, fehlt aber das Secret oder passt es nicht, bricht der Release ab.
  • Die App verlangt eine gültige Signatur, sobald ein öffentlicher Schlüssel eingebaut ist – geprüft wird vor dem
    Download, gebunden an Dateiname und SHA-256. Einrichtung: docs/RELEASE.md → „Signierte Updates einrichten“.

Prüfsummen (neu: Werkzeuge → Prüfsummen-Tabellen der Datei prüfen / korrigieren …)

  • Selbstbeschreibende Prüfsummen-Tabellen (Start, Ende, Wert, ~Wert) werden gefunden; ein Block gilt nur als bewiesen,
    wenn ein Verfahren den gespeicherten Wert am unveränderten Original exakt reproduziert (Basisadresse, Byte-Reihenfolge
    und Verfahren kommen aus der Datei, nicht aus einer Familienliste).
  • Gemessen an Originaldateien: ME7.5 (2 Stände) 68/68 und 70/70 Blöcke, ME7 Volvo 51/52 und 67/68, MED9 66/68, ME9 63/63
    (32-Bit-Wortsumme). EDC16C31/C35 und EDC17CP09: Die gefundenen Einträge sind offenbar keine Prüfsummen
    (Füllmuster, unplausible Bereiche); kein Verfahren reproduziert sie – keine Korrektur.
  • Korrektur mit Byte-Vorschau, verketteter Blöcke in mehreren Durchgängen, Endprüfung aller Blöcke, sonst Rücknahme;
    rückgängig machbar. Prüfbericht vor dem Export warnt bei falschen Tabellen-Prüfsummen. Signaturen (z. B. RSA) und
    weitere ECU-Prüfungen sind nicht abgedeckt – keine Flashfreigabe.

Arbeitsoberfläche

  • Hinweisbalken nach dem Öffnen: erkanntes Steuergerät mit Fundstelle und gemessener Unterstützungsstatus
    (z. B. „Bosch EDC17CP09 … validiert – 463 von 703 Kennfeldern exakt, Präzision 85 %“), Knopf zur Matrix.
  • Kennfeldkatalog: Filter nach gemessener Konfidenz (gesichert / wahrscheinlich / Vermutung / geprüft bzw. aus Definition).
  • Tastenkürzel: Strg+G war doppelt belegt; Funktionsgraph jetzt Strg+Umschalt+U (ein Test verhindert Doppelbelegungen).

ORI/MOD-Vergleich

  • Neuer Reiter „Außerhalb bekannter Kennfelder“: geänderte Bereiche, die zu keinem Katalog-Kennfeld gehören
    (zusammengefasst bei Lücken bis 16 Byte, größte zuerst), Doppelklick springt zur Stelle – dort stecken oft
    unbekannte, aber angepasste Tabellen.
  • Neuer Reiter „Differenz-Heatmap“: Änderung je Zelle (MOD − ORI, roh) für das gewählte Kennfeld, rot höher, blau niedriger.

Kennfeldnamen aus Schwesterständen (neu: Werkzeuge → Softwarestände: Namen aus Schwesterstand übernehmen …)

  • Namen und Layouts einer Definition (XDF/A2L/RomRaider/CSV) werden auf einen verwandten Softwarestand ohne Definition
    übertragen: Ausrichtung über Anker, die in beiden Dateien genau einmal vorkommen; Vorschlag nur mit Beleg am Zielort
    (identisch · gleicher Kopf · ähnliche Werte · gleiche Umgebung), immer ungeprüft.
  • Gemessen gegen die eigene XDF des Zielstands (tools/name_transfer_benchmark.py): MED17.1.62 404A/H/L, 5 Richtungen,
    60–80 % der gemeinsamen Namen übertragen, davon 92–96 % richtig (über gleiche Adresse allein: 6 %); MSD80-Schwesterstände
    99 % übertragen, 100 % richtig; nicht verwandte ME7.5-Stände: 14 von 110 übertragen (Zurückhaltung statt Raten).
  • Kein Funktionsklassifikator: Namen kommen nur aus einer Definition, nicht aus einem Modell.

Kennlinien (neu: Kennlinien-Datensätze n, X[n], W[n], z. B. Bosch Cur_Xs16Ws16; 1D exakt, alt → neu)

  • Test: MSD85 642 → 1128, MSD80 439 → 839, EDC16C35 562 → 942, EDC16C31 544 → 943 (Präzision 1D 89–96 %).
  • Entwicklung: EDC17CP09 946 → 1668 (93 %), ME9.2.1 385 → 597, ME9 205 → 271, MS45 176 → 200; 2D-Werte unverändert.
  • Nur in Datensatz-Ketten, an geraden Adressen und in der Byte-Reihenfolge, die die Kennfeld-Datensätze der Datei
    dominiert; Achsenketten (Siemens MS4x) werden nicht als Kennlinie gelesen. Eigene Evidenzklasse curve:record
    (gemessen 92 % Treffer). Negativkontrollen weiterhin 0 Kandidaten.

Geschwindigkeit (gleicher Rechner, 16 Kerne; Ergebnisse bitgenau gleich, per Vergleich geprüft)

  • Kennfeldsuche nutzt mehrere CPU-Kerne: Zeilenabstands-Suche je Datenbereich und Lesart in eigenen Prozessen,
    Datensa...
Read more