S1: Termux:X11 am Start prüfen statt an der Paketliste
Die eingebaute Prüfung schlug fehl, obwohl die App installiert ist. Ursache: seit Android 11 sieht eine App nur noch die Pakete, die sie im Manifest anmeldet oder die ihre UID teilen. 'pm list packages' liefert aus Termux heraus eine gefilterte Liste — ein Nichtfinden beweist also gar nichts, und ein Abbruch darauf ist schlicht falsch. Die Paketprüfung bleibt als Hinweis erhalten, blockiert aber nicht mehr. Verlässlich ist stattdessen der Startversuch selbst: 'am start' meldet einen Fehler, wenn es die Aktivität nicht gibt. Das wird jetzt ausgewertet. Dazu der Hinweis, dass 'not connected' in der App bis zu diesem Zeitpunkt der normale Zustand ist — die App wartet auf den X-Server. Bleibt es danach stehen, ist es ein echtes Signal. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -47,17 +47,21 @@ if ! have termux-x11; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Das Termux-Paket und die Termux:X11-APP sind zwei verschiedene Dinge. Fehlt die
|
# Das Termux-Paket und die Termux:X11-APP sind zwei verschiedene Dinge. Fehlt die
|
||||||
# App, startet der X-Server anstandslos — nur sieht man nichts. Das sähe aus wie
|
# App, startet der X-Server anstandslos — nur sieht man nichts.
|
||||||
# ein Fehlschlag von Plasma und wäre keiner.
|
#
|
||||||
if pm list packages 2>/dev/null | grep -q '^package:com\.termux\.x11$'; then
|
# Zuverlässig prüfen lässt sich das aber nicht: seit Android 11 sieht eine App
|
||||||
ok "Termux:X11-App ist installiert"
|
# nur noch die Pakete, die sie in ihrem Manifest anmeldet oder die ihre UID teilen.
|
||||||
|
# 'pm list packages' liefert aus Termux heraus also eine gefilterte Liste, und ein
|
||||||
|
# Nichtfinden beweist gar nichts. Deshalb nur ein Hinweis, kein Abbruch — ein
|
||||||
|
# falscher Abbruch wäre schlimmer als ein überflüssiger Hinweis.
|
||||||
|
if pm list packages 2>/dev/null | tr -d '\r' | grep -q '^package:com\.termux\.x11$'; then
|
||||||
|
ok "Termux:X11-App gefunden"
|
||||||
else
|
else
|
||||||
fail "Die Termux:X11-APP fehlt (nur das Paket ist da)."
|
warn "Termux:X11-App nicht in der Paketliste — sagt wenig aus."
|
||||||
hint "Ohne sie startet der X-Server, aber es gibt nichts zu sehen."
|
hint "Android filtert diese Liste seit Version 11; die App kann trotzdem da sein."
|
||||||
hint "Vom Rechner: ./provision/install-termux.sh"
|
hint "Bleibt der Bildschirm später leer, hier ansetzen:"
|
||||||
hint "Oder von Hand: https://github.com/termux/termux-x11/releases"
|
hint " Vom Rechner: ./provision/install-termux.sh"
|
||||||
hint "Bei Termux aus GitHub die Variante 'universal-sharedUid-debug.apk'."
|
hint " Von Hand: https://github.com/termux/termux-x11/releases"
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
termux-x11 :0 >>"$LOG" 2>&1 &
|
termux-x11 :0 >>"$LOG" 2>&1 &
|
||||||
X11_PID=$!
|
X11_PID=$!
|
||||||
@@ -70,9 +74,21 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Die App muss im Vordergrund sein, sonst sieht man nichts und Android drosselt.
|
# Die App muss im Vordergrund sein, sonst sieht man nichts und Android drosselt.
|
||||||
|
# Hier zeigt sich auch, ob sie überhaupt existiert: 'am start' meldet einen
|
||||||
|
# Fehler, wenn es die Aktivität nicht gibt — das ist die verlässliche Prüfung,
|
||||||
|
# anders als die gefilterte Paketliste weiter oben.
|
||||||
log " Hole die Termux:X11-App in den Vordergrund …"
|
log " Hole die Termux:X11-App in den Vordergrund …"
|
||||||
try am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity
|
if am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity >>"$LOG" 2>&1; then
|
||||||
|
ok "Termux:X11-App gestartet"
|
||||||
|
else
|
||||||
|
fail "Termux:X11-App ließ sich nicht starten — sie fehlt vermutlich."
|
||||||
|
tail -n 5 "$LOG" | sed 's/^/ /'
|
||||||
|
hint "Installieren: ./provision/install-termux.sh (vom Rechner)"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
sleep 2
|
sleep 2
|
||||||
|
log " In der App sollte jetzt nicht mehr 'not connected' stehen."
|
||||||
|
hint "Steht es weiterhin dort, hat der X-Server keine Verbindung bekommen."
|
||||||
|
|
||||||
# ── GPU-Server ───────────────────────────────────────────────────────────────
|
# ── GPU-Server ───────────────────────────────────────────────────────────────
|
||||||
section "GPU-Pfad vorbereiten ($GPU_PROFIL)"
|
section "GPU-Pfad vorbereiten ($GPU_PROFIL)"
|
||||||
|
|||||||
Reference in New Issue
Block a user