StefanandClaude Opus 5 b34074f48e adb-wireless: erst verbinden, dann erst koppeln
Bisher begann jeder Aufruf beim Koppeln. Wer bereits gekoppelt war, wurde deshalb
erneut nach einem Code gefragt — und weil die Kopplung ja schon bestand, führte
das zu nichts. Von außen sah es wie eine Schleife aus.

Der Fehler war eine falsche Annahme im Ablauf: die Kopplung bleibt dauerhaft
bestehen, nur die Verbindung geht verloren und der Port wechselt bei jedem
Einschalten. Ein zweiter Code wird also nie gebraucht.

Der Ablauf prüft jetzt in dieser Reihenfolge:
  1. steht schon eine Verbindung?
  2. lässt sich per mDNS verbinden? (dann bestand die Kopplung bereits)
  3. erst dann koppeln — und danach direkt wieder verbinden

Nach dem Koppeln wird zusätzlich kurz gewartet: neuere adb-Fassungen verbinden
von selbst über mDNS, dann ist der Rest überflüssig.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 18:01:29 +02:00

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/ führen die Beweise; Ergebnisse landen in docs/spike-protokoll.md.

Loslegen

Getestet wird auf einem OnePlus 7 Pro (Snapdragon 855, Adreno 640) mit Stock OxygenOS 12.

# 1. Auf dem PC. Verbindet per USB oder WLAN — das Skript fragt danach.
#    Ein Kabel wird nicht gebraucht: Android 11+ kann Wireless Debugging.
./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.

Dokumentation

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.

Lizenz

GPLv3 — siehe 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/ and docs/spike-protokoll.md.

Documentation is currently German-first; English will follow once Phase 0 concludes.

S
Description
No description provided
Readme GPL-3.0
181 KiB
Languages
Shell 95.8%
Python 4.2%