Guten Morgen,
Das hört sich schon Mal gut an. Jetzt gibt es verschiedene Möglichkeiten. Vorab; hast du probiert was passiert wenn du paar Meter (in einem sicheren Umfeld) mal fährst. (App läuft oder geht in den Hintergrund mit Warnung ) --> Die App läuft weiterhin, sprich unterwegs Filme gucken, etc. ist kein Problem.
Custom Launcher Starten -- muss bei jedem System restart neu gestartet werden. --> Aktuell ja
App decompilieren anpassen neu compilieren. --aufwendig, aber sollte es ermöglichen die App für den Stand startbar zu machen (auch für die Fahrt möglich, aber aus Gründen ist das nicht zu empfehlen) --> Nur für Apps installieren nicht notwendig aber wohl nützlich das die Assistenssysteme dauerhaft deaktiviert sind und man sie händisch aktivieren kann. Könnte mir aber auch hier vorstellen das dies Probleme mit OTA Updates, TÜV etc. geben kann.
Via root Rechte die Launcher Database händisch erweitern -- wahrscheinlich nicht möglich, da ich nicht davon ausgehen daß das system ganz offen ist (ich hoffe doch Mal aus diversen Gründen sehr, da man als shady Individum da schon viel schmu machen kann) --> Man kann via ADB die App als Systemapp deklarieren, dann ist sie auch im Menü. Ich weiß aber nicht in wie fern das dann Probleme mit den OTA Updates geben kann.
Was aber nicht möglich ist: In die ECU einzugreifen, Lenkung, etc.
Hast du irgendwas gefunden, um die API freizugeben? --> Nein
Es muss ja eine geben, sonst würde die eigene App nicht funktionieren. --> Die App ist ja quasi nur die Fernbedienung für z.B. das Klimasteuergerät. Die App arbeitet hier aber nicht mit einer API Schnittstelle, sondern mit CAN ID's. Als Beispiel: Du stellst die Lüfter auf Stufe 3 dann wird meinetwegen die CAN ID x1080 Bit 4 von 0 auf 1 geändert. Damit weiß das Klimasteuergerät dann, das die Lüftung auf Stufe 3 gestellt werden soll. Ich bin aktuell dabei Enode für das Auto einzurichten, da ich A Better Routeplanner nutzen möchte mit akutellen Daten aus dem Fahrzeug wie SoC und Geschwindigkeit etc. Die bekommt man aktuell zuverlässig aus dem OBD, muss dann aber noch in Enode implementiert werden.