dimanche 21 novembre 2010

Configurer son mobile Android en debug sous Ubuntu

Après de nombreuses bidouilles pour faire reconnaître mon téléphone mobile Android en mode debug sous Ubuntu, voici un petit step by steb qui devrait vous permettre de tester vos applications Android depuis Eclipse. La méthode a fonctionnée avec mon Samsung Galaxy S i9000. Elle devrait également marcher avec d'autres téléphones (HTC Hero, HTC Desire, Sony Xperia, Motorola Droid, ...) si vous n'arrivez pas à le faire reconnaitre par l'ADB :

user@ubuntu:$ ./adb devices
List of devices attached
???????????? no permissions


La commande ./adb s'exécute depuis le répertoire d'installation du SDK Android.

La première étape consiste à récupérer le Vendor ID du périphérique USB correspondant à votre téléphone. Utilisez pour cela la commande usb-device :

user@ubuntu:$ usb-devices

T: Bus=02 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=02(commc) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=04e8 ProdID=681c Rev=04.00
S: Manufacturer=SAMSUNG
S: Product=SAMSUNG_Android
S: SerialNumber=1000239e45c7
C: #Ifs= 4 Cfg#= 3 Atr=c0 MxPwr=96mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=cdc_acm
I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_acm
I: If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=usbfs


Le code hexa 04e8 est à renseigner dans un fichier 51-android.rules sous /etc/udev/rules.d. Les fichier doit être créé avec les droits root :

user@ubuntu:$ sudo gedit /etc/udev/rules.d/51-android.rules

Y inscrire la ligne :

SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"

L'idVendor correspond ici au code hexa récupéré pour le Samsung Galaxy S. Il ne reste ensuite plus qu'à redémarrer l'ADB :

user@ubuntu:$ sudo ./adb kill-server
user@ubuntu:$ sudo ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
user@ubuntu:$ ./adb devices
List of devices attached
1000239e45c7 device


Le téléphone est correctement reconnu. Les applications peuvent ainsi directement être lancées depuis Eclipse sur le téléphone. Bon développement !

1 commentaire:

  1. Merci pour cette info ! J'étais bloqué dessus.

    On peut utiliser lsusb au lieu de usb-devices, ça donne moins de lignes mais c'est plus condensé et il faut savoir où se trouve le vendorId. Voici une ligne de lsusb :

    Bus 002 Device 010: ID 12d1:3610 Huawei Technologies Co., Ltd.

    Le vendorId est 12d1.

    RépondreSupprimer

Fork me on GitHub