- Java 85.7%
- Python 9.3%
- Kotlin 4.1%
- Shell 0.7%
- HTML 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
dr_036 kalibriert: die schwarze Klinge hinter dem Scheinwerfer reicht ~34 cm nach hinten (Modell ~12). Dazu Bug: shoulder() suchte im Fenster +-12 mm und traf zwischen die Netzreihen des Front-Moduls (~31 mm Abstand) -> Schulterhoehe falsch, Klinge lief zu frueh spitz aus. Fenster +-20 mm, Spitze ~50 mm unter der Kuppe wie im Foto. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011shUomooZ2agMQJjKmjHpi |
||
| .forgejo/workflows | ||
| aa-engine | ||
| aaprobe | ||
| app | ||
| docs/design | ||
| gradle/wrapper | ||
| keys | ||
| sim | ||
| .gitignore | ||
| build.gradle | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle | ||
HeadUnit Cockpit (Aiways U5)
Eigenes Cockpit-/Launcher-UI für das Infotainment des Aiways U5 (Android 4.4.2,
i.MX6, 800×480 Querformat). Es orchestriert die vorhandenen OEM-Apps (Media, Klima,
Navi, Telefon, Kamera …) und legt ein modernes EV-Cockpit darüber — statt die Software
neu zu bauen. Fahrzeugdaten (SoC, Speed, Türen, Klima) werden gelesen, Klima/Verriegeln/
Licht werden gesteuert — direkt on-device über den OEM-CanbusService.
Plattform & Zugriff (Phase 0)
- Android 4.4.2 / API 19, armeabi-v7a → native Java-App, kein Flutter/AndroidX.
- System-App:
sharedUserId="android.uid.system"+ signiert mit dem öffentlichen NXP/Freescale-i.MX6-Plattform-Test-Key (SHA2567F:BA:E8:17…, exakt der ROM-Key). Das versetzt die App in die System-SELinux-Domain und erlaubt das Binden der OEM- Fahrzeug-Services. Der Key ist öffentlich (kein Geheimnis) und liegt inkeys/. - Zugriff bewiesen (statisch aus dem Dekompilat + empirisch via openaiways.net):
ICanbusService(action.adayo.CANBUSSERVICE/com.adayo.canbus) —getInt/getFloat/getIntArray,sendData,registerCallBack. Volle Signal-/Befehls-Karte:Research/docs/01-headunit/headunit-orchestrierung-phase0.md.
Aufbau
app/src/main/aidl/com/adayo/project/aidl/— originalgetreu nachgebaute OEM-AIDL (ICanbusService,ICanbusCallBack); Methoden-Reihenfolge = Transaction-Codes, DESCRIPTOR exakt.app/src/main/java/net/aiwayscommunity/headunit/vehicle/— Zugriffs-Layer (VehicleServicebind/read/control,VehicleSignalsIDs).app/src/main/java/net/aiwayscommunity/headunit/cockpit/— UI (aktuell Fundament-Screen: SoC/Speed/Außentemp live). Cockpit-Kacheln/Klima folgen (Phase 2).
Bauen
echo "sdk.dir=/pfad/zum/android-sdk" > local.properties
./gradlew assembleDebug # signiert automatisch mit keys/platform.p12
# -> app/build/outputs/apk/debug/app-debug.apk
CI (Forgejo Actions) baut bei jedem Push; Commit-Message mit release erzeugt zusätzlich
ein versioniertes Release (HeadUnitCockpit-vX.Y.Z.apk).
Installieren (koexistierend, reversibel)
Per USB + ES File Explorer bzw. adb install. Beim Home-Tastendruck fragt Android, welcher
Launcher genutzt werden soll — HKLauncher bleibt als Fallback. Zurückschalten jederzeit
über Einstellungen → Apps → Standard-Apps → Startbildschirm.
Roadmap
- Step 1 (dieses Repo): Cockpit-Launcher — Orchestrierung + EV-Daten + aktive Steuerung.
- Step 2 (später): Android-Auto-Empfänger auf der HeadUnit (Handy → Auto-Display).