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:
+34
-14
@@ -26,23 +26,43 @@ Scheitert er, ist das ein früher Warnschuss fürs Gesamtkonzept, kein Detail.
|
||||
|
||||
### Termux installieren
|
||||
|
||||
**Nicht aus dem Play Store** — die Fassung dort wird seit Jahren nicht mehr gepflegt und
|
||||
ist für dieses Projekt unbrauchbar. Alle Bestandteile müssen aus **derselben Quelle**
|
||||
stammen, sonst passen die Signaturen nicht zusammen und die Zusatz-Apps verweigern den Dienst.
|
||||
```bash
|
||||
./provision/install-termux.sh
|
||||
```
|
||||
|
||||
| App | F-Droid | GitHub |
|
||||
Lädt alle vier Apps von GitHub und installiert sie über die bestehende
|
||||
adb-Verbindung — per WLAN genauso wie per Kabel. `provision.sh` bietet das von
|
||||
selbst an, wenn Termux fehlt.
|
||||
|
||||
#### Warum das ein eigenes Skript verdient
|
||||
|
||||
Termux und seine Plugins teilen sich eine Android-UID (`sharedUserId=com.termux`).
|
||||
Android verlangt, dass Apps mit gemeinsamer UID **mit demselben Schlüssel signiert**
|
||||
sind — und F-Droid und GitHub signieren verschieden. Mischt man die Quellen, scheitert
|
||||
die Installation mit `INSTALL_FAILED_SHARED_USER_INCOMPATIBLE`. Das ist der mit Abstand
|
||||
häufigste Stolperstein beim Einrichten.
|
||||
|
||||
Das Skript wählt durchgängig **GitHub**, aus zwei Gründen:
|
||||
|
||||
- Termux:X11 gibt es dort in einer **sharedUid-Variante**. 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 der
|
||||
Unterschied zwischen „läuft über Nacht" und „war morgens weg".
|
||||
- Eine Quelle, ein Schlüssel, keine Mischmasch-Fehler.
|
||||
|
||||
**Nicht aus dem Play Store** — die Fassung dort wird seit Jahren nicht mehr gepflegt.
|
||||
|
||||
Von Hand geht es natürlich auch, dann aber konsequent alles aus **einer** Quelle:
|
||||
|
||||
| App | GitHub | F-Droid |
|
||||
|---|---|---|
|
||||
| Termux | [f-droid.org](https://f-droid.org/packages/com.termux/) | [Releases](https://github.com/termux/termux-app/releases/latest) |
|
||||
| Termux:API | [f-droid.org](https://f-droid.org/packages/com.termux.api/) | [Releases](https://github.com/termux/termux-api/releases/latest) |
|
||||
| Termux:Boot | [f-droid.org](https://f-droid.org/packages/com.termux.boot/) | [Releases](https://github.com/termux/termux-boot/releases/latest) |
|
||||
| Termux:X11 | — | [Releases](https://github.com/termux/termux-x11/releases) (Nightly, `app-universal-debug.apk`) |
|
||||
| Termux | [Releases](https://github.com/termux/termux-app/releases/latest) | [f-droid.org](https://f-droid.org/packages/com.termux/) |
|
||||
| Termux:API | [Releases](https://github.com/termux/termux-api/releases/latest) | [f-droid.org](https://f-droid.org/packages/com.termux.api/) |
|
||||
| Termux:Boot | [Releases](https://github.com/termux/termux-boot/releases/latest) | [f-droid.org](https://f-droid.org/packages/com.termux.boot/) |
|
||||
| Termux:X11 | [Releases](https://github.com/termux/termux-x11/releases) | — |
|
||||
|
||||
Termux:X11 gibt es nur bei GitHub. Wer die anderen drei von F-Droid nimmt, muss
|
||||
Termux:X11 trotzdem von dort holen — das ist in Ordnung, weil Termux:X11 eine
|
||||
eigenständige App ohne Signaturbindung an Termux ist.
|
||||
|
||||
Fehlt Termux, bietet `provision.sh` an, die Download-Seite direkt auf dem Telefon
|
||||
zu öffnen.
|
||||
Bei F-Droid-Termux muss für Termux:X11 die **normale** Variante genommen werden
|
||||
(`termux-x11-universal-debug.apk`), nicht die sharedUid-Fassung.
|
||||
|
||||
**Ein USB-Kabel wird nicht gebraucht.** Ab Android 11 geht die Ersteinrichtung über
|
||||
WLAN — `provision.sh` fragt beim Start, ob per Kabel oder per Netz verbunden werden
|
||||
|
||||
Reference in New Issue
Block a user