Files
linux-on-android-without-root/README.md
T
StefanandClaude Opus 5 eeab61a0a4 install-termux.sh: APKs laden und fernzuinstallieren
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>
2026-08-09 18:39:27 +02:00

99 lines
3.9 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.
# 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 (S1S4 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.