Installer et utiliser ADB

De nombreux aspects du développement de Firefox OS nécessitent l'installation d'ADB, (Android Debug Bridge). Cet article explique comment faire et propose quelques commandes usuelles et utiles d'ADB.

Installer ADB

Vous pouvez installer adb à partir du paquet Android SDK disponible pour Mac, Linux et Windows — allez sur la page Get the Android SDK.

Vous pouvez aussi installer cette extension Firefox, ce qui est plus rapide.

Si vous utilisez la dernière version stable de votre système d'exploitation, alors ADB a de grandes chances d'être maintenu par un membre de la communauté dans les dépôts :

Le résumé suivant (WIP) indique comment télécharger ADB pour les distributions utilisant les dépôts de Debian, Fedora et Archlinux ainsi que pour Mac OS X.

Debian et distributions dérivées (TAILS, *buntu, Elementary OS)

sudo apt-get install android-tools-adb

Fedora 19, 20, 21, et distributions dérivées

sudo yum install android-tools

Archlinux et distributions dérivées

yaourt -S android-tools android-udev

Mac OS X

Vous aurez besoin de Homebrew pour utiliser l'utilitaire adb : brew.sh.

Lancez ensuite la commande suivante :

brew install android-platform-tools

Autre

Si votre distribution ne possède pas les paquets adb (par exemple Ubuntu 12.04 ou Fedora 17/18), vous aurez besoin d'installer le paquet starter Android SDK pour votre plateforme (choisissez l'ADT Bundle, et non pas l'option SDK Tools Only). Puis démarrer le gestionnaire de paquet, $SDK_HOME/tools/android, et utiliser l'interface graphique pour installer "Android SDK Platform-tools".

Regardez où adb est installé (généralement dans usr/bin, et peut être aussi à l'intérieur de adt/platform-tools, selon où vous l'avez installé). Pensez à ajouter ce répertoire à votre PATH. Vous pouvez faire ça en ajoutant la ligne

PATH=$SDK_HOME:$PATH

en remplaçant $SDK_HOME avec l'emplacement du SDK Android, dans votre ~/.bashrc ou équivalent.

Dépannage

Installer les bibliothèques de compatibilité 32 bits

Vous pourrez traiter de données en 32 bits. Si votre système d'exploitation est en 64 bits, cela signifie qu'il vous faudra des bibliothèques de compatibilité 32 bits.

Le résumé ci-dessous (WIP) indique comment les télécharger depuis les dépôts de Debian et Archlinux :

Debian et distributions dérivées (TAILS, *buntu, Elementary OS)

sudo apt-get install ia32-libs

Archlinux et distributions dérivées

Pour intégrer des bibliothèques de compatibilité 32 bits, il faut indiquer à pacman que vous souhaitez les paquets venant de multilib.

Le dépôt multilib devrait être présent par défaut, mais vous pouvez, dans le cas contraire, modifier votre pacman.conf et décommenter ou taper les lignes suivantes :

[multilib]

Include = /etc/pacman.d/mirrorlist

Installez ensuite les paquets lib32-libstdc++5 et lib32-zlib à l'aide de la commande suivante :

yaourt -S lib32-libstdc++5 lib32-zlib

Appareil non listé par 'adb devices'

Si votre appareil n'est pas affiché en tapant 'adb device', cliquez ici pour suivre les étapes de résolutions.

Commandes ADB usuelles

Les sections suivantes expliquent quelques commandes usuelles d'adb.

Redémarrer le processus b2g

b2g est l'équivalent d'une application XULRunner fonctionnant sur le téléphone sur un kernel basé sur Android. Si vous souhaitez le redémarrer, c'est une manière de mettre à zéro l'environnement applicatif sans redémarrer entièrement l'appareil. Vous pouvez faire cela en entrant la commande suivante dans votre terminal en ayant votre appareil connecté à votre ordinateur (ou lorsque le déboggeur est installé) :

adb shell killall b2g

Activer la redirection de port pour le déboggage

Pour activer simplement la redirection de port (par exemple si vous souhaitez utiliser le gestionnaire d'applications pour débogger des applications Firefox OS sur un appareil), entrez la commande suivante dans votre terminal :

adb forward tcp:6000 localfilesystem:/data/local/debugger-socket

Vous aurez besoin de faire ça à chaque fois que le téléphone est redémarré ou débranché puis rebranché. Vous pouvez changer le nombre du socket si nécessaire.

Rediriger des ports à une machine locale

Pour rediriger des ports à une machine locale, vous aurez besoin de télécharger les binaires netcat et ssh, et exécuter les commandes suivantes :

# Ceci est un hack horrible, mais il fonctionne...
hôte$ adb forward tcp:7979 tcp:6969

# Crée quelques pipes nommés pour faire un netcat bi-directionnel
téléphone$ mknod readback p
hôte$ mknod readback p

# cela met en place une connexion utilisable une seule fois pour se connecter à l'hôte
# écoute sur les ports 6969 et 5959 et redirige toutes les informations entre elles
téléphone$ ./netcat -l -p 6969 < readback | ./netcat -l -p 5959 > readback
# connecte au port 7979 (port 6969 sur l'appareil) et le serveur ssh local et redirige toutes les informations entre elles 
hôte$ ./netcat localhost 7979 < readback | ./netcat localhost 22 > readback

# maintenant lorsque nous nous connectons au port 5959 sur le téléphone cela sera comme si nous nous connectons au serveur ssh sur l'hôte 

# utilise le reverse netcat pour paramétrer une connexion ssh de retour à l'hôte et redirige le port 9999 sur l'appareil à 'localhost:8000' (cela peut être n'importe quoi comme 'google.com:80')
téléphone$ ./ssh localhost -p 5959 -L 9999:localhost:8000

Celà redirigera le port 9999 sur l'appareil au port 8000 de l'hôte.

Sinon vous pouvez utiliser un serveur SSH (dropbear et host_key) directement sur l'appareil en entrant les commandes suivantes :

téléphone$ DROPBEAR_PASSWORD=root ./dropbear -p 9000 -F -v -a -r host_key ./dropbear
hôte$ adb forward tcp:8888 tcp:9000
# l'authentification avec clé publique à été codée en dur pour fonctionner (assurez-vous que vous avez une clé publique ssh à utiliser)
hôte$ ssh -vvv root@localhost -p 8888 -R 9999:people.mozilla.org:80

Plus de ressources :

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : jwhitlock, eaoden, SphinxKnight, GeekShadow
 Dernière mise à jour par : jwhitlock,