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>
This commit is contained in:
+27
-11
@@ -159,21 +159,37 @@ else
|
||||
Auf dem Telefon einfach im Browser öffnen und die APK installieren.
|
||||
"Installation aus unbekannten Quellen" muss für den Browser erlaubt sein.
|
||||
TEXT
|
||||
if [ "$TROCKEN" != 1 ]; then
|
||||
printf '\n Soll ich die Termux-Seite auf dem Telefon öffnen? [J/n] > '
|
||||
read -r OEFFNEN </dev/tty || OEFFNEN=n
|
||||
case "${OEFFNEN:-j}" in
|
||||
if [ "$TROCKEN" != 1 ] && [ -x "$HIER/install-termux.sh" ]; then
|
||||
cat <<'TEXT'
|
||||
|
||||
Das muss aber niemand von Hand machen: install-termux.sh lädt alle vier
|
||||
Apps von GitHub und installiert sie über die bestehende adb-Verbindung —
|
||||
per WLAN genauso wie per Kabel.
|
||||
TEXT
|
||||
printf '\n Jetzt automatisch installieren? [J/n] > '
|
||||
read -r AUTOINSTALL </dev/tty || AUTOINSTALL=n
|
||||
case "${AUTOINSTALL:-j}" in
|
||||
j|J|"")
|
||||
adb shell am start -a android.intent.action.VIEW \
|
||||
-d 'https://f-droid.org/packages/com.termux/' >/dev/null 2>&1 \
|
||||
&& ok "Seite auf dem Telefon geöffnet" \
|
||||
|| warn "Konnte den Browser nicht starten — bitte von Hand aufrufen."
|
||||
if ADB_SERIAL="$ADB_SERIAL" "$HIER/install-termux.sh"; then
|
||||
ok "Termux ist installiert — weiter mit der Einrichtung."
|
||||
hinweis "Bitte Termux einmal öffnen, damit es sein Dateisystem anlegt."
|
||||
printf ' Wenn das erledigt ist, Enter drücken > '
|
||||
read -r _ </dev/tty
|
||||
else
|
||||
fehl "Automatische Installation fehlgeschlagen."
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
hinweis "Dann von Hand — danach dieses Skript erneut aufrufen."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
else
|
||||
printf '\n'
|
||||
hinweis "Danach dieses Skript erneut aufrufen."
|
||||
exit 1
|
||||
fi
|
||||
printf '\n'
|
||||
hinweis "Danach dieses Skript erneut aufrufen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ── Hintergrundbetrieb, Android-Standardebene ────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user