- Java 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Build APK / build (push) Successful in 1m47s
Test für auto release |
||
| .forgejo/workflows | ||
| app | ||
| gradle/wrapper | ||
| build.gradle | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle | ||
Aiways TBox Provision (Community-APK)
Sideload-App für die Aiways-Head-Unit (Android 4.4.2 / API 19). Schreibt den
gemeinsamen OpenAiways-Public-Key als /usrdata/pem/key_OPENAIWAYS
(+ _expiretime) per FTP auf die TBox. Danach akzeptiert das Fahrzeug die
BLE-Authentifizierung mit dem passenden (community-weit gleichen) Private Key.
Interoperabilität mit dem eigenen Fahrzeug, nachdem Aiways Europe den Dienst abgeschaltet hat. Kein Backend, kein Binary-Patch — nur zwei Dateien schreiben.
Was die App tut
- Standard 192.168.1.1 ist vorbelegt (TBox am
usb0-Link). Abweichend: IP anpassen oder „TBox suchen (:21)" (Scan auf offenen FTP-Port). - „Auf TBox schreiben" lädt
key_OPENAIWAYSundkey_OPENAIWAYS_expiretimeper FTP (root/oelinux123) nach/usrdata/pem/. expiretime = 9999999999999→ der Key ist permanent (überlebt Reconnects/Reboots).
Kein System-/Platform-Signing nötig — die App braucht nur die INTERNET-Permission.
APK bauen (einmalig, dann verteilen)
Variante A — GitHub Actions (kein lokales SDK nötig, kostenlos)
- Repo bei GitHub anlegen und diesen Ordner hochladen (push).
- Tab Actions → Workflow Build APK läuft automatisch (oder „Run workflow").
- Nach ~3–5 Min: Artefakt
aiways-tbox-provision-apkherunterladen →app-debug.apk. - Optional: einen Tag
v1.0pushen → die APK wird als Release veröffentlicht.
Die entstehende app-debug.apk ist debug-signiert und normal installierbar
(„Unbekannte Quellen" auf der Head-Unit erlauben, dann per ES File Explorer öffnen).
Variante B — lokal
./gradlew assembleDebug
# -> app/build/outputs/apk/debug/app-debug.apk
Voraussetzung: Android SDK (Platform 34, Build-Tools), JDK 17.
Installation auf der Head-Unit
app-debug.apkauf einen FAT32-USB-Stick.- Head-Unit: „Unbekannte Quellen" erlauben, ES File Explorer → APK vom USB öffnen → installieren.
- App einmal starten, TBox suchen/IP eingeben, „Auf TBox schreiben".
Danach: BLE-Steuerung
Der zum APK-Key passende Private Key liegt separat (Repo-intern / beim BLE-Client
aichi_ble_client.py --btkey OPENAIWAYS --privkey OPENAIWAYS_private.pem).
Sicherheitshinweis (gemeinsamer Schlüssel)
Alle so provisionierten Fahrzeuge vertrauen demselben Schlüssel. Wer die APK
bzw. den Private Key hat, kann sich per BLE an jedes so eingerichtete Auto anmelden
(physische BLE-Nähe vorausgesetzt). Für ein reines Community-Interop-Tool ist das
ein bewusster Trade-off zugunsten Einfachheit. Wer Einzel-Keys will: die App
key_<ID> on-device generieren lassen (andere Variante — sag Bescheid).
## Projektstruktur
app/src/main/java/net/openaiways/provision/MainActivity.java UI + Scan + Push app/src/main/java/net/openaiways/provision/MiniFtp.java Minimaler FTP-Client app/src/main/assets/key_OPENAIWAYS Public Key (SPKI PEM) app/src/main/assets/key_OPENAIWAYS_expiretime 13 Bytes, permanent .github/workflows/build-apk.yml CI-Build