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:
Stefan
2026-08-09 18:39:27 +02:00
co-authored by Claude Opus 5
parent 915fe53eeb
commit eeab61a0a4
5 changed files with 263 additions and 25 deletions
+2
View File
@@ -44,6 +44,8 @@ Getestet wird auf einem **OnePlus 7 Pro (Snapdragon 855, Adreno 640) mit Stock O
```bash
# 1. Auf dem PC. Verbindet per USB oder WLAN — das Skript fragt danach.
# Ein Kabel wird nicht gebraucht: Android 11+ kann Wireless Debugging.
# Fehlt Termux, bietet es an, alle vier Apps herunterzuladen und
# fernzuinstallieren (oder direkt: ./provision/install-termux.sh).
./provision/provision.sh
# 2. Auf dem Telefon in Termux: