# 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 — `GM1913` / `OnePlus7Pro` | | SoC | Snapdragon 855 (`SM8150`, Plattform `msmnile`) | | GPU | Adreno 640 — **Turnip aktiv**, laut `vulkaninfo`: `Turnip Adreno (TM) 640` | | RAM | 11 GiB | | Freier Speicher | ~19,9 GB unter `$PREFIX` | | ROM | Stock OxygenOS 12 (Android 12, SDK 31) | | Kernel | 4.14.180-perf+ | | Rootfs | Debian 13.3 (Trixie) über proot-distro | | Display | 3120 × 1440, virtuelle Auflösung im Test: _(ausfüllen)_ | | Akku | 4000 mAh, Baujahr 2019 — getauscht? _(ausfüllen)_ | | Datum des Tests | _(ausfüllen)_ | **Bootstrap: bestanden.** Zwei Stolpersteine unterwegs, beide gelöst und im Skript abgefangen: - `libmagic` gegen `file 5.47`: Dateikonflikt aus einer Paketaufteilung, aufgelöst mit `--force-overwrite`. - `proot-distro` verlangt `python3.13`, installiert ist `python3.14`. Weder Nachinstallieren noch Vollupgrade haben das behoben — die Paketquelle liefert hier einen unstimmigen Satz. Behelf: Verweis `python3.13 → python3.14`. **Vertretbar, weil proot-distro reines Python ist, aber nicht sauber** — beim nächsten Update von proot-distro kann es erneut auftreten. ## 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) | **Turnip** — bestätigt im Bootstrap | | 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.)_