# Termux

Termux é um emulador de terminal livre e de código aberto para Android, que permite a execução de um ambiente Linux em um dispositivo Android. O Termux instala automaticamente um sistema base mínimo; pacotes adicionais estão disponíveis através de seu gerenciador de pacotes, baseado no do Debian.
A maioria dos comandos disponíveis no Linux pode ser usada no Termux, assim como comandos internos do Bash. Há também outros shells disponíveis, como Zsh e tcsh.

## Visão geral

Os pacotes são compilados cruzadamente com Android NDK e contêm correções de compatibilidade para funcionarem no Android. Como todos os arquivos são instalados no diretório do aplicativo, root não é necessário.
Há mais de mil pacotes disponíveis, e os usuários podem solicitar novos. Alternativamente, os pacotes podem ser compilados a partir do código-fonte, pois o Termux suporta diversas ferramentas de compilação, incluindo CMake, Meson, GNU Autotools, além de compiladores para C++, Rust, Go, Swift e outras linguagens de programação.
O Termux também pode instalar interpretadores para linguagens como Ruby, Python e JavaScript.
Editores de texto baseados em terminal, como Emacs e Vim, podem ser instalados. Também é possível executar aplicações com GUI no Termux usando um servidor VNC e instalando um ambiente de desktop (Xfce, LXQt, MATE) ou um gerenciador de janelas.
Outro uso popular do Termux é sua capacidade de executar containers de várias distribuições Linux que normalmente utilizariam o comando chroot sem precisar de privilégios de root, utilizando o PRoot. Isso permite acesso a muitos mais pacotes através do gerenciador de pacotes da distribuição escolhida do que diretamente no Termux, embora formatos populares de containers de aplicativos, como Flatpak e Snap, não possam ser usados sem acesso root, pois exigem permissões de montagem do sistema de arquivos.

### Interface do usuário

A interface do usuário do Termux é bastante simples, exibindo apenas a linha de teclas extras e a saída do terminal. O esquema de cores e a fonte podem ser alterados através do Termux: Styling.
A linha de teclas extras também pode ser personalizada. Os usuários podem adicionar mais teclas de função e controles editando ~/.termux/termux.properties.
O Termux possui suporte para mouse/toque, permitindo interagir com programas como htop e outras aplicações baseadas em ncurses. A rolagem é feita deslizando para cima ou para baixo no buffer do terminal.

### Configuração

Os usuários configuram o Termux editando ~/.termux/termux.properties.

### Complementos

O Termux também inclui 7 complementos:
* Termux:API: expõe funcionalidades do Android para aplicações CLI.
* Termux:Styling: permite alterar o esquema de cores e a fonte do terminal.
* Termux:Boot: executa comandos do Termux na inicialização do sistema.
* Termux:GUI: permite que alguns aplicativos do Termux tenham uma GUI usando os recursos padrão do Android; não funciona com aplicativos X11/Wayland.
* Termux:Widget: permite que os usuários executem scripts em um widget dedicado ou atalho na tela inicial.
* Termux:Float: executa sessões de terminal em uma janela flutuante.
* Termux:Tasker: integra o Tasker com o Termux.
Os complementos devem ser instalados da mesma fonte que o aplicativo para garantir que o mesmo ID de usuário seja usado.

## História

O Termux foi lançado inicialmente em 2015. O suporte para solicitação de pacotes e recursos foi adicionado através de issues no GitHub. Também é possível contribuir com o projeto adicionando novos recursos e pacotes.
Em janeiro de 2020, a equipe de desenvolvimento do Termux encerrou o suporte para dispositivos rodando Android 5-6, tornando o Android 7 a versão mínima exigida.
O Termux v0.101 foi a última versão a ser atualizada na Google Play Store. Desde novembro de 2020, o Google Play exige que os aplicativos tenham como alvo a API 29, o que impede a execução de binários em diretórios privados do aplicativo. Segundo o Google:
   Aplicativos não confiáveis que têm como alvo o Android 10 não podem invocar exec em arquivos dentro do diretório home do aplicativo. Essa execução de arquivos de um diretório gravável do aplicativo é uma violação W^X. Os aplicativos devem carregar apenas o código binário embutido no arquivo APK do aplicativo.
A equipe de desenvolvimento do Termux recomenda a migração para o F-Droid para continuar recebendo atualizações, pois o F-Droid não impõe tais restrições. Também é possível baixar arquivos APK do repositório do projeto no GitHub.
Em maio de 2021, o Bintray, que era o principal host para os pacotes do Termux, encerrou seus serviços. O Termux migrou para a Hetzner, outro serviço de hospedagem.

## Instalação

O processo de instalação extrai o arquivo bootstrap do APK, define as permissões corretas para os executáveis e configura diretórios como o diretório home. A versão da Play Store do Termux não está mais sendo atualizada; os usuários são incentivados a instalar o Termux pelo F-Droid ou GitHub para receber as atualizações mais recentes.

## Gerenciamento e distribuição de pacotes

Os pacotes no Termux são instalados através do gerenciador de pacotes da aplicação (pkg) e usam o formato .deb. No entanto, pacotes normais do Debian não podem ser instalados, pois o Termux não é compatível com o FHS.

## Utilizabilidade

O termux vem sido utilizado para executar serviços ou nodes, efeitos visuais, emulação de jogos, ajustes de limitações do software, aprendizado e automação, bem como testes de aplicações, permitindo um diagnóstico mais profundo de problemas. O terminal também é amplamente usado para gerenciamento de serviços e redes, como ao administrar servidores, gerir banco de dados e configurar redes em ambientes de produção, segurança da informação, para varreduras, semiautomatizar tarefas com intuito de prevenir e monitorar atividades suspeita.