Files
linux-on-android-without-root/docs/spike-protokoll.md
T
StefanandClaude Opus 5 ad2c98443b 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>
2026-08-09 17:25:36 +02:00

147 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.)_