Termux est une application de terminal Android et un environnement Linux.
Notez que ce référentiel concerne l'application elle-même (l'interface utilisateur et l'émulation du terminal). Pour les packages installables dans l'application, voir termux/termux-packages.
Un guide rapide sur la gestion des packages Termux est disponible sur Package Management. Il contient également des informations sur la manière de corriger les erreurs repository is under maintenance or down
lors de l'exécution de commandes apt
ou pkg
.
Nous recherchons des mainteneurs d'applications Termux Android.
AVIS : Termux peut être instable sur Android 12+. Le système d'exploitation Android tuera tous les processus (fantômes) supérieurs à 32 (la limite s'applique à toutes les applications combinées) et tuera également tous les processus utilisant un processeur excessif. Vous pouvez recevoir le message [Process completed (signal 9) - press Enter]
dans le terminal sans quitter vous-même le processus shell. Consultez la documentation relative au problème n° 2366, au suivi des problèmes, aux processus fantômes et aux processus vides et à ce commentaire TLDR sur la façon de désactiver la suppression des processus fantômes et d'utilisation excessive du processeur. Une page de documentation appropriée sera ajoutée plus tard. Une option pour désactiver la mise à mort devrait être disponible dans Android 12L ou 13, alors effectuez la mise à niveau à vos propres risques si vous utilisez Android 11, surtout si vous n'êtes pas rooté.
L'application principale Termux est livrée avec les applications plugin facultatives suivantes.
La dernière version est v0.118.1
.
AVIS : Il est fortement recommandé de mettre à jour vers v0.118.0
ou supérieure dès que possible pour diverses corrections de bogues, y compris une vulnérabilité critique lisible par tous signalée ici. Voir ci-dessous pour plus d'informations concernant Termux sur Google Play.
Termux peut être obtenu via diverses sources répertoriées ci-dessous pour Android >= 7
uniquement avec une prise en charge complète des applications et des packages.
La prise en charge de l'application et des packages a été abandonnée pour Android 5
et 6
le 01/01/2020 à v0.83
, mais elle a été rajoutée uniquement pour l'application sans aucune prise en charge des mises à jour des packages le 24/05/2022 via les sources GitHub. . Vérifiez ici pour les détails.
Les fichiers APK de différentes sources sont signés avec différentes clés de signature. L'application Termux
et tous ses plugins utilisent le même sharedUserId
com.termux
et donc tous leurs APK installés sur un appareil doivent avoir été signés avec la même clé de signature pour fonctionner ensemble et ils doivent donc tous être installés à partir de la même source. N'essayez pas de les mélanger, c'est-à-dire n'essayez pas d'installer une application ou un plugin de F-Droid
et un autre d'une source différente comme GitHub
. Android Package Manager n'autorisera normalement pas non plus l'installation d'APK avec des signatures différentes et vous obtiendrez des erreurs lors de l'installation telles que 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
, etc. la restriction peut être contournée avec root ou avec des roms personnalisées.
Si vous souhaitez installer à partir d'une source différente, vous devez d'abord désinstaller tous les APK de Termux ou de son application de plug-in existants de votre appareil, puis installer tous les nouveaux APK à partir de la même nouvelle source. Consultez la section Désinstallation pour plus de détails. Vous pouvez également envisager de sauvegarder Termux avant la désinstallation afin de pouvoir le restaurer après la réinstallation à partir d'une source différente de Termux.
Dans les paragraphes suivants, « bootstrap » fait référence aux packages minimaux fournis avec l' termux-app
elle-même pour démarrer un environnement shell fonctionnel. Ses zips sont construits et libérés ici.
L'application Termux peut être obtenue auprès de F-Droid
à partir d'ici.
Vous n'avez pas besoin de télécharger l'application F-Droid
(via le lien Download F-Droid
) pour installer Termux. Vous pouvez télécharger l'APK Termux directement depuis le site en cliquant sur le lien Download APK
au bas de chaque section de version.
Il faut généralement quelques jours (voire une semaine ou plus) pour que les mises à jour soient disponibles sur F-Droid
une fois qu'une mise à jour a été publiée sur GitHub
. Les versions F-Droid
sont créées et publiées par F-Droid
une fois qu'ils détectent une nouvelle version GitHub
. Les responsables de Termux n'ont aucun contrôle sur la création et la publication des applications Termux sur F-Droid
. De plus, les responsables de Termux n'ont pas non plus accès aux clés de signature APK des versions F-Droid
, nous ne pouvons donc pas publier nous-mêmes un APK sur GitHub
qui serait compatible avec les versions F-Droid
.
Il arrive souvent que l'application F-Droid
ne vous informe pas des mises à jour et vous devrez manuellement effectuer une action de balayage déroulant dans l'onglet Updates
de l'application pour qu'elle puisse vérifier les mises à jour. Assurez-vous que les optimisations de la batterie sont désactivées pour l'application, consultez https://dontkillmyapp.com/ pour plus de détails sur la façon de procéder.
Seul un APK universel est publié, qui fonctionnera sur toutes les architectures prises en charge. La taille de l'installation de l'APK et du bootstrap sera ~180MB
F-Droid
ne prend pas en charge les APK spécifiques à l'architecture.
L'application Termux peut être obtenue sur GitHub
soit à partir GitHub Releases
pour la version >= 0.118.0
, soit à partir des workflows GitHub Build Action
. Pour Android >= 7
, installez uniquement les variantes apt-android-7
. Pour Android 5
et 6
, installez uniquement les variantes apt-android-5
.
Les APK pour GitHub Releases
seront répertoriés dans la liste déroulante Assets
d'une version. Ceux-ci sont automatiquement joints lorsqu'une nouvelle version est publiée.
Les APK pour les workflows d’action GitHub Build
seront répertoriés dans la section Artifacts
d’une exécution de workflow. Ceux-ci sont créés pour chaque commit/push effectué vers le référentiel et peuvent être utilisés par les utilisateurs qui ne veulent pas attendre les versions et souhaitent essayer immédiatement les dernières fonctionnalités ou qui souhaitent tester leurs demandes d'extraction. Notez que pour les workflows d'action, vous devez être connecté à un compte GitHub
pour que les liens Artifacts
soient activés/cliquables. Si vous utilisez l'application GitHub
, assurez-vous d'ouvrir le lien de flux de travail dans un navigateur comme Chrome ou Firefox sur lequel votre compte GitHub est connecté, car le navigateur intégré à l'application peut ne pas être connecté.
Les APK pour les deux sont debuggable
et sont compatibles entre eux, mais ils ne sont pas compatibles avec d’autres sources.
Des APK universels et spécifiques à l’architecture sont publiés. La taille de l'installation de l'APK et du bootstrap sera ~180MB
si vous utilisez l'universel et ~120MB
si vous utilisez une architecture spécifique. Vérifiez ici pour plus de détails.
Avertissement de sécurité : les fichiers APK sur GitHub sont signés avec une clé de test qui a été partagée avec la communauté. Ce n'est PAS une clé de développeur officielle et tout le monde peut l'utiliser pour générer des versions pour ses propres tests. Soyez très prudent lorsque vous utilisez des versions Termux GitHub obtenues ailleurs, sauf https://github.com/termux/termux-app. Tout le monde peut l'utiliser pour créer une mise à jour malveillante de Termux installable sur la version GitHub. Réfléchissez à deux fois avant d'installer des versions Termux distribuées via Telegram ou d'autres médias sociaux. Si votre appareil est infecté par un logiciel malveillant, nous ne pourrons pas vous aider.
La clé de test ne doit pas être utilisée pour usurper l'identité de @termux et ne peut de toute façon pas être utilisée à cette fin. Nous ne faisons pas confiance à cette clé et il est assez facile de détecter son utilisation dans le contenu généré par l'utilisateur.
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
Il existe actuellement une version de Termux disponible sur Google Play pour les appareils Android 11+, avec des ajustements approfondis afin de répondre aux exigences de la politique. Ceci est en cours de développement et manque de fonctionnalités et de bugs (voir ici pour les mises à jour de statut) par rapport à la version stable de F-Droid, c'est pourquoi la plupart des utilisateurs qui le peuvent devraient toujours utiliser la version F-Droid ou GitHub comme mentionné ci-dessus.
Actuellement, Google Play tentera de mettre à jour les installations en dehors de celles de F-Droid. La mise à jour échouera toujours car sharedUserId a été supprimé. Une version 0.118.1 F-Droid prévue résoudra ce problème en définissant un code de version supérieur à celui utilisé pour l'application PlayStore. Pendant ce temps, pour empêcher Google Play de tenter de télécharger puis de ne pas installer les versions de Google Play sur des installations existantes, vous pouvez ouvrir les pages des applications Termux sur Google Play, puis cliquer sur le bouton d'options à 3 points en haut à droite, puis désactiver le Activez la bascule de mise à jour automatique. Cependant, les mises à jour des applications Termux s'afficheront toujours dans la liste des mises à jour des applications PlayStore.
Si vous souhaitez aider à tester la version de Google Play (ou si vous ne pouvez pas installer Termux à partir d'autres sources), sachez qu'elle est construite à partir d'un référentiel distinct (https://github.com/termux-play-store/) - assurez-vous pour y signaler les problèmes, car les problèmes rencontrés pourraient très bien être spécifiques à ce référentiel.
La désinstallation peut être nécessaire si un utilisateur ne souhaite plus que Termux soit installé sur son appareil ou s'il passe à une autre source d'installation. Vous pouvez également envisager de sauvegarder Termux avant la désinstallation.
Pour désinstaller complètement Termux, vous devez désinstaller tous les fichiers APK de Termux ou de son application de plug-in existants répertoriés dans Application et plug-ins Termux.
Accédez à Android Settings
-> Applications
, puis recherchez ces applications. Vous pouvez également utiliser la fonction de recherche si elle est disponible sur votre appareil et rechercher termux
dans la liste des applications.
Même si vous pensez n'avoir installé aucun des plugins, il est fortement suggéré de parcourir la liste des applications dans les paramètres Android et de revérifier.
Tous les liens de la communauté sont disponibles ici.
Les principaux sont les suivants.
RUN_COMMAND
VTE (libvte) : widget d'émulateur de terminal pour GTK+, principalement utilisé dans gnome-terminal. Source, Problèmes ouverts et Tous les problèmes (y compris fermés).
iTerm 2 : application de terminal OS X. Source, problèmes et documentation (qui comprend les codes d'échappement propriétaires iTerm2).
Konsole : application de terminal KDE. Source, notamment tests, Bugs et Souhaits.
hterm : implémentation du terminal JavaScript de Chromium. Source, y compris tests, et groupe Google.
xterm : Le grand-père des émulateurs de terminaux. Source.
Connectbot : client SSH Android. Source
Émulateur de terminal Android : application de terminal Android sur laquelle est basée la gestion du terminal Termux. Inactif. Source.
Vous pouvez aider à déboguer les problèmes de l'application Termux
et de ses plugins en définissant Log Level
logcat
approprié dans les paramètres de l'application Termux
-> <APP_NAME>
-> Debugging
-> Log Level
(nécessite la version de l'application Termux
>= 0.118.0
). Le Log Level
est par défaut Normal
et le niveau de journalisation Verbose
enregistre actuellement des informations supplémentaires. Il est préférable de rétablir le niveau de journalisation sur Normal
une fois le débogage terminé, car des données privées pourraient autrement être transmises à logcat
pendant le fonctionnement normal et, de plus, une journalisation supplémentaire augmente le temps d'exécution.
Les applications du plugin n'exécutent pas les commandes elles-mêmes mais envoient des intentions d'exécution à l'application Termux
, qui possède son propre niveau de journalisation qui peut être défini dans les paramètres de l'application Termux
-> Termux
-> Debugging
-> Log Level
. Vous devez donc définir le niveau de journalisation pour Termux
et les paramètres de l'application du plugin correspondant pour obtenir toutes les informations.
Une fois les niveaux de journalisation définis, vous pouvez exécuter la commande logcat
dans le terminal de l'application Termux
pour afficher les journaux en temps réel ( Ctrl+c
pour arrêter) ou utiliser logcat -d > logcat.txt
pour effectuer un vidage du journal. Vous pouvez également afficher les journaux depuis un PC via ADB
. Pour plus d'informations, consultez le guide officiel Android logcat
ici.
De plus, les utilisateurs peuvent également générer automatiquement des informations stat
sur les fichiers termux et un vidage logcat
avec le menu d'options de longue attente du terminal More
-> Option Report Issue
et en sélectionnant YES
dans l'invite affichée pour ajouter des informations de débogage. Cela peut être utile pour signaler et déboguer d’autres problèmes. Si le rapport généré est trop volumineux, alors l'option Save To File
dans le menu contextuel (3 points en haut à droite) de ReportActivity
peut être utilisée et le fichier affiché/partagé à la place.
Les utilisateurs doivent publier un rapport complet (éventuellement sans informations sensibles) lorsqu'ils signalent des problèmes. Les problèmes ouverts avec des captures d'écran (partielles) des rapports d'erreurs au lieu du texte seront probablement automatiquement fermés/supprimés.
Off
: ne connectez rien.Normal
: démarrez la journalisation des erreurs, des messages d'avertissement et d'information et des traces de pile.Debug
: démarrez la journalisation des messages de débogage.Verbose
- Commencez à enregistrer les messages détaillés. La bibliothèque partagée termux a été ajoutée dans v0.109
. Il définit les constantes et les utilitaires partagés de l'application Termux et de ses plugins. Il a été créé pour permettre la suppression de tous les chemins codés en dur dans l'application Termux. Certains plugins termux l'utilisent également et le reste le fera à l'avenir. Si vous contribuez au code qui utilise une constante ou un utilitaire pouvant être partagé, définissez-le dans la bibliothèque termux-shared
s'il n'existe pas actuellement et référencez-le à partir de là. Mettez également à jour les journaux des modifications pertinents. Les demandes d'extraction utilisant des valeurs codées en dur ne seront/ne devraient pas être acceptées. Les classes spécifiques à l'application et au plugin Termux doivent être ajoutées sous le package com.termux.shared.termux
et les classes générales en dehors de celui-ci. La LICENSE
termux-shared
doit également être vérifiée et mise à jour si nécessaire lors de la contribution au code. Les licences de toute bibliothèque ou code externe doivent être honorées.
Les principales constantes Termux sont définies par la classe TermuxConstants
. Il contient également des informations sur la façon de créer Termux ou de le créer avec votre propre nom de package. Changer le nom du package nécessitera de créer les packages zip d'amorçage et d'autres packages avec le nouveau $PREFIX
, consultez Building Packages pour plus d'informations.
Consultez les bibliothèques Termux pour savoir comment importer les bibliothèques termux dans les applications de plug-in et Forking et développement local pour savoir comment mettre à jour les bibliothèques termux pour les plugins.
Le versionName
dans les fichiers build.gradle
de Termux et de ses applications de plug-in doit suivre la spécification sémantique de la version 2.0.0
au format major.minor.patch(-prerelease)(+buildmetadata)
. Lorsque vous remplacez versionName
dans les fichiers build.gradle
et lors de la création d'une balise pour les nouvelles versions sur GitHub, assurez-vous d'inclure également le numéro de correctif, comme v0.1.0
au lieu de simplement v0.1
. Les fichiers build.gradle
et le workflow attach_debug_apks_to_release
valident également la version et la construction/pièce jointe échouera si versionName
ne suit pas les spécifications.
Les messages de validation doivent utiliser la spécification Conventional Commits afin que les chagelogs selon la spécification Keep a Changelog puissent être automatiquement générés par le script create-conventional-changelog
, vérifiez son dépôt pour plus de détails sur la spécification. La première lettre pour type
et description
doit être majuscule et la description doit être au présent. L'espace après les deux points :
est nécessaire. Pour un changement radical, ajoutez un point d'exclamation !
avant les deux points :
, afin qu'il soit automatiquement mis en surbrillance dans le chagelog.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Seuls les types
répertoriés ci-dessous doivent être utilisés exactement tels qu’ils sont utilisés dans les titres du journal des modifications. Par exemple, Added: Add foo
, Added|Fixed: Add foo and fix bar
, Changed!: Change baz as a breaking change
, etc. Vous pouvez éventuellement ajouter une portée également, comme Fixed(terminal): Fix some bug
. N'utilisez rien d'autre comme type, comme add
au lieu de Added
, etc.
TermuxConstants
pour obtenir des instructions sur les modifications à apporter dans l'application pour changer le nom du package.TermuxConstants
de la bibliothèque termux-shared
et n'ont pas de valeurs com.termux
codées en dur et devront être corrigés manuellement.