Come Trasformare un Vecchio Telefono Android in un Server Indipendente Usando Termux Boot
Molti di noi hanno un vecchio smartphone Android che raccoglie polvere a casa. Lo schermo è leggermente crepato, la batteria non tiene più la carica come una volta, e non puoi rivenderlo a un prezzo ragionevole. Tuttavia, all'interno c'è un processore quad-core perfettamente funzionante e un paio di gigabyte di RAM. Questo hardware lo rende un eccellente server domestico per bot Telegram, script di automazione leggeri o un nodo SSH locale.
Il terminale Termux ha trasformato Android in un vero e proprio ambiente Linux. Ma c'è un fastidioso inconvenient. Se lo smartphone si spegne per una batteria scarica o si riavvia dopo un aggiornamento, tutti i processi in esecuzione moriranno. Dovrai aprire manualmente l'app, digitare i comandi e riavviare i servizi da zero.
Il componente aggiuntivo Termux:Boot aiuta a risolvere questo problema. È un'utilità che si aggancia all'evento di avvio del sistema operativo ed esegue gli script dell'utente.
Come Funziona l'Avvio Automatico in Android
Android è rigoroso riguardo ai processi in background. Il sistema non consente alle app di avviarsi insieme al sistema operativo senza il consenso diretto dell'utente e autorizzazioni speciali.
Termux:Boot funziona come un ponte tra l'evento di sistema BOOT_COMPLETED e il tuo ambiente Linux all'interno di Termux. Quando lo smartphone si accende, il componente aggiuntivo riceve un segnale dal sistema, controlla la directory designata dall'utente ed esegue i file eseguibili trovati in ordine.
C'è una sfumatura qui riguardo alla firma delle app. Termux e Termux:Boot comunicano attraverso diritti di accesso condivisi. A causa delle regole di sicurezza di Android, entrambe le app devono essere firmate con la stessa chiave sviluppatore.
Se hai installato Termux principale da F-Droid, anche il plugin Termux:Boot deve provenire rigorosamente da F-Droid. Tentare di mescolare una build di Google Play con un APK di F-Droid risulterà in un errore di accesso. Se vuoi testare gli ultimi commit, gli sviluppatori caricano build di debug su GitHub Actions. Ma ricorda: cambiare la fonte di installazione richiederà la rimozione completa di Termux e di tutti i suoi plugin.
Configurazione Passo-Passo
Lo schema di configurazione è semplice. Tutto si riduce a creare una cartella e un paio di file di testo.
Prima di tutto, devi installare il componente aggiuntivo Termux:Boot stesso. Dopo l'installazione, assicurati di trovare la sua icona nel menu delle app e toccala una volta. Questo concede al componente aggiuntivo il permesso di intercettare l'avvio automatico del sistema. Senza questa azione, Android bloccherà semplicemente l'avvio in background.
Quindi apri il terminale Termux e crea la directory per gli script:
mkdir -p ~/.termux/boot/
Tutti i file posizionati in questa cartella diventeranno scenari di avvio automatico. Se ci sono più file nella cartella, il plugin li eseguirà in ordine alfabetico.
Per impedire che lo smartphone cada in sonno profondo cinque minuti dopo l'avvio, il comando termux-wake-lock è utile all'inizio degli script. Forza Android a mantenere la CPU in uno stato attivo.
Esempi di Script Funzionanti
Esaminiamo un paio di scenari pratici. Un task comune è ottenere l'accesso SSH al dispositivo immediatamente dopo l'avvio del sistema.
Creiamo il file ~/.termux/boot/start-sshd:
#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
sshd
Assicurati di rendere il file eseguibile, altrimenti il sistema lo ignorerà:
chmod +x ~/.termux/boot/start-sshd
Ora quando riavvii il telefono, Termux avvierà il server SSH in background. Potrai connetterti ad esso tramite la rete senza alcuna interazione con lo schermo.
Se usi il pacchetto termux-services per gestire i daemon di sistema (un equivalente di systemd nelle distribuzioni Linux normali), lo script di avvio si presenta così:
#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
source /data/data/com.termux/files/usr/etc/profile.d/start-services.sh
Crea questo file in ~/.termux/boot/start-services, dagli i permessi di esecuzione, e tutti i servizi abilitati tramite il comando sv-enable si avvieranno automaticamente.
Casi d'Uso Pratici
Il valore principale del progetto risiede nell'autonomia completa. Lo smartphone si trasforma in un mini-server silenzioso con la propria alimentazione ininterrotta integrata.
Ecco alcuni scenari chiari:
- Hosting di bot Telegram. Il bot si avvia con il dispositivo e funziona senza supervisione costante.
- Sincronizzazione file tramite Syncthing. Il telefono funziona come un nodo 24/7 per il backup di foto o documenti.
- Monitoraggio della rete domestica. Uno script verifica periodicamente la disponibilità del router o dei servizi esterni e invia notifiche in caso di guasti.
- Server database locale come SQLite o PostgreSQL per raccogliere log da dispositivi domotici.
Debug e Insidie
Non esistono soluzioni perfette, e Termux:Boot ha le sue particolarità.
Il risparmio energetico aggressivo nei firmware Android moderni ama terminare i processi in background. MIUI, One UI ed EMUI sono particolarmente colpevoli di questo. Per far funzionare il plugin senza problemi, vai nelle impostazioni della batteria di Android e disabilita l'ottimizzazione della batteria per Termux e Termux:Boot. sui firmware simili a MIUI, dovresti anche consentire manualmente l'avvio automatico del componente aggiuntivo nelle impostazioni dell'app.
Vale poi la pena controllare la funzionalità di logging. Se il tuo script non si avvia, reindirizza l'output degli errori a un file direttamente nello 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)"
In questo modo vedrai immediatamente se lo script è inciampato su percorsi di variabili d'ambiente o non ha trovato il binario richiesto.
Dopo aver aggiornato le app o fatto il flash del dispositivo, a volte devi lanciare manualmente Termux:Boot di nuovo tramite l'icona sul desktop.
Conclusione
Termux:Boot è un plugin estremamente semplice con un singolo compito, e lo svolge bene. Il codice sorgente Java occupa uno spazio minimo, e la logica è comprensibile per chiunque abbia familiarità con bash di base.
Se stai pianificando di costruire un server domestico o un sistema di automazione compatto da uno smartphone vecchio, questo componente aggiuntivo ti farà risparmiare tempo durante i riavvii accidentali del dispositivo.
Progetti correlati