Phase 0: Repo-Gerüst, Dokumentation und Machbarkeits-Spike

Vier Beweise, die das Projekt tragen, als eigenständig lauffähige Skripte:

  S1  Plasma Mobile in proot über genestetes kwin_wayland im X11-Backend.
      Fällt selbsttätig auf startplasmamobile und dann auf XFCE zurück, damit
      ein Fehlschlag eindeutig Plasma zuzuordnen ist und nicht der Umgebung.
  S2  Mikrofon über PulseAudio mit OpenSL-Quelle. Misst den Pegel statt nur die
      Dateigröße — der typische Fehlschlag ist eine formal korrekte WAV-Datei
      voller Stille.
  S3  Virtuelle PipeWire-Kamera per GStreamer-pipewiresink, ohne Kernel-Modul.
      Setzt die Firefox-Einstellung vorab, damit der Test nicht an einem
      vergessenen Häkchen scheitert.
  S4  Intent-Handoff mit lauffähiger Mini-Bridge: xdg-open-Handler für geo:,
      tel: und sms:, Token-Authentifizierung, feste Liste erlaubter Schemata.

provision/provision.sh setzt die Hintergrundbeschränkungen per ADB und benennt,
was ADB nicht kann und von Hand erledigt werden muss.

Dokumentiert sind auch die sieben verworfenen Wege — Waydroid, AVF, QEMU, SIP,
APK-Daten-Redirect, Fenster-Durchreichung und der Android-Server — mit Belegen,
damit sie nicht erneut durchdacht werden müssen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan
2026-08-09 17:25:36 +02:00
co-authored by Claude Opus 5
commit ad2c98443b
21 changed files with 2818 additions and 0 deletions
+146
View File
@@ -0,0 +1,146 @@
# Spike-Protokoll — Phase 0
Ergebnisse der vier Machbarkeitsbeweise. **Dies ist das wichtigste Dokument des
Projekts**, solange Phase 0 läuft: alle folgenden Entscheidungen bauen darauf auf.
Ehrlich ausfüllen, auch und gerade bei Fehlschlägen. Ein sauber dokumentierter
Fehlschlag ist wertvoller als ein geschöntes Ergebnis.
## Gerät
| | |
|---|---|
| Modell | OnePlus 7 Pro (`guacamole`) |
| SoC / GPU | Snapdragon 855 / Adreno 640 |
| RAM / Speicher | _(ausfüllen)_ |
| ROM | Stock OxygenOS 12 (Android 12) |
| Display | 3120 × 1440, virtuelle Auflösung im Test: _(ausfüllen)_ |
| Akku | 4000 mAh, Baujahr 2019 — getauscht? _(ausfüllen)_ |
| Datum des Tests | _(ausfüllen)_ |
## Zusammenfassung
| Beweis | Ergebnis | Konsequenz |
|---|---|---|
| **S1** Plasma Mobile in proot | ⬜ offen | |
| **S2** Mikrofon im Linux | ⬜ offen | |
| **S3** Virtuelle PipeWire-Kamera | ⬜ offen | |
| **S4** Intent-Handoff | ⬜ offen | |
| **Übernacht-Test** Hintergrundbetrieb | ⬜ offen | |
---
## S1 — Plasma Mobile in proot
**Beweisziel:** `kwin_wayland --x11-display` genestet in Termux-X11, darauf
`plasma-mobile`. Startet, reagiert auf Touch, Maliit-Tastatur erscheint.
**Wenn es scheitert:** XFCE-Profil wird Hauptweg. Dann braucht die Kamera
`xdg-desktop-portal-gtk` statt `-kde`, die Tastatur wird `onboard`, und Telefonie
braucht eine eigene Oberfläche statt `plasma-dialer`.
| | |
|---|---|
| Ergebnis | _(offen)_ |
| Startzeit bis Bedienoberfläche | |
| Touch funktioniert | |
| Maliit-Tastatur erscheint | |
| Rotation | |
| Fehlermeldungen | |
---
## S2 — Mikrofon im Linux
**Beweisziel:** PulseAudio in Termux mit OpenSL-Source, `PULSE_SERVER` in den proot,
`parecord` nimmt hörbar auf.
**Wenn es scheitert:** keine Videocalls in Element und im Browser, keine Sprachaufnahme,
keine Spracheingabe. Videotelefonie nur noch nativ auf dem Host per Intent-Handoff.
Deutliche Abwertung des Produkts.
| | |
|---|---|
| Ergebnis | _(offen)_ |
| Verwendetes PulseAudio-Modul | |
| Aufnahme hörbar | |
| Latenz / Aussetzer | |
| Verhalten bei gesperrtem Bildschirm | |
---
## S3 — Virtuelle PipeWire-Kamera
**Beweisziel:** GStreamer-`pipewiresink` mit `media.class=Video/Source` erzeugt einen
Kamera-Node; Firefox mit `media.webrtc.camera.allow-pipewire` sieht ihn auf
`webcamtests.com` und zeigt Bild.
**Wenn es scheitert:** keine Videocalls im Linux, Kamera nur über eine eigenständige App.
| | |
|---|---|
| Ergebnis | _(offen)_ |
| Node erscheint in `wpctl status` | |
| Firefox sieht die Kamera | |
| Bild kommt an | |
| Bildrate / Auflösung | |
⚠️ **Pop-up-Kamera:** Die Frontkamera des OnePlus 7 Pro fährt motorisiert aus. Prüfen,
dass der Node nicht spekulativ die Frontkamera öffnet — das ist Mechanik und Verschleiß.
---
## S4 — Intent-Handoff
**Beweisziel:** Eine Adresse aus dem Linux startet per `geo:`-Intent die Navigation auf
dem Host, mit vorher gestarteter Overlay-Begleit-App.
**Wenn es scheitert:** keine Navigation aus dem Linux-Adressbuch; Host-Apps müssen
manuell über den Task-Manager gestartet werden.
| | |
|---|---|
| Ergebnis | _(offen)_ |
| `geo:`-URI startet Maps | |
| `google.navigation:` startet Turn-by-Turn direkt | |
| Overlay der Begleit-App liegt über Maps | |
| `SYSTEM_ALERT_WINDOW` erteilt | |
| Rückweg ins Linux über Task-Manager | |
---
## Übernacht-Test — Hintergrundbetrieb
**Beweisziel:** Der komplette Stack überlebt eine Nacht mit gesperrtem Bildschirm.
**Wenn es scheitert:** früher Warnschuss für das Gesamtkonzept, kein Detail. OxygenOS 12
basiert auf ColorOS mit aggressiver App-Einfrierung unterhalb der Android-Mechanismen.
| | |
|---|---|
| ADB-Maßnahmen gesetzt (`provision.sh`) | |
| Herstellerseitige Handgriffe erledigt | |
| Prozesse nach 8 h noch da | |
| Akkuverbrauch über Nacht | |
| Was wurde beendet | |
---
## Leistungsmessungen
| Messung | Wert |
|---|---|
| `vkcube` läuft | |
| `glmark2` Score | |
| GPU-Treiberpfad (Turnip / Zink / virgl / Software) | |
| Virtuelle Auflösung | |
| Akku: Leerlauf mit laufendem Stack | |
| Akku: Desktop aktiv | |
| Thermik / Throttling | |
---
## Fazit und Entscheidungen
_(Nach Abschluss ausfüllen: welches Desktop-Profil wird gebaut, welche Fallbacks greifen,
was ändert sich am Plan.)_