Aiways Community Headunit UI
  • Java 85.7%
  • Python 9.3%
  • Kotlin 4.1%
  • Shell 0.7%
  • HTML 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
depe e363364c71
Some checks are pending
Build APK / build (push) Waiting to run
Update project files - 2026-10-10 06:58
2026-10-10 06:59:02 +02:00
.forgejo/workflows Update project files - 2026-10-10 06:58 2026-10-10 06:59:02 +02:00
aa-engine aa4: adapt engine integration tests to Cockpit debug clip 2026-10-05 12:27:11 +02:00
aaprobe aaprobe: Pruef-App fuer Wireless Android Auto (Bluetooth-Adapter, AA-RFCOMM, WLAN/P2P 5 GHz, Freescale-H.264 auf Surface/TextureView) - alle Pruefungen nur per Knopf 2026-10-04 23:58:05 +02:00
app 3D: Lichtklinge am Kotfluegel so lang wie im Seitenfoto (TIP_X 300 -> 430) 2026-10-06 20:25:25 +02:00
docs/design Design V1 (Home-Vorlage) + Doku; CI-Retrigger 2026-09-21 16:03:14 +02:00
gradle/wrapper Fundament: eigener Zugriffs-Layer auf den OEM-CanbusService + Cockpit-Skelett 2026-09-21 14:57:13 +02:00
keys Fundament: eigener Zugriffs-Layer auf den OEM-CanbusService + Cockpit-Skelett 2026-09-21 14:57:13 +02:00
sim Update project files - 2026-10-10 06:58 2026-10-10 06:59:02 +02:00
.gitignore gitignore: pycache 2026-09-26 01:36:47 +02:00
build.gradle aa4: vendor AA3 engine with AGPL provenance and KitKat multidex 2026-10-05 12:22:00 +02:00
gradle.properties Fundament: eigener Zugriffs-Layer auf den OEM-CanbusService + Cockpit-Skelett 2026-09-21 14:57:13 +02:00
gradlew Fundament: eigener Zugriffs-Layer auf den OEM-CanbusService + Cockpit-Skelett 2026-09-21 14:57:13 +02:00
gradlew.bat Fundament: eigener Zugriffs-Layer auf den OEM-CanbusService + Cockpit-Skelett 2026-09-21 14:57:13 +02:00
README.md Fundament: eigener Zugriffs-Layer auf den OEM-CanbusService + Cockpit-Skelett 2026-09-21 14:57:13 +02:00
settings.gradle aa4: vendor AA3 engine with AGPL provenance and KitKat multidex 2026-10-05 12:22:00 +02:00

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 (SHA256 7F: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 in keys/.
  • 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 (VehicleService bind/read/control, VehicleSignals IDs).
  • 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).