Files
linux-on-android-without-root/docs/spike-protokoll.md
T
StefanandClaude Opus 5 10851df46a Spike-Protokoll: Gerätefakten und Bootstrap-Ergebnis eingetragen
Bootstrap auf dem OnePlus 7 Pro bestanden. Turnip ist nachweislich aktiv —
vulkaninfo meldet 'Turnip Adreno (TM) 640', also nicht nur installiert, sondern
tatsächlich der genutzte Treiber. Damit steht für S1 der schnellste GPU-Pfad zur
Verfügung, ohne virgl-Proxy.

Beide Stolpersteine sind mit dokumentiert, auch der unschöne: proot-distro
verlangt python3.13, installiert ist 3.14, und weder Nachinstallieren noch
Vollupgrade beheben das — die Paketquelle liefert einen unstimmigen Satz. Der
Verweis python3.13 auf 3.14 ist ein Behelf und steht als solcher im Protokoll,
samt Hinweis, dass er beim nächsten Update von proot-distro wieder aufbrechen kann.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-10 22:00:25 +02:00

5.0 KiB
Raw Blame History

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.)