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