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:
@@ -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.)_
|
||||
Reference in New Issue
Block a user