
Homelab 19 : prendre la main sur son téléphone Android à distance, sans cloud
Votre téléphone charge sur la table du salon et vous êtes au bureau. Vous voulez voir son écran, y installer une application ou lire ses journaux. Aucun service tiers n'est nécessaire : Android sait déjà écouter le réseau, et sur votre réseau privé ce canal ne sort jamais de chez vous. Nous avons monté tout cela aujourd'hui sur un téléphone sous Android 16 : chaque commande ci-dessous a été exécutée pour de vrai.
Ce que vous y gagnez. L'écran du téléphone dans une fenêtre de votre PC, avec le clavier et la souris qui agissent dessus ; l'installation d'applications et la lecture des journaux en ligne de commande, depuis n'importe quel réseau où se trouve votre téléphone. Zéro cloud, zéro compte chez un tiers : la liaison est chiffrée de bout en bout par votre réseau privé Tailscale (voir le tuto backbone).
Prérequis
- Un téléphone sous Android 11 ou plus : le débogage sans fil existe depuis cette version. Les captures et commandes de ce chapitre viennent d'un appareil sous Android 16.
- Le téléphone et la machine de confiance sur votre réseau privé : chacun reçoit une adresse en
100.x.y.zet un nom, joignable de partout (le tuto backbone couvre l'installation, dix minutes par appareil). - Sur la machine de confiance :
adb(paquetandroid-toolssous Arch,adbsous Debian et Ubuntu) etscrcpy(pacman -S scrcpyouapt install scrcpy).
1. Activer le débogage sans fil
Ouvrez les options pour développeurs (sept appuis sur « Numéro de build » dans les informations du téléphone si elles sont encore cachées), puis activez l'interrupteur Débogage sans fil. Touchez son nom pour ouvrir sa page : elle affiche le nom de l'appareil et, surtout, son adresse IP et son port. Ce port-là est le port de connexion ; notez-le.
2. Appairer une fois, se connecter toujours
Sur la page du débogage sans fil, touchez « Associer l'appareil avec un code d'association ». Le téléphone affiche un code à six chiffres et un port d'appairage, différent du port de connexion et à usage unique. Depuis la machine de confiance :
adb pair 100.x.y.z:<port-appairage> 123456
adb connect 100.x.y.z:<port-connexion>
L'appairage survit aux redémarrages du téléphone. Le port de connexion, lui, peut changer au fil du temps : quand adb connect échoue des jours plus tard, relisez le port sur la page du débogage sans fil et reconnectez — l'appairage, lui, est toujours là.
3. Une même identité adb sur plusieurs machines
adb signe chaque machine avec une clé, rangée dans ~/.android/adbkey et ~/.android/adbkey.pub. Copiez ces deux fichiers sur votre second PC et le téléphone y voit la même machine autorisée : aucun ré-appairage. Traitez cette clé comme une clé SSH : elle donne un accès complet au téléphone, elle se range dans un dossier protégé, jamais dans un courriel ni sur une clé USB qui traîne.
4. Voir et piloter l'écran avec scrcpy
scrcpy -s 100.x.y.z:<port-connexion>
Une fenêtre affiche l'écran du téléphone ; votre souris clique, votre clavier tape, le copier-coller passe dans les deux sens. Trois options que nous utilisons tout le temps :
--no-audio: pas de son, utile sur une liaison étroite.--turn-screen-off: l'écran physique du téléphone s'éteint pendant que vous continuez de voir et d'agir — la batterie vous remercie.--no-window --record seance.mkv: enregistrer sans afficher de fenêtre, pour garder une trace d'un diagnostic.
5. À quoi ça sert, concrètement
- Installer ou mettre à jour une application :
adb install -r mon-app.apk. C'est ainsi que nous poussons chaque nouvelle version de notre propre application (voir publier son APK hors du Play Store) sur le téléphone de test, sans le toucher. - Lire les journaux :
adb logcat. C'est en lisant le journal à distance que nous avons trouvé le plantage de notre APK sur une permission audio — le genre de bug invisible tant qu'on ne regarde pas ce que le téléphone raconte. - Automatiser l'interface :
adb shell input tap 540 1200pour toucher,input swipepour glisser,uiautomator dumppour lire l'arbre des éléments affichés,screencappour une capture. De quoi laisser un agent piloter le téléphone pendant que vous faites autre chose (voir un agent qui tourne sur un serveur).
Sécurité, honnêtement
Le débogage sans fil écoute sur toutes les interfaces du téléphone. Sur un Wi-Fi public, le port est exposé — certes derrière la clé d'appairage, qui refuse toute machine inconnue, mais un port ouvert reste une surface. Deux règles simples : coupez l'interrupteur quand vous n'en avez pas besoin, ou ne l'activez que si le téléphone vit sur votre réseau privé. C'est Tailscale qui rend ce montage raisonnable : sans réseau privé, nous ne le laisserions pas ouvert.
Pièges
Le code d'appairage est à usage unique et expire : refermez la fenêtre, le code meurt. Gardez-la ouverte le temps du adb pair.
Le port de connexion change au gré des réveils du téléphone. Un adb connect qui échoue ne veut pas dire que l'appairage est perdu : relisez le port affiché et reconnectez.
Écran éteint, zéro image : si scrcpy n'affiche rien, vérifiez d'abord que le téléphone n'est pas en veille. (--turn-screen-off est autre chose : scrcpy éteint l'écran physique mais continue de recevoir l'affichage.)
Le verrouillage par code PIN ne se contourne pas — et tant mieux. adb vous donne beaucoup de pouvoir, pas celui de déverrouiller un téléphone éteint ou verrouillé. Un téléphone volé reste fermé.
Chez nous, ça sert à
Gérer l'APK de notre application à distance : installer la version du jour, lire le journal quand un testeur signale un comportement étrange, et laisser le téléphone tête baissée dans la poche pendant qu'un agent le pilote pour une tâche répétitive. Le téléphone de test n'a plus quitté son coin de bureau ; nous si.
Sources
Utile ? Dites-nous ce qu'il faut mesurer ensuite.
Commentaires
Ni compte ni traceur : un commentaire est lu par un humain avant d'apparaître.