Identifizierung des korrekten MCU-Serial-Pfads

In den meisten Android-Headunits erfolgt die Kommunikation zwischen Android und der MCU über eine serielle Schnittstelle. Bevor Tastenevents überwacht oder neu zugeordnet werden können, muss zunächst das korrekte serielle Gerät identifiziert werden.

Ein typisches System kann mehrere serielle Geräte bereitstellen, und nicht alle davon stehen in Zusammenhang mit der MCU. Andere Hardwarekomponenten wie Bluetooth-Module, Radio-Tuner, GPS-Empfänger, Video-Schnittstellen, Mobilfunkmodems oder externe Zubehörgeräte können ebenfalls über serielle Pfade kommunizieren.

Aus diesem Grund führt es selten zum Erfolg, einfach das erste verfügbare serielle Gerät auszuwählen. Stattdessen besteht das Ziel darin, herauszufinden, welcher Prozess welchen Pfad aktiv nutzt, und denjenigen zu identifizieren, der für die MCU-Kommunikation verantwortlich ist.


Nach MCU-Diensten suchen

Die MCU-Kommunikation wird in der Regel von einem dedizierten Systemdienst im Hintergrund verarbeitet. Je nach Hersteller und Android-Firmware kann dieser Dienst Namen haben wie:

  • EventCenter
  • CarService
  • McuService
  • McuDaemon
  • McuManager
  • VehicleService

Der genaue Name variiert je nach Anbieter, aber alle diese Dienste erfüllen eine ähnliche Aufgabe: Sie bilden die Brücke zwischen Android und der MCU.

Beim Untersuchen aktiver serieller Geräte solltest du besonders darauf achten, welcher Prozess das jeweilige Gerät geöffnet hat. Wenn ein serieller Pfad von einem der oben genannten Dienste verwendet wird, ist das ein starkes Indiz dafür, dass dieser Pfad zur MCU gehört.


Andere Geräte ausschließen

Nicht jeder aktive serielle Pfad ist relevant.

Zum Beispiel können folgende Dienste beteiligt sein:

  • Bluetooth-Dienste
  • GPS-Daemons
  • Radio-Anwendungen
  • Mobilfunkmodem-Dienste
  • Videoverarbeitungsdienste
  • externe USB-Zubehörgeräte

Diese Geräte können dauerhaft Daten übertragen und als aktiv erscheinen, stehen jedoch in keinem Zusammenhang mit Lenkradtasten oder CAN-Bus-Kommunikation.

Bei der Bewertung eines seriellen Geräts solltest du immer fragen:

  • Deutet der Prozessname auf fahrzeugbezogene Funktionen hin?
  • Ist der Dienst für Tastenereignisse oder CAN-Bus-Daten verantwortlich?
  • Ändert sich der Datenverkehr, wenn Tasten im Fahrzeug gedrückt werden?

Die Antworten auf diese Fragen helfen schnell dabei, die möglichen Kandidaten einzugrenzen.


Auswahl verifizieren

Sobald ein wahrscheinlicher MCU-Pfad identifiziert wurde, folgt die Verifikation.

Öffne den Live-Monitor und beobachte den eingehenden Datenverkehr, während du Aktionen im Fahrzeug ausführst. Drücke Lenkradtasten, drehe Bedienelemente oder löse andere Fahrzeugfunktionen aus, die bekanntermaßen über die MCU kommunizieren.

Wenn der gewählte Pfad korrekt ist, erscheinen typischerweise unmittelbar nach jeder Aktion neue Byte-Sequenzen.

In manchen Systemen ist der Datenverkehr kontinuierlich, in anderen wird er nur bei Ereignissen übertragen. Beide Verhaltensweisen sind normal und hängen vollständig von der Implementierung des MCU-Herstellers ab.


Wenn mehrere Pfade plausibel wirken

Gelegentlich erscheinen mehrere serielle Geräte als mögliche Kandidaten. Das kann passieren, wenn die MCU mehrere Kommunikationskanäle bereitstellt oder mehrere fahrzeugbezogene Dienste aktiv sind.

In solchen Fällen ist Beobachtung entscheidend. Überwache jeden Kandidatenpfad während wiederholter Tastendrücke und achte auf eine konsistente Beziehung zwischen Aktion und Daten.

Der richtige MCU-Pfad zeigt sich in der Regel durch vorhersehbare und wiederholbare Paketmuster, die direkt den Fahrzeugeingaben entsprechen.


Mit Logik statt mit Vermutung arbeiten

Das Finden des korrekten MCU-Pfads ist oft eher ein Eliminationsprozess als ein einzelner klarer Test.

Achte auf:

  • Welcher Prozess das serielle Gerät besitzt
  • Ob der Dienst fahrzeugbezogen erscheint
  • Ob Tastendrücke neuen Datenverkehr erzeugen
  • Ob die beobachteten Daten strukturierte MCU-Pakete ähneln

Durch die Kombination dieser Beobachtungen lässt sich die richtige MCU-Serial-Schnittstelle in der Regel mit hoher Sicherheit identifizieren – selbst auf Systemen, die bisher nicht dokumentiert wurden.