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>
96 lines
3.7 KiB
Markdown
96 lines
3.7 KiB
Markdown
# HPOS — Linux-Smartphone auf Stock-Android, ohne Root
|
||
|
||
> Arbeitstitel. Der Projektname steht noch nicht fest.
|
||
|
||
Ein beliebiges gebrauchtes Android-Smartphone wird zum Linux-Telefon: Debian 13 mit
|
||
Plasma Mobile in Termux/proot, mit einem Backup- und Provisioning-System drumherum,
|
||
das die eigentliche Substanz des Projekts ausmacht.
|
||
|
||
**Kein Root. Kein entsperrter Bootloader. Kein Server nötig.**
|
||
|
||
## Was es ist
|
||
|
||
"Linux auf dem Handy" gibt es schon. Was es nicht gibt, ist der Rest:
|
||
|
||
- **Backup mit echten Snapshots** — Einzeldatei-Restore, Web-Manager im Browser,
|
||
ZIP-Export aufs Telefon, Ziele über SFTP/SMB/FTP/WebDAV
|
||
- **Provisioning in einem Rutsch** — Telefon auspacken, eine APK, ~20 Minuten, fertiges System
|
||
- **Klonen aufs neue Telefon per WLAN** — Gerätewechsel als Normalfall, nicht als Notfall
|
||
- **Bridge zum Android darunter** — SMS, Telefonie, Kamera, Sensoren erscheinen im Linux
|
||
über Standard-D-Bus-Schnittstellen, sodass unveränderte Plasma-Anwendungen sie nutzen
|
||
|
||
Die Android-Installation darunter ist nur noch Treiber-Layer und Prozess-Host.
|
||
Alle Nutzdaten leben im Linux und damit im Backup.
|
||
|
||
## Status
|
||
|
||
**Phase 0 — Machbarkeits-Spike.** Vier Annahmen tragen das Projekt und werden zuerst
|
||
bewiesen, bevor Infrastruktur entsteht:
|
||
|
||
| | Annahme | Wenn es scheitert |
|
||
|---|---|---|
|
||
| **S1** | Plasma Mobile läuft in proot (genestetes KWin) | XFCE-Profil wird Hauptweg |
|
||
| **S2** | Mikrofon-Eingang erreicht die Linux-Seite | Keine Videocalls, keine Sprachaufnahme |
|
||
| **S3** | Virtuelle PipeWire-Kamera ohne Kernel-Modul | Kamera nur in einer eigenen App |
|
||
| **S4** | Intent-Handoff Linux → Android-App | Keine Navigation aus dem Linux-Adressbuch |
|
||
|
||
Noch nichts davon ist bewiesen. Die Skripte in [`spike/`](spike/) führen die Beweise;
|
||
Ergebnisse landen in [`docs/spike-protokoll.md`](docs/spike-protokoll.md).
|
||
|
||
## Loslegen
|
||
|
||
Getestet wird auf einem **OnePlus 7 Pro (Snapdragon 855, Adreno 640) mit Stock OxygenOS 12**.
|
||
|
||
```bash
|
||
# 1. Auf dem PC, Telefon per USB, USB-Debugging an:
|
||
./provision/provision.sh
|
||
|
||
# 2. Auf dem Telefon in Termux:
|
||
bash spike/00-bootstrap-termux.sh
|
||
|
||
# 3. Beweise der Reihe nach:
|
||
bash spike/01-s1-plasma-mobile.sh
|
||
bash spike/02-s2-mikrofon.sh
|
||
bash spike/03-s3-pipewire-kamera.sh
|
||
bash spike/04-s4-intent-handoff.sh
|
||
```
|
||
|
||
Details und Voraussetzungen: [`spike/README.md`](spike/README.md).
|
||
|
||
## Dokumentation
|
||
|
||
- [Architektur](docs/architektur.md) — wie die Teile zusammenhängen
|
||
- [Machbarkeit](docs/machbarkeit.md) — was ohne Root geht und was nicht, mit Belegen
|
||
- [Verworfene Entscheidungen](docs/verworfene-entscheidungen.md) — sieben Wege, die
|
||
geprüft und begründet verworfen wurden. **Vor jedem "warum eigentlich nicht …" lesen.**
|
||
- [Spike-Protokoll](docs/spike-protokoll.md) — Messergebnisse von Phase 0
|
||
|
||
## Geräte
|
||
|
||
| Gerät | SoC / GPU | Android | Status |
|
||
|---|---|---|---|
|
||
| OnePlus 7 Pro (`guacamole`) | Snapdragon 855 / Adreno 640 | OxygenOS 12 | 🔬 im Test |
|
||
|
||
Läuft es bei dir? [Geräte-Meldung eröffnen](.github/ISSUE_TEMPLATE/geraet-melden.md).
|
||
|
||
## Lizenz
|
||
|
||
GPLv3 — siehe [LICENSE](LICENSE). Das Projekt verteilt Termux (GPLv3) mit;
|
||
die einheitliche Lizenz erfüllt die Quellen-Angebotspflicht.
|
||
|
||
---
|
||
|
||
# HPOS — a Linux phone on stock Android, no root
|
||
|
||
Turns any second-hand Android phone into a Linux phone: Debian 13 with Plasma Mobile
|
||
inside Termux/proot, wrapped in the backup and provisioning system that is the actual
|
||
point of the project.
|
||
|
||
**No root. No unlocked bootloader. No server required.**
|
||
|
||
Currently in **Phase 0** — proving four load-bearing assumptions (S1–S4 above) before
|
||
any infrastructure gets built. See [`spike/`](spike/) and
|
||
[`docs/spike-protokoll.md`](docs/spike-protokoll.md).
|
||
|
||
Documentation is currently German-first; English will follow once Phase 0 concludes.
|