Termux é um aplicativo de terminal Android e ambiente Linux.
Observe que este repositório é para o próprio aplicativo (a interface do usuário e a emulação do terminal). Para os pacotes instaláveis dentro do aplicativo, consulte termux/termux-packages.
Instruções rápidas sobre o gerenciamento de pacotes Termux estão disponíveis em Gerenciamento de Pacotes. Ele também contém informações sobre como corrigir erros repository is under maintenance or down
ao executar comandos apt
ou pkg
.
Estamos procurando mantenedores de aplicativos Termux Android.
AVISO: Termux pode ser instável no Android 12+. O sistema operacional Android eliminará quaisquer processos (fantasmas) superiores a 32 (o limite é para todos os aplicativos combinados) e também eliminará quaisquer processos que usem CPU excessiva. Você pode receber a mensagem [Process completed (signal 9) - press Enter]
no terminal sem realmente sair do processo shell. Verifique o problema relacionado nº 2366, rastreador de problemas, documentos de processos fantasmas em cache e vazios e este comentário do TLDR sobre como desabilitar o corte de processos fantasmas e de uso excessivo da CPU. Uma página de documentos adequada será adicionada posteriormente. Uma opção para desabilitar a matança deve estar disponível no Android 12L ou 13, então atualize por sua conta e risco se você estiver no Android 11, especialmente se não tiver root.
O aplicativo Termux principal vem com os seguintes aplicativos de plug-in opcionais.
A versão mais recente é v0.118.1
.
AVISO: É altamente recomendável que você atualize para v0.118.0
ou superior o mais rápido possível para várias correções de bugs, incluindo uma vulnerabilidade crítica legível por todos relatada aqui. Veja abaixo informações sobre o Termux no Google Play.
O Termux pode ser obtido através de várias fontes listadas abaixo apenas para Android >= 7
com suporte completo para aplicativos e pacotes.
O suporte para aplicativos e pacotes foi eliminado para Android 5
e 6
em 01/01/2020 na v0.83
, no entanto, foi adicionado novamente apenas para o aplicativo sem qualquer suporte para atualizações de pacotes em 24/05/2022 por meio das fontes do GitHub . Confira aqui os detalhes.
Os arquivos APK de diferentes fontes são assinados com diferentes chaves de assinatura. O aplicativo Termux
e todos os seus plug-ins usam o mesmo sharedUserId
com.termux
e, portanto, todos os APKs instalados em um dispositivo devem ter sido assinados com a mesma chave de assinatura para funcionarem juntos e, portanto, todos devem ser instalados da mesma fonte. Não tente misturá-los, ou seja, não tente instalar um aplicativo ou plugin do F-Droid
e outro de uma fonte diferente como GitHub
. O Android Package Manager normalmente também não permitirá a instalação de APKs com assinaturas diferentes e você receberá erros na instalação, como 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. a restrição pode ser contornada com root ou com roms personalizadas.
Se desejar instalar de uma fonte diferente, você deve primeiro desinstalar todo e qualquer APK existente do Termux ou de seu aplicativo de plug-in do seu dispositivo e, em seguida, instalar todos os novos APKs da mesma nova fonte. Verifique a seção Desinstalação para obter detalhes. Você também pode considerar fazer backup do Termux antes da desinstalação, para que possa restaurá-lo após reinstalar a partir de uma fonte diferente do Termux.
Nos parágrafos seguintes, "bootstrap" refere-se aos pacotes mínimos que são enviados com o próprio termux-app
para iniciar um ambiente shell funcional. Seus zips são construídos e liberados aqui.
O aplicativo Termux pode ser obtido no F-Droid
aqui.
Você não precisa baixar o aplicativo F-Droid
(através do link Download F-Droid
) para instalar o Termux. Você pode baixar o APK Termux diretamente do site clicando no link Download APK
na parte inferior de cada seção de versão.
Geralmente leva alguns dias (ou até uma semana ou mais) para que as atualizações estejam disponíveis no F-Droid
assim que uma atualização for lançada no GitHub
. As versões F-Droid
são criadas e publicadas pelo F-Droid
assim que detectam uma nova versão GitHub
. Os mantenedores do Termux não têm nenhum controle sobre a construção e publicação dos aplicativos Termux no F-Droid
. Além disso, os mantenedores do Termux também não têm acesso às chaves de assinatura do APK das versões F-Droid
, portanto, não podemos lançar um APK no GitHub
que seja compatível com as versões F-Droid
.
O aplicativo F-Droid
muitas vezes pode não notificá-lo sobre atualizações e você terá que deslizar manualmente para baixo na guia Updates
do aplicativo para verificar as atualizações. Certifique-se de que as otimizações de bateria estejam desativadas para o aplicativo, verifique https://dontkillmyapp.com/ para obter detalhes sobre como fazer isso.
Foi lançado apenas um APK universal, que funcionará em todas as arquiteturas suportadas. O tamanho da instalação do APK e do bootstrap será de ~180MB
. F-Droid
não oferece suporte a APKs específicos de arquitetura.
O aplicativo Termux pode ser obtido no GitHub
em GitHub Releases
para versão >= 0.118.0
ou em fluxos de trabalho GitHub Build Action
. Para Android >= 7
, instale apenas variantes apt-android-7
. Para Android 5
e 6
, instale apenas variantes apt-android-5
.
Os APKs para GitHub Releases
serão listados no menu suspenso Assets
de uma versão. Eles são anexados automaticamente quando uma nova versão é lançada.
Os APKs para fluxos de trabalho de ação GitHub Build
serão listados na seção Artifacts
de uma execução de fluxo de trabalho. Eles são criados para cada commit/push feito no repositório e podem ser usados por usuários que não querem esperar por lançamentos e querem experimentar os recursos mais recentes imediatamente ou querem testar suas solicitações pull. Observe que para fluxos de trabalho de ação, você precisa estar conectado a uma conta GitHub
para que os links Artifacts
sejam habilitados/clicáveis. Se você estiver usando o aplicativo GitHub
, certifique-se de abrir o link do fluxo de trabalho em um navegador como o Chrome ou Firefox que tenha sua conta GitHub conectada, pois o navegador do aplicativo pode não estar conectado.
Os APKs de ambos são debuggable
e compatíveis entre si, mas não são compatíveis com outras fontes.
APKs universais e específicos de arquitetura são lançados. O tamanho da instalação do APK e do bootstrap será ~180MB
se usar universal e ~120MB
se usar arquitetura específica. Confira aqui mais detalhes.
Aviso de segurança : os arquivos APK no GitHub são assinados com uma chave de teste que foi compartilhada com a comunidade. Esta NÃO É uma chave oficial do desenvolvedor e todos podem usá-la para gerar versões para seus próprios testes. Tenha muito cuidado ao usar compilações Termux GitHub obtidas em outro lugar, exceto https://github.com/termux/termux-app. Todos podem usá-lo para forjar uma atualização maliciosa do Termux instalável na versão do GitHub. Pense duas vezes antes de instalar compilações do Termux distribuídas via Telegram ou outras mídias sociais. Se o seu dispositivo for pego por malware, não poderemos ajudá-lo.
A chave de teste não deve ser usada para representar @termux e não pode ser usada de qualquer maneira. Esta chave não é confiável para nós e é muito fácil detectar seu uso em conteúdo gerado pelo usuário.
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
Atualmente, há uma versão do Termux disponível no Google Play para dispositivos Android 11+, com amplos ajustes para atender aos requisitos da política. Ele está em desenvolvimento e tem funcionalidades e bugs ausentes (veja aqui para atualizações de status) em comparação com a versão estável do F-Droid, e é por isso que a maioria dos usuários que podem ainda devem usar a versão F-Droid ou GitHub conforme mencionado acima.
Atualmente, o Google Play tentará atualizar as instalações do F-Droid. A atualização ainda falhará porque sharedUserId foi removido. Uma versão planejada do 0.118.1 F-Droid corrigirá isso definindo um código de versão superior ao usado para o aplicativo PlayStore. Enquanto isso, para evitar que o Google Play tente fazer download e não consiga instalar as versões do Google Play nas instalações existentes, você pode abrir as páginas dos aplicativos Termux no Google Play e clicar no botão de opções de 3 pontos no canto superior direito e desativar o Ative a alternância de atualização automática. No entanto, as atualizações dos aplicativos Termux ainda serão exibidas na lista de atualizações de aplicativos da PlayStore.
Se você quiser ajudar no teste da versão do Google Play (ou não puder instalar o Termux de outras fontes), esteja ciente de que ele foi criado a partir de um repositório separado (https://github.com/termux-play-store/) - certifique-se para relatar problemas lá, já que quaisquer problemas encontrados podem muito bem ser específicos desse repositório.
A desinstalação pode ser necessária se um usuário não quiser mais que o Termux seja instalado em seu dispositivo ou estiver mudando para uma fonte de instalação diferente. Você também pode considerar fazer backup do Termux antes da desinstalação.
Para desinstalar completamente o Termux, você deve desinstalar todo e qualquer Termux existente ou seus APKs de aplicativos de plug-in listados em Aplicativo e plug-ins Termux.
Vá para Android Settings
-> Applications
e procure esses aplicativos. Você também pode usar o recurso de pesquisa se estiver disponível no seu dispositivo e pesquisar termux
na lista de aplicativos.
Mesmo se você achar que não instalou nenhum dos plug-ins, é altamente recomendável consultar a lista de aplicativos nas configurações do Android e verificar novamente.
Todos os links da comunidade estão disponíveis aqui.
Os principais são os seguintes.
RUN_COMMAND
VTE (libvte): Widget emulador de terminal para GTK+, usado principalmente no gnome-terminal. Origem, problemas em aberto e todos os problemas (incluindo os fechados).
iTerm 2: aplicativo de terminal OS X. Fonte, problemas e documentação (que inclui códigos de escape proprietários do iTerm2).
Konsole: aplicativo de terminal do KDE. Fonte, em particular testes, Bugs e Wishes.
hterm: implementação de terminal JavaScript do Chromium. Fonte, incluindo testes e grupo do Google.
xterm: O avô dos emuladores de terminal. Fonte.
Connectbot: cliente SSH Android. Fonte
Emulador de terminal Android: aplicativo de terminal Android no qual o manuseio do terminal Termux se baseia. Inativo. Fonte.
Você pode ajudar a depurar problemas do aplicativo Termux
e seus plug-ins definindo Log Level
logcat
apropriado nas configurações do aplicativo Termux
->
-> Debugging
-> Log Level
(requer a versão do aplicativo Termux
>= 0.118.0
). O Log Level
é padronizado como Normal
e o nível de log Verbose
atualmente registra informações adicionais. É melhor reverter o nível de log para Normal
depois de concluir a depuração, pois, caso contrário, os dados privados poderão ser passados para logcat
durante a operação normal e, além disso, o log adicional aumenta o tempo de execução.
Os aplicativos de plug-in não executam os comandos sozinhos , mas enviam intenções de execução para o aplicativo Termux
, que possui seu próprio nível de log que pode ser definido nas configurações do aplicativo Termux
-> Termux
-> Debugging
-> Log Level
. Portanto, você deve definir o nível de log para Termux
e as respectivas configurações do aplicativo de plug-in para obter todas as informações.
Depois que os níveis de log forem definidos, você pode executar o comando logcat
no terminal do aplicativo Termux
para visualizar os logs em tempo real ( Ctrl+c
para parar) ou usar logcat -d > logcat.txt
para fazer um dump do log. Você também pode visualizar os logs de um PC via ADB
. Para obter mais informações, verifique o guia oficial logcat
do Android aqui.
Além disso, os usuários podem gerar informações stat
de arquivos termux e dump logcat
automaticamente também com o menu de opções de espera longa do terminal More
-> Report Issue
e selecionando YES
no prompt mostrado para adicionar informações de depuração. Isso pode ser útil para relatar e depurar outros problemas. Se o relatório gerado for muito grande, a opção Save To File
no menu de contexto (3 pontos no canto superior direito) de ReportActivity
poderá ser usada e o arquivo visualizado/compartilhado.
Os usuários devem publicar um relatório completo (opcionalmente sem informações confidenciais) ao relatar problemas. Problemas abertos com capturas de tela (parciais) de relatórios de erros em vez de texto provavelmente serão fechados/excluídos automaticamente.
Off
- não registra nada.Normal
- inicia o registro de erros, mensagens de aviso e informações e rastreamentos de pilha.Debug
- Comece a registrar mensagens de depuração.Verbose
- Comece a registrar mensagens detalhadas. A biblioteca compartilhada termux foi adicionada na v0.109
. Ele define constantes e utilitários compartilhados do aplicativo Termux e seus plugins. Ele foi criado para permitir a remoção de todos os caminhos codificados no aplicativo Termux. Alguns dos plug-ins do termux também estão usando isso e o restante o fará no futuro. Se você estiver contribuindo com código que usa uma constante ou um utilitário que pode ser compartilhado, defina-o na biblioteca termux-shared
se ele não existir no momento e referencie-o a partir daí. Atualize também os changelogs relevantes. Solicitações pull usando valores codificados não serão/devem ser aceitas. Classes específicas do aplicativo Termux e do plugin devem ser adicionadas no pacote com.termux.shared.termux
e classes gerais fora dele. A LICENSE
termux-shared
também deve ser verificada e atualizada, se necessário, ao contribuir com código. As licenças de qualquer biblioteca ou código externo devem ser respeitadas.
As principais constantes do Termux são definidas pela classe TermuxConstants
. Ele também contém informações sobre como fazer um fork do Termux ou construí-lo com seu próprio nome de pacote. Alterar o nome do pacote exigirá a construção dos pacotes zip de bootstrap e outros pacotes com o novo $PREFIX
, verifique Construindo Pacotes para obter mais informações.
Verifique Bibliotecas Termux para saber como importar bibliotecas termux em aplicativos de plug-in e Forking and Local Development para saber como atualizar bibliotecas termux para plug-ins.
O versionName
nos arquivos build.gradle
do Termux e seus aplicativos de plug-in devem seguir a especificação semântica da versão 2.0.0
no formato major.minor.patch(-prerelease)(+buildmetadata)
. Ao inserir versionName
em arquivos build.gradle
e ao criar uma tag para novos lançamentos no GitHub, certifique-se de incluir também o número do patch, como v0.1.0
em vez de apenas v0.1
. Os arquivos build.gradle
e o fluxo de trabalho attach_debug_apks_to_release
também validam a versão e a compilação/anexo falhará se versionName
não seguir as especificações.
As mensagens de commit devem usar a especificação Convencional Commits para que os chagelogs de acordo com a especificação Keep a Changelog possam ser gerados automaticamente pelo script create-conventional-changelog
, verifique seu repositório para obter mais detalhes sobre a especificação. A primeira letra do type
e description
deve ser maiúscula e a descrição deve estar no presente. O espaço após os dois pontos :
é necessário. Para uma alteração significativa, adicione um ponto de exclamação !
antes dos dois pontos :
, para que seja destacado no chagelog automaticamente.
[optional scope]:
[optional body]
[optional footer(s)]
Somente os types
listados abaixo devem ser usados exatamente como são usados nos cabeçalhos do changelog. Por exemplo, Added: Add foo
, Added|Fixed: Add foo and fix bar
, Changed!: Change baz as a breaking change
, etc. Opcionalmente, você também pode adicionar um escopo, como Fixed(terminal): Fix some bug
. Não use mais nada como tipo, como add
em vez de Added
, etc.
TermuxConstants
para obter instruções sobre quais alterações fazer no aplicativo para alterar o nome do pacote.TermuxConstants
da biblioteca termux-shared
e possuem valores com.termux
codificados e precisarão ser corrigidos manualmente.