docs(android-agent): Push OHNE Google — self-hosted ntfy/UnifiedPush

Klargestellt: FCM (Google) ist NUR eine Option, keine Pflicht. Akkuschonender
Push geht self-hosted via UnifiedPush + ntfy auf dem ARIA-Server (laeuft auch auf
Custom-ROMs ohne Play Services). Fuer ein dediziertes Ziel-Handy ist der eigene
RVS-Socket (Weg A) oft die einfachste Dauerloesung. Empfehlung entsprechend
angepasst: A -> Push-Hybrid mit ntfy, FCM nur optional.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-09-24 19:50:14 +02:00
co-authored by Claude Opus 4.8
parent b2fd8d8953
commit 558afee239
+25 -20
View File
@@ -61,30 +61,35 @@ Zwei Wege, deine WhatsApp-Intuition trifft ins Schwarze:
- **Reutzt unser bestehendes `host_hello`/`host_command`/`host_result` 1:1.** - **Reutzt unser bestehendes `host_hello`/`host_command`/`host_result` 1:1.**
- Nachteil: etwas Akku; manche OEMs killen trotzdem → „Autostart" manuell erlauben. - Nachteil: etwas Akku; manche OEMs killen trotzdem → „Autostart" manuell erlauben.
**B) Push (Firebase Cloud Messaging)** — genau wie WhatsApp/Telegram: **B) Self-hosted Push (KEIN Google!)** — genau wie WhatsApp, aber auf eigenem Server:
- Kein 24/7-Socket. Die App registriert sich bei FCM; will ARIA etwas, schickt - **UnifiedPush + self-hosted ntfy**: Auf dem ARIA-Server läuft **ntfy** (freier,
der **Server einen Push** → Android weckt die App (auch aus Doze) → sie holt self-hostbarer Push-Server). Der Agent nutzt **UnifiedPush** (offener Standard,
den Befehl vom RVS, führt ihn aus, antwortet. Da der Agent primär **empfängt**, de-Google-Welt/F-Droid) mit dem ntfy-Distributor auf dem Handy. Will ARIA etwas,
passt das perfekt und ist akkuschonend/zuverlässig. POSTet die Bridge/RVS an ntfy → weckt die App → sie holt den Befehl vom RVS,
- Nachteil: braucht **Firebase-Projekt** + **Google Play Services** aufm Gerät + arbeitet, antwortet. **Läuft auch auf Custom-ROMs OHNE Google Play Services.**
einen **Push-Auslöser serverseitig** (RVS/Bridge feuert bei `host_command` einen - Akkuschonend wie FCM, aber ohne jede Google-Abhängigkeit. Nur ein Dienst mehr
FCM-Push an das Ziel-Gerät). Mehr Plumbing. (ntfy) im Stack + der Push-Auslöser serverseitig.
**C) Hybrid (ideal, End-Ausbau):** Im Leerlauf nur Push (max. Akku). Ein Push **C) FCM (Google) — optional:** Wer ein Stock-Android mit Play Services hat und
weckt die App → sie öffnet die RVS-Verbindung, hält sich per Wakelock für die Googles Push-Kanal will, kann FCM statt ntfy nehmen (bester Akku auf GMS-Geräten).
Interaktion wach (mehrere Befehle flüssig, z.B. E-Mail-Setup durchklicken) → Braucht Firebase-Projekt + Play Services. **Nur eine Option, keine Pflicht.**
schläft nach ein paar Sekunden Ruhe wieder ein. So WhatsApp-Akku UND schnelle
Multi-Befehl-Sessions.
FCM braucht: **Firebase-Projekt**, **Google Play Services** aufm Gerät (nicht auf **Custom-ROM ohne Google:** → Weg **A** (eigener Socket) oder **B** (self-hosted
de-googelten ROMs / manchen Huawei), und einen **Push-Auslöser serverseitig** ntfy). Beide brauchen KEIN Google. Für Stefans dediziertes Ziel-Handy ist **A**
(Bridge/RVS ruft FCM, wenn ein `host_command` fürs Gerät ansteht). Erste Push- sogar oft die einfachste Dauerlösung (unser eigener „Push" über den RVS-Socket).
Latenz aus tiefem Doze: ~1–3 s; danach bleibt der Socket während der Session offen.
**Hybrid (ideal, End-Ausbau):** Im Leerlauf nur Push (max. Akku). Ein Push weckt
die App → sie öffnet die RVS-Verbindung, hält sich per Wakelock für die Interaktion
wach (mehrere Befehle flüssig, z.B. E-Mail-Setup durchklicken) → schläft nach ein
paar Sekunden Ruhe wieder ein. So WhatsApp-Akku UND schnelle Multi-Befehl-Sessions.
Der Push kommt dabei von **B (self-hosted ntfy)** oder C (FCM) — freie Wahl.
Erste Push-Latenz aus tiefem Doze ~1–3 s; danach bleibt der Socket die Session offen.
**Empfehlung:** Meilenstein 1–3 mit **A (Foreground-Service)** — läuft sofort und **Empfehlung:** Meilenstein 1–3 mit **A (Foreground-Service)** — läuft sofort und
nutzt alles Vorhandene, damit wir schnell einen funktionierenden Agenten haben. nutzt alles Vorhandene, damit wir schnell einen funktionierenden Agenten haben, ganz
Dann **C (Push-Hybrid)** als Akku-Ausbau. Action-Set/Protokoll bleiben identisch, ohne externe Dienste. Dann **Push-Hybrid mit self-hosted ntfy (B)** als Akku-Ausbau —
nur der Wecker (Dauer-Socket → Push+Session-Socket) ändert sich. KEIN Google. FCM (C) nur optional für Stock-Android. Action-Set/Protokoll bleiben
identisch, nur der Wecker ändert sich.
## Sicherheit ## Sicherheit