>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Java

Como Transformar um Celular Android Antigo em um Servidor Autônomo Usando o Termux Boot

Muitos de nós têm um smartphone Android antigo pegando poeira em casa. A tela está ligeiramente rachada, a bateria não carrega bem e você não consegue vendê-lo por um preço razoável. No entanto, lá dentro há um processador quad-core perfeitamente funcional e alguns gigabytes de RAM. Esse hardware faz um excelente servidor doméstico para bots do Telegram, scripts leves de automação ou um nó SSH local.

O terminal Termux transformou há muito tempo o Android em um ambiente Linux completo. Mas há um problema irritante. Se o smartphone desligar por causa da bateria fraca ou reiniciar após uma atualização, todos os processos em execução morrerão. Você terá que abrir manualmente o aplicativo, digitar comandos e reiniciar os serviços do zero.

O complemento Termux:Boot ajuda a resolver esse problema. É um utilitário que se conecta ao evento de inicialização do sistema operacional e executa scripts do usuário.

Como o Início Automático Funciona no Android

O Android é rigoroso quanto a processos em segundo plano. O sistema não permite que aplicativos iniciem junto com o SO sem o consentimento direto do usuário e permissões especiais.

O Termux:Boot funciona como uma ponte entre o evento do sistema BOOT_COMPLETED e seu ambiente Linux dentro do Termux. Quando o smartphone é ligado, o complemento recebe um sinal do sistema, verifica o diretório designado do usuário e executa os arquivos executáveis encontrados lá em ordem.

Há uma nuance com a assinatura de aplicativos aqui. O Termux e o Termux:Boot se comunicam através de direitos de acesso compartilhados. Devido às regras de segurança do Android, ambos os aplicativos devem ser assinados com a mesma chave do desenvolvedor.

Se você instalou o Termux principal do F-Droid, então o plugin Termux:Boot também deve vir estritamente do F-Droid. Tentar misturar um build do Google Play com um APK do F-Droid resultará em um erro de acesso. Se você quiser testar os commits mais recentes, os desenvolvedores fazem upload de builds de debug no GitHub Actions. Mas lembre-se: mudar a fonte de instalação exigirá remover completamente o Termux e todos os seus plugins.

Configuração Passo a Passo

O esquema de configuração é simples. Tudo se resume a criar uma pasta e alguns arquivos de texto.

Primeiro, você precisa instalar o complemento Termux:Boot em si. Após a instalação, certifique-se de encontrar seu ícone no menu de aplicativos e toque nele uma vez. Isso concede ao complemento permissão para interceptar o início automático do sistema. Sem essa ação, o Android simplesmente bloqueará a inicialização em segundo plano.

Então abra o terminal Termux e crie o diretório para os scripts:

mkdir -p ~/.termux/boot/

Todos os arquivos colocados nessa pasta se tornarão cenários de início automático. Se houver vários arquivos na pasta, o plugin os executará em ordem alfabética.

Para evitar que o smartphone caia em sono profundo cinco minutos após a inicialização, o comando termux-wake-lock é útil no início dos scripts. Ele força o Android a manter a CPU em estado desperto.

Exemplos de Scripts Funcionais

Vamos percorrer alguns cenários práticos. Uma tarefa comum é obter acesso SSH ao dispositivo imediatamente após o início do sistema.

Vamos criar o arquivo ~/.termux/boot/start-sshd:

#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
sshd

Certifique-se de tornar o arquivo executável, caso contrário o sistema o ignorará:

chmod +x ~/.termux/boot/start-sshd

Agora quando você reiniciar o telefone, o Termux ativará o servidor SSH em segundo plano. Você poderá se conectar a ele pela rede sem qualquer interação com a tela.

Se você usa o pacote termux-services para gerenciar daemons do sistema (um equivalente ao systemd em distribuições Linux regulares), o script de inicialização fica assim:

#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
source /data/data/com.termux/files/usr/etc/profile.d/start-services.sh

Crie este arquivo em ~/.termux/boot/start-services, dê a ele permissões de execução e todos os serviços habilitados através do comando sv-enable iniciarão automaticamente.

Casos de Uso Práticos

O valor principal do projeto está na autonomia completa. O smartphone se transforma em um mini-servidor silencioso com sua própria fonte de alimentação ininterrupta embutida.

Aqui estão alguns cenários claros:

  • Hospedagem de bot do Telegram. O bot inicia com o dispositivo e funciona sem supervisão constante.
  • Sincronização de arquivos via Syncthing. O telefone funciona como um nó 24/7 para fazer backup de fotos ou documentos.
  • Monitoramento de rede doméstica. Um script verifica periodicamente a disponibilidade do roteador ou serviços externos e envia notificações em caso de falhas.
  • Servidor de banco de dados local como SQLite ou PostgreSQL para coletar logs de dispositivos de casa inteligente.

Depuração e Armadilhas

Não há soluções perfeitas, e o Termux:Boot tem suas próprias peculiaridades.

A economia agressiva de energia em firmwares Android modernos adora matar processos em segundo plano. MIUI, One UI e EMUI são especialmente culpados por isso. Para fazer o plugin funcionar sem problemas, vá para as configurações de bateria do Android e desative a otimização de bateria para o Termux e Termux:Boot. Em firmwares semelhantes ao MIUI, você também deve permitir manualmente que o complemento seja iniciado automaticamente nas configurações do aplicativo.

Então vale a pena verificar a funcionalidade de registro. Se seu script não estiver iniciando, redirecione a saída de erro para um arquivo diretamente no script:

#!/data/data/com.termux/files/usr/bin/sh
exec 2>&1
exec 1>/sdcard/termux-boot.log
termux-wake-lock
echo "Boot completed at $(date)"

Dessa forma, você verá imediatamente se o script tropeçou em caminhos de variáveis de ambiente ou não conseguiu encontrar o binário necessário.

Após atualizar aplicativos ou fazer flash no dispositivo, às vezes você precisa iniciar o Termux:Boot manualmente novamente através do ícone na área de trabalho.

Conclusão

O Termux:Boot é um plugin extremamente simples com uma única tarefa, e ele faz esse trabalho bem. O código fonte Java ocupa espaço mínimo e a lógica é compreensível para qualquer pessoa familiarizada com bash básico.

Se você está planejando construir um servidor doméstico ou um sistema de automação compacto a partir de um smartphone antigo, este complemento economizará seu tempo durante reinicializações acidentais do dispositivo.

Projetos relacionados