Utiliser l’ADB de Windows depuis WSL2

Introduction

WSL2 (Windows Subsystem for Linux 2) est une excellente solution pour les dĂ©veloppeurs souhaitant exĂ©cuter un environnement Linux sur Windows. Cependant, l’utilisation d’ADB (Android Debug Bridge) sous WSL2 peut ĂȘtre problĂ©matique, car l’instance de WSL2 ne peut pas directement accĂ©der aux ports ouverts par ADB sur Windows.

Dans cet article, nous allons voir comment configurer WSL2 pour qu’il utilise l’ADB de Windows, permettant ainsi de dĂ©boguer et interagir avec des appareils Android connectĂ©s via USB.


1. Pré-requis

  • WSL2 installĂ© : Si ce n’est pas encore fait, suivez la documentation officielle de Microsoft pour installer WSL2 : WSL Docs
  • ADB installĂ© sur Windows : Vous pouvez tĂ©lĂ©charger les Android SDK Platform Tools depuis le site officiel : Android Developer Platform Tools

Vérifiez que adb.exe est accessible via la variable PATH de Windows.

  • USB Debugging activĂ© sur votre appareil Android : Assurez-vous que le mode dĂ©veloppeur et le dĂ©bogage USB sont activĂ©s.

2. Configurer Windows pour exécuter ADB

  • Ouvrez un terminal cmd ou PowerShell et exĂ©cutez :
adb kill-server
adb -a -P 5037 nodaemon server start
  • Cela assure que le serveur ADB tourne sur toutes les interfaces rĂ©seau de Windows, y compris celle accessible depuis WSL2.
  • VĂ©rifiez que votre appareil est dĂ©tectĂ© : adb devices Vous devriez voir une liste des appareils connectĂ©s.

3. Configurer WSL2 pour utiliser le serveur ADB de Windows

L’idĂ©e est de faire pointer WSL2 vers le serveur ADB de Windows en rĂ©cupĂ©rant dynamiquement l’adresse IP de l’hĂŽte Windows.

DĂ©tection automatique de l’IP de Windows

Dans WSL2, exĂ©cutez la commande suivante pour obtenir l’IP de Windows :

ip route | awk '/^default via / {print $3}'

Ajoutez maintenant ces lignes à votre ~/.bashrc ou ~/.zshrc pour que la connexion soit automatique à chaque démarrage :

# Détecter automatiquement l'adresse IP de l'hÎte Windows
export WSL_HOST_IP=$(ip route | awk '/^default via / {print $3}')
export ADB_SERVER_SOCKET="tcp:$WSL_HOST_IP:5037"

Rechargez le fichier de configuration :

source ~/.bashrc  # ou source ~/.zshrc si vous utilisez zsh

4. Vérifier la connexion ADB depuis WSL2

Maintenant que tout est configuré, testons la connexion :

adb devices

Vous devriez voir la liste des appareils détectés, ce qui signifie que WSL2 communique correctement avec ADB sous Windows.


5. Dépannage

Si l’appareil ne s’affiche pas, essayez les solutions suivantes :

  • VĂ©rifiez que le serveur ADB tourne bien sur Windows :
adb kill-server
adb -a -P 5037 nodaemon server start
  • RedĂ©marrez ADB sur WSL2 :
adb kill-server
adb start-server
  • Assurez-vous que l’IP rĂ©cupĂ©rĂ©e par WSL2 est correcte :
echo $WSL_HOST_IP
  • Testez ensuite la connexion directe :
nc -zv $WSL_HOST_IP 5037
  • Si la connexion Ă©choue, vĂ©rifiez votre pare-feu Windows.

Conclusion

En suivant ces Ă©tapes, vous pouvez dĂ©sormais utiliser ADB sous WSL2 tout en profitant des outils et scripts disponibles dans votre environnement Linux. Cette configuration est idĂ©ale pour les dĂ©veloppeurs Android qui souhaitent travailler dans un environnement UNIX sans perdre l’accĂšs aux outils Windows.

Avec cette approche, plus besoin d’installer ADB sous WSL2 ni de configurer des accĂšs USB complexes. Vous avez maintenant un environnement de dĂ©veloppement Android fluide et fonctionnel sous WSL2 ! 🚀