Termux und seine Plugins teilen sich eine Android-UID (sharedUserId=com.termux). Android verlangt für Apps mit gemeinsamer UID denselben Signaturschlüssel — und F-Droid und GitHub signieren verschieden. Wer die Quellen mischt, scheitert an INSTALL_FAILED_SHARED_USER_INCOMPATIBLE, ohne dass die Meldung erklärt warum. Das Skript lädt alle vier Apps von GitHub und installiert sie über die bestehende adb-Verbindung, per WLAN wie per Kabel. Vorhandene Termux-Apps aus fremder Quelle werden erkannt und auf Nachfrage entfernt — mit deutlicher Warnung, dass dabei auch das Termux-Dateisystem verschwindet. GitHub statt F-Droid, weil es dort Termux:X11 in einer sharedUid-Variante gibt. Die läuft in Termux' Prozessgruppe und erbt dessen Akku-Ausnahmen; die normale Variante ist eine eigenständige Hintergrund-App, die Android drosselt. Bei ROMs wie ColorOS ist das der Unterschied zwischen 'läuft über Nacht' und 'war morgens weg'. Die Asset-Auswahl arbeitet mit einer Rangfolge statt eines festen Namens: stabile Veröffentlichungen vor Vorabversionen, und bei termux-app die Variante apt-android-7 vor dem Altbau apt-android-5, der sonst auf einem aktuellen Gerät gewählt würde. Korrektur zur bisherigen Dokumentation: Termux:X11 ist NICHT generell von der Signaturbindung ausgenommen. Nur die normale Variante ist es, die sharedUid- Fassung setzt GitHub-Termux voraus. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
99 lines
3.9 KiB
Markdown
99 lines
3.9 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. Verbindet per USB oder WLAN — das Skript fragt danach.
|
||
# Ein Kabel wird nicht gebraucht: Android 11+ kann Wireless Debugging.
|
||
# Fehlt Termux, bietet es an, alle vier Apps herunterzuladen und
|
||
# fernzuinstallieren (oder direkt: ./provision/install-termux.sh).
|
||
./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.
|