Das ist die App, die über die Headunit sämtliche Einstellungen an der TBox vornimmt, damit die LTE-Bridge eine verbindung zur TBox und zum Backend aufbauen kann
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Timo Erdbrügger abf5b10458
All checks were successful
Build APK / build (push) Successful in 1m38s
release: APK entschlackt — keine fixen key_* mehr
Die nutzer-spezifischen Schluessel erzeugt jetzt das Backend bei der Konto-Erstellung;
die AiwaysApp deployt sie per :9000 /file. Entfernt: key_OPENAIWAYS,
key_OPENAIWAYS_expiretime, ac_public_key.pem (Assets + FTP-Deploy, PEM_DIR/KEY_FILES).
Die Head-Unit provisioniert nur noch TBox-Infrastruktur: Daemon + Config(api_token) +
fota-Autostart + QR.
2026-09-01 14:54:22 +02:00
.forgejo/workflows CI: bei Build das aktuelle tbox_daemon-Binary ziehen + per Dispatch releasebar 2026-09-01 00:53:19 +02:00
app release: APK entschlackt — keine fixen key_* mehr 2026-09-01 14:54:22 +02:00
gradle/wrapper HeadUnit-Provisioning-App v0.1: Wizard + TBox-Deploy + QR 2026-08-31 16:28:33 +02:00
.gitignore HeadUnit-Provisioning-App v0.1: Wizard + TBox-Deploy + QR 2026-08-31 16:28:33 +02:00
build.gradle HeadUnit-Provisioning-App v0.1: Wizard + TBox-Deploy + QR 2026-08-31 16:28:33 +02:00
claude_initial_setup.txt claude_initial_setup.txt hinzugefügt 2026-08-31 16:21:12 +02:00
gradle.properties HeadUnit-Provisioning-App v0.1: Wizard + TBox-Deploy + QR 2026-08-31 16:28:33 +02:00
gradlew HeadUnit-Provisioning-App v0.1: Wizard + TBox-Deploy + QR 2026-08-31 16:28:33 +02:00
gradlew.bat HeadUnit-Provisioning-App v0.1: Wizard + TBox-Deploy + QR 2026-08-31 16:28:33 +02:00
README.md assets: tbox_daemon v1.0.20 (Keep-Awake-Fix + MQTT-Merge) 2026-09-01 00:49:42 +02:00
settings.gradle HeadUnit-Provisioning-App v0.1: Wizard + TBox-Deploy + QR 2026-08-31 16:28:33 +02:00

HeadUnit TBox Provisioning

Provisioning-App für die Aiways Head-Unit (Android 4.4.2 / API 19). Wird per USB-Stick installiert und richtet in einem Erststart-Wizard die TBox komplett ein.

Nachfolger/Erweiterung von BLEAppProvisioning (die nur die BLE-key_*-Files schrieb) — diese App macht das gesamte Setup.

Ablauf

  1. Wizard (Erststart): erfasst

    • WLAN-SSID der TBox — vorbelegt MyAiways-XXXXX (5 Zufallszeichen), editierbar,
    • WLAN-Passwort — vorgeneriert (12 Zeichen), editierbar (831 Zeichen),
    • Backend-URL — Default https://aiways.it-perspective.de.
  2. „Fertig TBox einrichten" → schreibt per FTP (root:oelinux123@<TBox-IP>:21) auf die Box:

    • BLE-Schlüssel key_OPENAIWAYS, key_OPENAIWAYS_expiretime, ac_public_key.pem/usrdata/pem,
    • unseren Telemetrie-Daemon tbox_daemon (statisches armv7-Binary, als Asset eingebettet) → /usrdata/tbox_daemon (+x via SITE CHMOD),
    • dessen Config aus den Wizard-Werten → /usrdata/tbox_daemon.conf.

    Das eingebettete Asset app/src/main/assets/tbox_daemon ist derzeit v1.0.20. Bei Daemon-Updates neu ziehen:

    curl -fL -o app/src/main/assets/tbox_daemon \
      https://forgejo.timo-erdbruegger.de/aiways/tbox_daemon/releases/download/v1.0.20/tbox_daemon-v1.0.20-armv7
    
  3. Zeigt einen QR-Code, den die AiwaysApp scannt. Payload (JSON):

    {"v":1,"type":"aiways-provision","backend":"…","ap_ssid":"…","ap_key":"…","tbox_ip":"…"}
    

    Damit weiß die App, welches Backend sie nutzt und wie sie in den TBox-AP kommt.

Die TBox-IP ist per Default 192.168.1.1; „TBox suchen" scannt das lokale Netz nach offenem FTP (:21).

Bauen

Reines Java, kein AndroidX, einzige Dependency com.google.zxing:core (QR). Gebaut wie die anderen Repos über die Forgejo-CI (.forgejo/workflows/build-apk.yml): AGP 8.5.2, Gradle 8.7, JDK 17, assembleDebug. Ein Commit mit dem Wort release erzeugt automatisch ein Release mit der APK (Tag vX.Y.Z, Patch zählt hoch).

Lokal:

./gradlew assembleDebug
# -> app/build/outputs/apk/debug/app-debug.apk

Deployen (auf die Head-Unit)

APK per USB-Stick auf die Head-Unit kopieren und installieren (Gerät ist gerootet, im selben Netz wie die TBox). App starten → Wizard.

Noch offen (Folge-Issues)

  • Daemon-Autostart auf der TBox (idempotenter Block in fota.sh) — aktuell wird der Daemon nur abgelegt/ausführbar gemacht, nicht automatisch gestartet.
  • QR-Scan in der AiwaysApp: Gegenstück implementieren (Payload-Vertrag oben), inkl. des optionalen Konto-Anlege-Pfads (in der App bisher deaktiviert).
  • ESP32-S3-LTE-Provisionierung über dieselben Daten — Hardware liegt noch nicht vor, der QR-Payload ist aber schon so gestaltet, dass er später erweitert werden kann.
  • Hardware-End-to-End-Test am echten Fahrzeug.

Sicherheit

Die App läuft nur im lokalen TBox-Netz. FTP-Zugang (oelinux123) ist der Werks-Default der Box. Die erzeugten AP-Credentials stehen im QR-Code (bewusst — der Installateur scannt ihn direkt) und in /usrdata/tbox_daemon.conf (chmod 600). Keine echten Secrets im Repo.