Entwicklerzugang: SSH nach Termux, sshfs, scrcpy

Auf der Bildschirmtastatur eines Telefons lässt sich nicht arbeiten. Zwei Wege,
die sich ergänzen: SSH für alles Textliche, scrcpy für alles, was man sehen muss —
Beweis S1 zeigt sich nur auf dem Bildschirm, die Kamera in S3 prüft man im Browser.

tools/dev-ssh.sh richtet Termux' sshd ein (Port 8022, weil eine gewöhnliche App
keine Ports unter 1024 belegen darf). Schlüssel vor Passwort: ein Passwort auf der
Bildschirmtastatur einzutippen ist mühsam, und wer es sich deshalb kurz wählt, hat
einen offenen Dienst im WLAN. provision.sh legt den öffentlichen Schlüssel des
Rechners deshalb gleich mit ab.

Über sshfs lassen sich die Dateien des Telefons im Editor des Rechners öffnen —
kein Hin- und Herkopieren mehr.

docs/entwicklung.md beschreibt beides samt Richtung der Änderungen: entwickelt
wird auf dem Rechner, das Telefon führt nur aus und holt per git pull. Genau
deshalb kommt per adb auch nur das Startskript aufs Gerät.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stefan
2026-08-10 21:09:41 +02:00
co-authored by Claude Opus 5
parent 2d3c2fbc6d
commit 14f054c8e3
4 changed files with 220 additions and 0 deletions
+90
View File
@@ -0,0 +1,90 @@
# 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.
```bash
# 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:
```bash
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.
```bash
sudo apt install scrcpy # Debian/Ubuntu
scrcpy # nutzt die bestehende adb-Verbindung, auch über WLAN
```
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](verworfene-entscheidungen.md#v6--host-apps-als-fenster-im-linux-desktop),
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`](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 dann `adb 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.