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>
2.0 KiB
Mitarbeiten
Das Projekt ist noch in Phase 0 (Machbarkeits-Spike). Bis die vier Beweise S1–S4 stehen, kann sich die Architektur noch grundlegend ändern — Beiträge sind trotzdem willkommen, vor allem Geräte-Meldungen.
Am hilfreichsten gerade jetzt
Geräte-Meldungen. Lauf die Skripte aus spike/ auf deinem Gerät und
melde das Ergebnis, egal ob es funktioniert hat. Ein sauber dokumentierter Fehlschlag
ist genauso wertvoll wie ein Erfolg — beides geht in die Kompatibilitätsliste.
Ehernes Gesetz
Zwei Regeln, die keine Ausnahme kennen. Ein Beitrag, der eine davon bricht, wird abgelehnt, egal wie nützlich er sonst ist:
- Der Bridge-Layer auf der Android-Seite ist zustandslos. Er speichert keine Nutzdaten. Alles wird ins Linux durchgereicht und nur dort persistiert.
- Keine Serverabhängigkeit. Das Telefon funktioniert vollständig ohne fremde Infrastruktur. Ein externes Backup-Ziel ist optional und jederzeit abwählbar.
Dazu zwei Regeln, die den Alltag betreffen:
- Kein Root, kein entsperrter Bootloader. Wenn etwas nur mit Root geht, geht es in diesem Projekt nicht.
- Kein Privilegienkanal im Dauerbetrieb. ADB ist ausschließlich für die einmalige Ersteinrichtung vorgesehen. Alles Laufende kommt mit gewöhnlichen App-Berechtigungen aus.
Bevor du etwas vorschlägst
Lies docs/verworfene-entscheidungen.md. Sieben
naheliegende Wege wurden bereits geprüft und begründet verworfen — Waydroid, AVF, SIP,
APK-Daten-Redirect und andere. Wenn du einen davon wiederbeleben willst: gern, aber mit
einem Argument, das dort noch nicht widerlegt ist.
Stil
- Skripte:
bash,set -euo pipefail, deutschsprachige Ausgaben, jeder Schritt protokolliert - Kommentare erklären das Warum, nicht das Was
- Architekturentscheidungen kommen als ADR nach
docs/, nicht in die Commit-Nachricht - Keine Zugangsdaten, Tokens oder Zieladressen im Repo — auch nicht in Beispieldateien