>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Java

Comment transformer un ancien téléphone Android en serveur autonome avec Termux Boot

Beaucoup d'entre nous ont un ancien smartphone Android qui prend la poussière à la maison. L'écran est légèrement fissuré, la batterie ne tient plus très bien la charge, et vous ne pouvez pas le vendre à un prix raisonnable. Pourtant, à l'intérieur se trouve un processeur quadricœur parfaitement fonctionnel et quelques gigaoctets de RAM. Ce matériel constitue un excellent serveur domestique pour les bots Telegram, les scripts d'automatisation légers ou un nœud SSH local.

Le terminal Termux a depuis longtemps transformé Android en un environnement Linux complet. Mais il y a un inconvenient désagréable. Si le smartphone s'éteint à cause d'une batterie déchargée ou redémarre après une mise à jour, tous les processus en cours seront interrompus. Vous devrez ouvrir manuellement l'application, saisir des commandes et redémarrer les services从头开始.

L'extension Termux:Boot aide à résoudre ce problème. C'est un utilitaire qui se connecte à l'événement de démarrage du système d'exploitation et exécute les scripts utilisateur.

Comment fonctionne le démarrage automatique sous Android

Android est strict concernant les processus en arrière-plan. Le système n'autorise pas les applications à démarrer avec l'OS sans le consentement direct de l'utilisateur et des autorisations spéciales.

Termux:Boot sert de pont entre l'événement système BOOT_COMPLETED et votre environnement Linux dans Termux. Lorsque le smartphone s'allume, l'extension reçoit un signal du système, examine le répertoire désigné par l'utilisateur et exécute les fichiers exécutables trouvés dans l'ordre.

Il y a une nuance concernant la signature des applications. Termux et Termux:Boot communiquent via des droits d'accès partagés. En raison des règles de sécurité d'Android, les deux applications doivent être signées avec la même clé de développeur.

Si vous avez installé Termux depuis F-Droid, l'extension Termux:Boot doit également provenir exclusivement de F-Droid. Tenter de mélanger une version du Google Play avec un APK F-Droid entraînera une erreur d'accès. Si vous souhaitez tester les derniers commits, les développeurs uploadent des builds de débogage sur GitHub Actions. Mais n'oubliez pas : changer la source d'installation nécessitera de supprimer complètement Termux et toutes ses extensions.

Configuration paso a paso

Le schéma de configuration est simple. Tout se résume à créer un dossier et quelques fichiers texte.

D'abord, vous devez installer l'extension Termux:Boot elle-même. Après l'installation, pensez à trouver son icône dans le menu des applications et à taper dessus une fois. Cela accorde à l'extension la permission d'intercepter le démarrage automatique du système. Sans cette action, Android bloquera simplement le démarrage en arrière-plan.

Puis ouvrez le terminal Termux et créez le répertoire pour les scripts :

mkdir -p ~/.termux/boot/

Tous les fichiers placés dans ce dossier deviendront des scénarios de démarrage automatique. S'il y a plusieurs fichiers dans le dossier, l'extension les exécutera dans l'ordre alphabétique.

Pour empêcher le smartphone de tomber en veille profonde cinq minutes après le démarrage, la commande termux-wake-lock s'avère utile au tout début des scripts. Elle force Android à maintenir le CPU en état éveillé.

Exemples de scripts fonctionnels

Passons en revue quelques scénarios pratiques. Une tâche courante consiste à obtenir un accès SSH à l'appareil immédiatement après le démarrage du système.

Créons le fichier ~/.termux/boot/start-sshd :

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

Assurez-vous de rendre le fichier exécutable, sinon le système l'ignorera :

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

Maintenant, lorsque vous redémarrez le téléphone, Termux lancera le serveur SSH en arrière-plan. Vous pourrez vous y connecter via le réseau sans aucune interaction avec l'écran.

Si vous utilisez le paquet termux-services pour gérer les démons système (un équivalent de systemd dans les distributions Linux classiques), le script de démarrage ressemble à ceci :

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

Créez ce fichier dans ~/.termux/boot/start-services, attribuez-lui les permissions d'exécution, et tous les services activés via la commande sv-enable démarreront automatiquement.

Cas d'utilisation pratiques

La valeur principale du projet réside dans son autonomie complète. Le smartphone se transforme en mini-serveur silencieux avec son propre onduleur intégré.

Voici quelques scénarios concrets :

  • Hébergement de bot Telegram. Le bot démarre avec l'appareil et fonctionne sans surveillance constante.
  • Synchronisation de fichiers via Syncthing. Le téléphone fonctionne comme un nœud 24h/24 pour sauvegarder des photos ou des documents.
  • Surveillance du réseau domestique. Un script vérifie périodiquement la disponibilité du routeur ou des services externes et envoie des notifications en cas d'échec.
  • Serveur de base de données local comme SQLite ou PostgreSQL pour collecter les journaux des appareils domotiques.

Débogage et pièges

Il n'existe pas de solutions parfaites, et Termux:Boot a ses propres particularités.

L'économie d'énergie agressive des firmwares Android modernes adore tuer les processus en arrière-plan. MIUI, One UI et EMUI sont particulièrement coupables de cela. Pour que l'extension fonctionne sans problème, allez dans les paramètres de batterie d'Android et désactivez l'optimisation de la batterie pour Termux et Termux:Boot. Sur les firmwares de type MIUI, vous devriez également autoriser manuellement l'extension à démarrer automatiquement dans les paramètres de l'application.

Ensuite, il vaut la peine de vérifier la fonctionnalité de journalisation. Si votre script ne démarre pas, redirigez la sortie d'erreur vers un fichier directement dans le 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)"

Ainsi, vous verrez immédiatement si le script s'est heurté à des chemins de variables d'environnement ou s'il n'a pas pu trouver le binaire requis.

Après la mise à jour des applications ou le flashage de l'appareil, vous devez parfois relancer manuellement Termux:Boot via l'icône sur l'écran d'accueil.

Conclusion

Termux:Boot est une extension extrêmement simple avec une seule tâche, et elle s'en acquitte bien. Le code source Java occupe un espace minimal, et la logique est compréhensible pour toute personne familiarisée avec le bash de base.

Si vous envisagez de construire un serveur domestique ou un système d'automatisation compact à partir d'un ancien smartphone, cette extension vous fera gagner du temps lors des redémarrages accidentels de l'appareil.

Projets similaires