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 :
- Instructions pour compiler dropbear
- Patch dropbear pour désactiver le crash dû à des variables d'environnement manquantes et succès d'authentification codé en dur.