Termux ist eine Android-Terminalanwendung und eine Linux-Umgebung.
Beachten Sie, dass dieses Repository für die App selbst bestimmt ist (die Benutzeroberfläche und die Terminalemulation). Informationen zu den in der App installierbaren Paketen finden Sie unter termux/termux-packages.
Eine kurze Anleitung zur Termux-Paketverwaltung finden Sie unter Paketverwaltung. Es enthält außerdem Informationen dazu, wie Fehler behoben werden können, die bei der Ausführung apt
oder pkg
-Befehlen auftreten, wenn repository is under maintenance or down
.
Wir suchen Betreuer für Termux-Android-Anwendungen.
HINWEIS: Termux ist unter Android 12+ möglicherweise instabil. Das Android-Betriebssystem beendet alle (Phantom-)Prozesse mit mehr als 32 (Grenze gilt für alle Apps zusammen) und beendet auch alle Prozesse, die übermäßig viel CPU verbrauchen. Möglicherweise erhalten Sie im Terminal die Meldung [Process completed (signal 9) - press Enter]
ohne den Shell-Prozess tatsächlich selbst zu verlassen. Sehen Sie sich die zugehörigen Dokumente zu Problem Nr. 2366, Issue-Tracker, Phantom-Cache und leeren Prozessen sowie diesen TLDR-Kommentar an, um zu erfahren, wie Sie das Trimmen von Phantom- und Prozessen mit übermäßiger CPU-Auslastung deaktivieren können. Eine richtige Dokumentenseite wird später hinzugefügt. Eine Option zum Deaktivieren des Tötens sollte in Android 12L oder 13 verfügbar sein. Wenn Sie Android 11 verwenden, aktualisieren Sie daher auf eigenes Risiko, insbesondere wenn Sie nicht gerootet sind.
Die Kern-Termux-App wird mit den folgenden optionalen Plugin-Apps geliefert.
Die neueste Version ist v0.118.1
.
HINWEIS: Es wird dringend empfohlen, so schnell wie möglich auf v0.118.0
oder höher zu aktualisieren, um verschiedene Fehler zu beheben, einschließlich einer kritischen, allgemein lesbaren Sicherheitslücke, die hier gemeldet wird. Nachfolgend finden Sie Informationen zu Termux bei Google Play.
Termux kann über die verschiedenen unten aufgeführten Quellen nur für Android >= 7
mit vollständiger Unterstützung für Apps und Pakete bezogen werden.
Die Unterstützung sowohl für Apps als auch für Pakete wurde für Android 5
und 6
am 01.01.2020 in v0.83
eingestellt, wurde jedoch am 24.05.2022 über die GitHub-Quellen nur für die App ohne Unterstützung für Paketaktualisierungen wieder hinzugefügt . Weitere Informationen finden Sie hier.
Die APK-Dateien verschiedener Quellen werden mit unterschiedlichen Signaturschlüsseln signiert. Die Termux
-App und alle ihre Plugins verwenden dieselbe sharedUserId
com.termux
. Daher müssen alle auf einem Gerät installierten APKs mit demselben Signaturschlüssel signiert sein, um zusammenzuarbeiten, und daher müssen sie alle von derselben Quelle installiert werden. Versuchen Sie nicht, sie miteinander zu vermischen, d. h. versuchen Sie nicht, eine App oder ein Plugin von F-Droid
und eine andere von einer anderen Quelle wie GitHub
zu installieren. Der Android-Paketmanager lässt normalerweise auch keine Installation von APKs mit unterschiedlichen Signaturen zu und Sie erhalten bei der Installation Fehlermeldungen wie App not installed
, Failed to install due to an unknown error
, INSTALL_FAILED_UPDATE_INCOMPATIBLE
, INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
, signatures do not match previously installed version
“ usw. überein Die Einschränkung kann mit Root oder mit benutzerdefinierten ROMs umgangen werden.
Wenn Sie von einer anderen Quelle installieren möchten, müssen Sie zunächst alle vorhandenen Termux- oder Plugin-App-APKs von Ihrem Gerät deinstallieren und dann alle neuen APKs von derselben neuen Quelle installieren. Weitere Informationen finden Sie im Abschnitt „Deinstallation“. Möglicherweise möchten Sie auch ein Backup von Termux vor der Deinstallation in Betracht ziehen, damit Sie es nach der Neuinstallation von einer anderen Termux-Quelle wiederherstellen können.
In den folgenden Abschnitten bezieht sich „Bootstrap“ auf die minimalen Pakete, die mit der termux-app
selbst geliefert werden, um eine funktionierende Shell-Umgebung zu starten. Seine Reißverschlüsse werden hier aufgebaut und freigegeben.
Die Termux-Anwendung kann hier von F-Droid
bezogen werden.
Sie müssen die F-Droid
-App nicht herunterladen (über den Link Download F-Droid
), um Termux zu installieren. Sie können die Termux-APK direkt von der Website herunterladen, indem Sie unten in jedem Versionsabschnitt auf den Link Download APK
klicken.
Normalerweise dauert es ein paar Tage (oder sogar eine Woche oder länger), bis Updates auf F-Droid
verfügbar sind, sobald ein Update auf GitHub
veröffentlicht wurde. Die F-Droid
-Versionen werden von F-Droid
erstellt und veröffentlicht, sobald eine neue GitHub
Version erkannt wird. Die Termux-Betreuer haben keine Kontrolle über die Erstellung und Veröffentlichung der Termux-Apps auf F-Droid
. Darüber hinaus haben die Termux-Betreuer auch keinen Zugriff auf die APK-Signaturschlüssel von F-Droid
-Releases, sodass wir selbst kein APK auf GitHub
veröffentlichen können, das mit F-Droid
-Releases kompatibel wäre.
Die F-Droid
-App benachrichtigt Sie oft nicht über Updates und Sie müssen manuell auf der Registerkarte Updates
der App nach unten wischen, um nach Updates zu suchen. Stellen Sie sicher, dass die Batterieoptimierungen für die App deaktiviert sind. Weitere Informationen dazu finden Sie unter https://dontkillmyapp.com/.
Es wird nur eine universelle APK veröffentlicht, die auf allen unterstützten Architekturen funktioniert. Die Größe der APK- und Bootstrap-Installation beträgt ~180MB
. F-Droid
unterstützt keine architekturspezifischen APKs.
Die Termux-Anwendung kann auf GitHub
entweder über GitHub Releases
für Version >= 0.118.0
oder über GitHub Build Action
Workflows bezogen werden. Für Android >= 7
installieren Sie nur apt-android-7
-Varianten. Installieren Sie für Android 5
und 6
nur apt-android-5
-Varianten.
Die APKs für GitHub Releases
werden im Dropdown-Menü Assets
einer Version aufgeführt. Diese werden automatisch angehängt, wenn eine neue Version veröffentlicht wird.
Die APKs für GitHub Build
-Aktionsworkflows werden im Abschnitt Artifacts
einer Workflowausführung aufgelistet. Diese werden für jeden Commit/Push im Repository erstellt und können von Benutzern verwendet werden, die nicht auf Veröffentlichungen warten möchten, sondern die neuesten Funktionen sofort ausprobieren oder ihre Pull-Anfragen testen möchten. Beachten Sie, dass Sie für Aktionsworkflows bei einem GitHub
-Konto angemeldet sein müssen, damit die Artifacts
-Links aktiviert/anklickbar sind. Wenn Sie die GitHub
-App verwenden, stellen Sie sicher, dass Sie den Workflow-Link in einem Browser wie Chrome oder Firefox öffnen, in dem Ihr GitHub-Konto angemeldet ist, da der In-App-Browser möglicherweise nicht angemeldet ist.
Die APKs für beide sind debuggable
und miteinander kompatibel, jedoch nicht mit anderen Quellen.
Es werden sowohl universelle als auch architekturspezifische APKs veröffentlicht. Die APK- und Bootstrap-Installationsgröße beträgt ~180MB
bei Verwendung von „Universal“ und ~120MB
bei Verwendung von „Architekturspezifisch“. Weitere Informationen finden Sie hier.
Sicherheitswarnung : APK-Dateien auf GitHub sind mit einem Testschlüssel signiert, der mit der Community geteilt wurde. Dies ist KEIN offizieller Entwicklerschlüssel und jeder kann ihn verwenden, um Releases für eigene Tests zu generieren. Seien Sie sehr vorsichtig, wenn Sie Termux GitHub-Builds verwenden, die Sie anderswo als https://github.com/termux/termux-app erhalten haben. Jeder kann damit ein bösartiges Termux-Update fälschen, das über den GitHub-Build installiert werden kann. Denken Sie zweimal darüber nach, Termux-Builds zu installieren, die über Telegram oder andere soziale Medien verbreitet werden. Wenn Ihr Gerät von Malware befallen wird, können wir Ihnen nicht helfen.
Der Testschlüssel darf nicht dazu verwendet werden, sich als @termux auszugeben und kann dafür auch nicht verwendet werden. Wir vertrauen diesem Schlüssel nicht und seine Verwendung in benutzergenerierten Inhalten lässt sich leicht erkennen.
Alias name: alias
Creation date: Oct 4, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=APK Signer, OU=Earth, O=Earth
Issuer: CN=APK Signer, OU=Earth, O=Earth
Serial number: 29be297b
Valid from: Wed Sep 04 02:03:24 EEST 2019 until: Tue Oct 26 02:03:24 EEST 2049
Certificate fingerprints:
SHA1: 51:79:55:EA:BF:69:FC:05:7C:41:C7:D3:79:DB:BC:EF:20:AD:85:F2
SHA256: B6:DA:01:48:0E:EF:D5:FB:F2:CD:37:71:B8:D1:02:1E:C7:91:30:4B:DD:6C:4B:F4:1D:3F:AA:BA:D4:8E:E5:E1
Signature algorithm name: SHA1withRSA (disabled)
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
Derzeit ist auf Google Play eine Version von Termux für Android 11+-Geräte verfügbar, mit umfangreichen Anpassungen, um die dortigen Richtlinienanforderungen zu erfüllen. Dieser befindet sich in der Entwicklung und weist im Vergleich zum stabilen F-Droid-Build fehlende Funktionen und Fehler auf (Statusaktualisierungen finden Sie hier). Aus diesem Grund sollten die meisten Benutzer, die dies können, weiterhin F-Droid oder den GitHub-Build wie oben erwähnt verwenden.
Derzeit versucht Google Play, Installationen außerhalb der F-Droid-Installationen zu aktualisieren. Die Aktualisierung schlägt weiterhin fehl, da sharedUserId entfernt wurde. Eine geplante Version 0.118.1 von F-Droid wird dieses Problem beheben, indem ein höherer Versionscode als für die PlayStore-App festgelegt wird. Um zu verhindern, dass Google Play versucht, die Google Play-Versionen herunterzuladen und dann nicht über bestehende Installationen zu installieren, können Sie die Termux-App-Seiten bei Google Play öffnen und dann oben rechts auf die Optionsschaltfläche mit den drei Punkten klicken und dann deaktivieren Aktivieren Sie den Schalter für die automatische Aktualisierung. Die Termux-App-Updates werden jedoch weiterhin in der Liste der PlayStore-App-Updates angezeigt.
Wenn Sie beim Testen des Google Play-Builds helfen möchten (oder Termux nicht aus anderen Quellen installieren können), beachten Sie, dass es aus einem separaten Repository (https://github.com/termux-play-store/) erstellt wurde – seien Sie sicher um dort Probleme zu melden, da alle aufgetretenen Probleme durchaus spezifisch für dieses Repository sein können.
Eine Deinstallation kann erforderlich sein, wenn ein Benutzer nicht mehr möchte, dass Termux auf seinem Gerät installiert wird oder zu einer anderen Installationsquelle wechselt. Möglicherweise möchten Sie auch ein Backup von Termux vor der Deinstallation in Betracht ziehen.
Um Termux vollständig zu deinstallieren, müssen Sie alle vorhandenen Termux- oder seine Plugin-App-APKs deinstallieren, die unter Termux-App und Plugins aufgeführt sind.
Gehen Sie zu Android Settings
-> Applications
und suchen Sie nach diesen Apps. Sie können auch die Suchfunktion verwenden, sofern diese auf Ihrem Gerät verfügbar ist, und in der Anwendungsliste nach termux
suchen.
Auch wenn Sie der Meinung sind, dass Sie keines der Plugins installiert haben, wird dringend empfohlen, die Anwendungsliste in den Android-Einstellungen durchzugehen und noch einmal zu überprüfen.
Alle Community-Links finden Sie hier.
Die wichtigsten sind die folgenden.
RUN_COMMAND
VTE (libvte): Terminal-Emulator-Widget für GTK+, wird hauptsächlich im Gnome-Terminal verwendet. Quelle, Offene Probleme und Alle (einschließlich geschlossener) Probleme.
iTerm 2: OS X-Terminalanwendung. Quelle, Probleme und Dokumentation (einschließlich proprietärer iTerm2-Escape-Codes).
Konsole: KDE-Terminalanwendung. Quelle, insbesondere Tests, Bugs und Wishes.
hterm: JavaScript-Terminalimplementierung von Chromium. Quelle, einschließlich Tests und Google-Gruppe.
xterm: Der Großvater der Terminalemulatoren. Quelle.
Connectbot: Android SSH-Client. Quelle
Android-Terminal-Emulator: Android-Terminal-App, auf der die Termux-Terminalverwaltung basiert. Inaktiv. Quelle.
Sie können beim Debuggen von Problemen der Termux
App und ihrer Plugins helfen, indem Sie in den Termux
-App-Einstellungen -> <APP_NAME>
-> Debugging
-> Log Level
(erfordert Termux
App-Version >= 0.118.0
) die entsprechende logcat
Log Level
festlegen. Die Log Level
ist standardmäßig auf Normal
eingestellt und die Protokollebene Verbose
protokolliert derzeit zusätzliche Informationen. Es ist am besten, die Protokollebene nach Abschluss des Debuggens auf Normal
zurückzusetzen, da sonst möglicherweise während des normalen Betriebs private Daten an logcat
übergeben werden und außerdem eine zusätzliche Protokollierung die Ausführungszeit erhöht.
Die Plugin-Apps führen die Befehle nicht selbst aus, sondern senden Ausführungsabsichten an die Termux
App, die über eine eigene Protokollebene verfügt, die in den Termux
App-Einstellungen -> Termux
-> Debugging
-> Log Level
festgelegt werden kann. Sie müssen also die Protokollebene sowohl für Termux
als auch für die jeweiligen Plugin-App-Einstellungen festlegen, um alle Informationen zu erhalten.
Sobald die Protokollebenen festgelegt wurden, können Sie den Befehl logcat
im Termux
App-Terminal ausführen, um die Protokolle in Echtzeit anzuzeigen ( Ctrl+c
zum Anhalten) oder logcat -d > logcat.txt
verwenden, um einen Dump des Protokolls zu erstellen. Sie können die Protokolle auch von einem PC über ADB
anzeigen. Weitere Informationen finden Sie im offiziellen Android logcat
Leitfaden hier.
Darüber hinaus können Benutzer auch automatisch stat
und logcat
Dumps für Termux-Dateien generieren, indem sie im Optionsmenü des Terminals für langes Halten die Option „ More
-> Report Issue
und in der angezeigten Eingabeaufforderung YES
auswählen, um Debug-Informationen hinzuzufügen. Dies kann beim Melden und Debuggen anderer Probleme hilfreich sein. Wenn der generierte Bericht zu groß ist, kann die Option Save To File
im Kontextmenü (3 Punkte oben rechts) von ReportActivity
verwendet und stattdessen die Datei angezeigt/freigegeben werden.
Benutzer müssen einen vollständigen Bericht (optional ohne vertrauliche Informationen) veröffentlichen, wenn sie Probleme melden. Probleme, die mit (teilweisen) Screenshots von Fehlerberichten anstelle von Text geöffnet wurden, werden wahrscheinlich automatisch geschlossen/gelöscht.
Off
– Nichts protokollieren.Normal
– Starten Sie die Protokollierung von Fehler-, Warn- und Infomeldungen sowie Stacktraces.Debug
– Beginnen Sie mit der Protokollierung von Debug-Meldungen.Verbose
– Beginnen Sie mit der Protokollierung ausführlicher Nachrichten. Die termux-shared-Bibliothek wurde in v0.109
hinzugefügt. Es definiert gemeinsame Konstanten und Dienstprogramme der Termux-App und ihrer Plugins. Es wurde erstellt, um das Entfernen aller fest codierten Pfade in der Termux-App zu ermöglichen. Einige der Termux-Plugins verwenden dies ebenfalls und der Rest wird dies auch in Zukunft tun. Wenn Sie Code beisteuern, der eine Konstante oder ein Dienstprogramm verwendet, das möglicherweise gemeinsam genutzt wird, definieren Sie ihn in termux-shared
-Bibliothek, falls er derzeit nicht vorhanden ist, und verweisen Sie von dort aus darauf. Aktualisieren Sie auch die relevanten Änderungsprotokolle. Pull-Anfragen mit fest codierten Werten werden/sollten nicht akzeptiert werden. Termux-App- und Plugin-spezifische Klassen müssen unter dem Paket com.termux.shared.termux
und allgemeine Klassen außerhalb davon hinzugefügt werden. Auch die termux-shared
LICENSE
muss beim Beisteuern von Code überprüft und ggf. aktualisiert werden. Die Lizenzen externer Bibliotheken oder Codes müssen respektiert werden.
Die wichtigsten Termux-Konstanten werden durch die TermuxConstants
-Klasse definiert. Es enthält auch Informationen darüber, wie Sie Termux forken oder mit Ihrem eigenen Paketnamen erstellen. Wenn Sie den Paketnamen ändern, müssen die Bootstrap-Zip-Pakete und andere Pakete mit dem neuen $PREFIX
erstellt werden. Weitere Informationen finden Sie unter „Pakete erstellen“.
Unter Termux-Bibliotheken erfahren Sie, wie Sie Termux-Bibliotheken in Plugin-Apps importieren, und unter Forking und lokale Entwicklung erfahren Sie, wie Sie Termux-Bibliotheken für Plugins aktualisieren.
Der versionName
in build.gradle
Dateien von Termux und seinen Plugin-Apps muss der semantischen Version 2.0.0
Spezifikation im Format major.minor.patch(-prerelease)(+buildmetadata)
entsprechen. Wenn Sie versionName
in build.gradle
Dateien angeben und ein Tag für neue Versionen auf GitHub erstellen, stellen Sie sicher, dass Sie auch die Patch-Nummer angeben, z. B. v0.1.0
statt nur v0.1
. Die build.gradle
Dateien und der Workflow attach_debug_apks_to_release
validieren ebenfalls die Version und der Build/Anhang schlägt fehl, wenn versionName
nicht der Spezifikation entspricht.
Commit-Nachrichten müssen die Spezifikation „Conventional Commits“ verwenden, damit Chagelogs gemäß der Spezifikation „Keep a Changelog“ automatisch vom Skript create-conventional-changelog
generiert werden können. Weitere Details zur Spezifikation finden Sie im Repository. Der erste Buchstabe für type
und description
muss groß geschrieben sein und die Beschreibung sollte im Präsens erfolgen. Das Leerzeichen nach dem Doppelpunkt :
ist notwendig. Fügen Sie für eine bahnbrechende Änderung ein Ausrufezeichen hinzu !
vor dem Doppelpunkt :
, damit es im Chagelog automatisch hervorgehoben wird.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Es dürfen nur die unten aufgeführten types
genau so verwendet werden, wie sie in den Changelog-Überschriften verwendet werden. Zum Beispiel: Added: Add foo
, Added|Fixed: Add foo and fix bar
, Changed!: Change baz as a breaking change
usw. Sie können optional auch einen Bereich hinzufügen, wie Fixed(terminal): Fix some bug
. Verwenden Sie nichts anderes als Typ, z. B. add
anstelle von Added
usw.
TermuxConstants
.TermuxConstants
aus termux-shared
Bibliothek und verfügen über fest codierte com.termux
Werte und müssen manuell gepatcht werden.