Meine Anweisung 'sudo apt install scrcpy' war falsch: scrcpy ist in bookworm gar nicht enthalten, und wo es existiert (ab trixie-backports) liegt es in contrib statt main. 'Paket kann nicht gefunden werden' war also die richtige Antwort des Systems, kein Konfigurationsfehler. Das Projekt liefert ein eigenständiges Linux-Paket. Gegen das System geprüft: keine fehlenden Bibliotheken, läuft ohne root. Installiert wird nach ~/.local, Rückbau mit --deinstallieren. Wichtiger Teil ist der erzeugte Starter: das Paket bringt ein eigenes adb mit, hier 37.0.0 gegen 36.0.0 im System. Trifft ein abweichendes adb auf einen laufenden Server, beendet es ihn — und kappt damit mitten in der Arbeit die WLAN-Verbindung zum Telefon. Der Starter schiebt scrcpy deshalb dasselbe adb unter, das auch die Provisioning-Skripte benutzen. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4.0 KiB
Am Projekt arbeiten
Die Bildschirmtastatur eines Telefons ist zum Entwickeln unbrauchbar. Zwei Werkzeuge lösen das, und sie ergänzen sich: SSH für alles Textliche, scrcpy für alles, was man sehen muss.
SSH nach Termux — für Terminalarbeit
Der wichtigere der beiden Wege. Echte Tastatur, Zwischenablage, Verlauf, Rollbalken.
# Einmalig auf dem PC (provision.sh bietet es von selbst an)
adb push ~/.ssh/id_ed25519.pub /sdcard/hpos-id.pub
# Auf dem Telefon
bash ~/hpos/tools/dev-ssh.sh
# Danach vom PC
ssh -p 8022 <benutzer>@<telefon-ip>
Port 8022 statt 22, weil eine gewöhnliche App keine Ports unter 1024 belegen darf.
Dateien im Editor des Rechners bearbeiten — kein Hin- und Herkopieren:
mkdir -p ~/telefon
sshfs -p 8022 <benutzer>@<ip>:/data/data/com.termux/files/home ~/telefon
# lösen mit: fusermount3 -u ~/telefon
sshd überlebt keinen Neustart von Termux. Danach genügt sshd in Termux.
In fremden Netzen abschalten: pkill sshd — der Dienst ist im ganzen WLAN erreichbar.
scrcpy — Bildschirm und Zwischenablage
Für alles Grafische unverzichtbar: Beweis S1 zeigt sich nur auf dem Bildschirm, und die Kamera in S3 prüft man in einem Browserfenster.
./tools/install-scrcpy.sh # holt das offizielle Linux-Paket nach ~/.local
scrcpy # nutzt die bestehende adb-Verbindung, auch über WLAN
apt install scrcpy funktioniert auf Debian 12 nicht — dort ist das Paket gar
nicht enthalten, und ab trixie-backports liegt es in contrib statt main. Das
Projekt liefert aber ein eigenständiges Linux-Paket ohne Systemabhängigkeiten, und
genau das holt das Skript. Kein root, alles unter ~/.local, Rückbau mit
--deinstallieren.
Das Skript legt dabei einen Starter an, der scrcpy dasselbe adb unterschiebt, das auch die Provisioning-Skripte benutzen. Das ist kein Schönheitsfehler: das Paket bringt eine eigene, oft neuere adb-Fassung mit, und ein abweichendes adb beendet einen laufenden Server — was mitten in der Arbeit die WLAN-Verbindung zum Telefon kappen würde.
Was es mitbringt, ohne weitere Einrichtung:
- Zwischenablage in beide Richtungen. Auf dem Telefon kopieren, auf dem PC einfügen und umgekehrt.
- Tastatur und Maus des Rechners wirken direkt im Telefon — auch in Termux.
- Läuft über dieselbe WLAN-Verbindung, die schon steht.
Nützliche Schalter:
| Schalter | Wofür |
|---|---|
--max-size 1024 |
weniger Bandbreite, flüssiger über WLAN |
--stay-awake |
Bildschirm bleibt an, solange gespiegelt wird |
--turn-screen-off |
Telefonbildschirm aus, spart Akku beim langen Arbeiten |
--no-audio |
falls die Tonübertragung stört |
scrcpy --new-display kann eine App in ein eigenes virtuelles Display legen. Als
Entwicklerwerkzeug ist das nützlich — als Produktbestandteil wurde es
verworfen,
weil es dauerhaft Shell-Rechte bräuchte.
Der Weg der Änderungen
PC (Arbeitskopie) --git push--> Forge --git pull--> Telefon (~/hpos)
Auf dem Telefon wird nicht entwickelt, dort wird ausgeführt. Änderungen entstehen auf
dem Rechner, werden gepusht und mit cd ~/hpos && git pull geholt. Deshalb kommt per
adb auch nur das Startskript aufs Gerät und nicht das Repo — sonst wäre es eine Kopie
statt einer Arbeitskopie.
Ergebnisse laufen in die Gegenrichtung: spike/out/ bleibt lokal auf dem Telefon
(bewusst nicht im Repo), die Auswertung wandert von Hand nach
spike-protokoll.md.
Kleinigkeiten, die Zeit sparen
- Protokolle direkt vom Telefon holen, ohne SSH:
adb shell run-as com.termux cat …scheitert meist an fehlender Debuggability. Einfacher ist der Umweg über die gemeinsame Ablage:cp ~/hpos/spike/out/*.log /sdcard/und dannadb pull /sdcard/… - Termux offen halten: Ein Wisch aus den zuletzt verwendeten Apps beendet den gesamten Stack. Im Task-Manager anpinnen.
- Mehrere Sitzungen in Termux mit
Ctrl+Alt+C— praktisch, um neben einem laufenden Desktop noch ein Terminal zu haben.