[Guide] Commandes adb & fastboot

  • Auteur de la discussion Lao Tseu
  • Date de début
Lao Tseu

Lao Tseu

Membres VIP
Inscrit
21 Novembre 2015
Messages
1 845
Points
0
  • #1





Bonjour à tous et bienvenue sur ce mémento des commandes adb traduit en français (
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
)
Ce guide a pour but d'aider celles et ceux ayant du mal avec certaines commandes ADB et l'anglais technique.

QU'EST-CE QU'ADB ??
Android Debug Bridge (adb) est un outil en ligne de commande polyvalent qui vous permet de communiquer avec un périphérique (un émulateur ou un appareil Android connecté).
La commande adb facilite diverses actions de périphérique, telles que l'installation et le débogage des applications, et fournit un accès à un shell Unix que vous pouvez utiliser pour exécuter une variété de commandes sur un périphérique.
Il s'agit d'un programme client-serveur qui comprend trois composants:

Un client qui envoie des commandes. Le client s'exécute sur votre machine de développement. Vous pouvez invoquer un client à partir d'un terminal en ligne de commande en émettant une commande adb.
Un "deamon" (adbd), qui exécute des commandes sur un périphérique. Le "deamon" s'exécute comme un processus en arrière-plan sur chaque périphérique.
Un serveur qui gère la communication entre le client et le "deamon". Le serveur s'exécute en tant que processus en arrière-plan sur votre machine de développement.

Adb est inclus dans le pack Platform-Tools pour Android SDK.
Vous pouvez télécharger ce pack avec le Gestionnaire SDK, qui l'installe sur android_sdk/platform-tools/.
Ou si vous voulez le pack standalone Android SDK Platform-Tools, vous pouvez le télécharger
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !


COMMENT FONCTIONNE ADB
Lorsque vous démarrez un client adb, le client vérifie d'abord s'il existe déjà un processus serveur adb.
S'il n'y en a pas, il démarre le processus serveur. Lorsque le serveur démarre, il se lie au port TCP local 5037 et écoute les commandes envoyées depuis les clients adb: tous les clients adb utilisent le port 5037 pour communiquer avec le serveur adb.

Le serveur configure ensuite les connexions à tous les périphériques en cours d'exécution.
Il localise les émulateurs en numérisant des ports de numéro impair compris entre 5555 et 5585, la plage utilisée par les 16 premiers émulateurs. Lorsque le serveur trouve un "deamon" adb (adbd), il établit une connexion à ce port.
Notez que chaque émulateur utilise une paire de ports séquentiels - un port numéro pair pour les connexions de la console et un port impair pour les connexions adb. Par exemple:

Emulateur 1, console: 5554
Emulateur 1, adb: 5555
Emulateur 2, console: 5556
Emulateur 2, adb: 5557
etc...

Comme illustré, l'émulateur connecté à adb sur le port 5555 est identique à l'émulateur dont la console écoute le port 5554.
Une fois que le serveur a configuré des connexions à tous les périphériques, vous pouvez utiliser des commandes adb pour accéder à ces périphériques.
Étant donné que le serveur gère les connexions aux périphériques et gère les commandes de plusieurs clients adb, vous pouvez contrôler n'importe quel périphérique à partir de n'importe quel client (ou à partir d'un script).

ACTIVER LE DÉBOGAGE ADB SUR VOTRE APPAREIL:
Pour utiliser adb avec un périphérique connecté via USB, vous devez activer le débogage USB dans les paramètres système du périphérique, sous les options Développeur.
Sur Android 4.2 et versions ultérieures, l'écran Options du développeur est masqué par défaut. Pour le rendre visible, accédez aux Paramètres > À propos de l'appareil > Infos logiciel > Numéro de version et appuyez 5,6 ou 7 fois. Revenez à l'écran des Paramètres pour trouver les "Options de Développement" en bas.
Sur certains périphériques, l'écran Options de Développement peut être localisé ou nommé différemment.
Vous pouvez maintenant connecter votre appareil à un port USB. Vous pouvez vérifier que votre périphérique est connecté en exécutant des périphériques adb depuis le répertoire android_sdk/platform-tools/.
Si vous êtes connecté, le nom du périphérique apparaît comme un «périphérique».

Remarque: Lorsque vous connectez un périphérique fonctionnant sous Android 4.2.2 ou version ultérieure, le système affiche une boîte de dialogue demandant si vous acceptez une clé RSA permettant le débogage via cet ordinateur.
Ce mécanisme de sécurité protège les périphériques utilisateur car il garantit que le débogage USB et les autres commandes adb ne peuvent pas être exécutés, à moins que vous ne puissiez déverrouiller le périphérique et reconnaître la boîte de dialogue.

SE CONNECTER À UN PÉRIPHÉRIQUE VIA WIFI
Adb communique généralement avec le périphérique via USB, mais vous pouvez également utiliser adb via Wi-Fi après une configuration initiale via USB, comme décrit ci-dessous.
Si vous développez pour Android Wear, vous devez plutôt consulter le guide de débogage d'une application Android Wear, qui contient des instructions spéciales pour l'utilisation d'adb avec Wi-Fi et Bluetooth.

Connectez votre appareil Android et votre ordinateur hôte adb à un réseau Wi-Fi commun accessible aux deux. Attention, tous les points d'accès ne conviennent pas; Vous devrez peut-être utiliser un point d'accès dont le pare-feu est configuré correctement pour prendre en charge adb.
Si vous vous connectez à un appareil Android Wear, désactivez Bluetooth sur le téléphone qui est jumelé à l'appareil.
Connectez l'appareil à l'ordinateur hôte avec un câble USB. Définissez le périphérique cible pour écouter une connexion TCP/IP sur le port 5555.

adb tcpip 5555

Débranchez le câble USB de l'appareil cible.
Recherchez l'adresse IP de l'appareil Android. Par exemple, sur un périphérique Nexus, vous pouvez trouver l'adresse IP dans Paramètres> À propos de l'appareil (téléphone ou tablette) > État > Adresse IP.
Ou, sur un appareil Android Wear, vous pouvez trouver l'adresse IP dans Paramètres > Paramètres Wi-Fi > Avancé > Adresse IP.
Connectez-vous à l'appareil par son adresse IP.
adb connect Device_ip_address

Vérifiez que votre ordinateur hôte est connecté au périphérique cible:
adb devices Device_ip_address

Affiche la liste des périphériques connectés
Device_ip_address: 5555 device

Tout est opérationnel !

Si LA CONNEXION ADB EST PERDUE:
Assurez-vous que votre hôte est toujours connecté au même réseau Wi-Fi que votre appareil Android.
Rebranchez en exécutant à nouveau l'étape de connexion d'adb.
Ou si cela ne fonctionne pas, réinitialisez votre hôte adb:
adb kill-server

Puis recommencez depuis le début

RECHERCHE DE PÉRIPHÉRIQUES
Avant d'émettre des commandes adb, il est utile de savoir quelles instances de périphérique sont connectées au serveur adb.
Vous pouvez générer une liste de périphériques connectés à l'aide de la commande devices.

adb devices -l

En réponse, adb affiche ces informations d'état pour chaque périphérique:

Numéro de série: Chaîne créée par adb pour identifier de manière unique le périphérique par son numéro de port. Voici un exemple de numéro de série: emulator-5554
État: L'état de connexion du périphérique peut être l'un des suivants:
offline: le périphérique n'est pas connecté à adb ou ne répond pas.
device: Le périphérique est maintenant connecté au serveur adb. Notez que cet état n'implique pas que le système Android est entièrement démarré et opérationnel parce que le périphérique se connecte à adb alors que le système démarre toujours. Cependant, après l'amorçage, c'est l'état opérationnel normal d'un périphérique.
no device: Aucun périphérique n'est connecté.
Description: Si vous incluez l'option -l, la commande devices vous indique le périphérique. Cette information est utile lorsque vous avez plusieurs périphériques connectés afin que vous puissiez les distinguer.

L'exemple suivant montre la commande devices et sa sortie. Trois périphériques sont en cours d'exécution. Les deux premières lignes de la liste sont des émulateurs et la troisième ligne est un périphérique physique qui est connecté à l'ordinateur.
adb devices
List of devices attached
emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64
emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86
0a388e93 device usb:1-1 product:razor model:Nexus_7 device:flo

ÉMULATEUR NON LISTÉ
La commande "adb devices" a une séquence d'instructions de case d'angle qui fait que l'émulateur en cours d'exécution ne s'affiche pas dans la sortie des périphériques adb, même si l'émulateur est visible sur votre bureau.
Cela se produit lorsque toutes les conditions suivantes sont remplies:

Le serveur adb ne fonctionne pas, et;
Vous utilisez la commande "emulator" avec l'option "-port" ou "-ports" avec une valeur de port impair numéroté entre 5554 et 5584 et
Le port numéro impair que vous avez choisi n'est pas occupé, de sorte que la connexion au port peut être effectuée au numéro de port spécifié ou, si elle est occupée, l'émulateur bascule sur un autre port conforme aux exigences de 2 et vous démarrez le serveur adb après avoir démarré l'émulateur.

Une façon d'éviter cette situation est de laisser l'émulateur choisir ses propres ports et ne pas exécuter plus de 16 émulateurs à la fois.
Une autre façon consiste à toujours démarrer le serveur adb avant d'utiliser la commande "emulator", comme expliqué dans les exemples suivants.

Exemple 1:
Dans la séquence de commandes suivante, la commande "adb devices" démarre le serveur adb, mais la liste des périphériques n'apparaît pas.
Arrêtez le serveur adb et entrez les commandes suivantes dans l'ordre indiqué. Pour le nom avd, donnez un nom avd valide de votre système. Pour obtenir une liste de noms avd,

Tapez emulator -list-avds. La commande "emulator" se trouve dans le répertoire android_sdk/tools.

adb kill-server
emulator -avd Nexus_6_API_25 -port 5555
adb devices

Liste des périphériques connectés
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

Exemple 2:
Dans la séquence de commandes suivante, les périphériques adb affichent la liste des périphériques car le serveur adb a été lancé en premier.
Pour afficher l'émulateur dans la sortie des périphériques adb, arrêtez le serveur adb, puis recommencez après avoir utilisé la commande "emulator" et avant d'utiliser la commande "adb devices", comme suit:

adb kill-server
emulator -avd Nexus_6_API_25 -port 5557
adb start-server
adb devices


Liste des périphériques connectés
emulator-5557 device

Remarque: Si vous exécutez une commande sans spécifier un périphérique cible lorsque plusieurs périphériques sont disponibles, adb génèrera une erreur. Si vous avez plusieurs périphériques disponibles (matériel ou émulé), mais un seul est un émulateur, utilisez l'option -e pour envoyer des commandes à l'émulateur. De même, s'il y a plusieurs périphériques mais seulement un périphérique matériel connecté, utilisez l'option -d pour envoyer des commandes au périphérique matériel.

INSTALLER UNE APPLICATION
Vous pouvez utiliser adb pour installer un APK sur un émulateur ou un périphérique connecté à l'aide de la commande "install":

adb install chemin_de_l'apk

CONFIGURER LA REDIRECTION DE PORT
Vous pouvez utiliser la commande de renvoi pour configurer un renvoi de port arbitraire, qui transmet les requêtes sur un port hôte spécifique à un autre port sur un périphérique.
L'exemple suivant configure le transfert du port hôte 6100 au port 7100 du périphérique:
adb forward tcp:6100 tcp:7100

L'exemple suivant configure le transfert du port hôte 6100 vers local:logd:
adb forward tcp:6100 local:logd

COPIER DES FICHIERS VERS / DEPUIS UN PÉRIPHÉRIQUE
Utilisez les commandes "pull" et "push" pour copier des fichiers vers et depuis un périphérique.
Contrairement à la commande "install", qui ne copie qu'un fichier APK vers un emplacement spécifique, les commandes "pull" et "push" vous permettent de copier des répertoires et des fichiers arbitraires vers n'importe quel emplacement d'un périphérique.

Pour copier un fichier ou un répertoire et ses sous-répertoires à partir du périphérique, procédez comme suit:
adb pull remote local Exemple: adb pull /sdcard/Dossier/monfichier.apk c:/download/test/

Pour copier un fichier ou un répertoire et ses sous-répertoires vers l'appareil, procédez comme suit:
adb push local remote Exemple: adb push c:/download/test.txt /sdcard/Download/

ARRÊTER LE SERVEUR ADB
Dans certains cas, vous devrez peut-être mettre fin au processus du serveur adb, puis le redémarrer pour résoudre le problème (par exemple, si adb ne répond pas à une commande). Pour arrêter le serveur adb, utilisez la commande "adb kill-server". Vous pouvez ensuite redémarrer le serveur en exécutant toute autre commande adb.

RÉFÉRENCE AUX COMMANDES ADB
Vous pouvez émettre des commandes adb à partir d'une ligne de commande sur votre machine de développement ou à partir d'un script. L'utilisation est la suivante:
adb [-d | -e | -s numéro_de_serie] command

S'il n'y a qu'un seul émulateur en cours de l'exécution ou qu'un seul périphérique est connecté, la commande adb est envoyée à ce périphérique par défaut. Si plusieurs émulateurs sont en cours d'exécution et/ou plusieurs périphériques sont connectés, vous devez utiliser l'option -d, -e ou -s pour spécifier le périphérique cible auquel la commande doit être dirigée.

COMMANDES GLOBALES
-a Écoute sur toutes les interfaces réseau au lieu de seulement sur localhost
-d Dirige une commande adb vers le seul périphérique USB connecté. Renvoie une erreur lorsque plusieurs périphériques USB sont connectés.
-e Dirige une commande adb vers le seul émulateur en cours d'exécution. Renvoie une erreur lorsque plus d'un émulateur est en cours d'exécution.
-s numro_de_serie Dirige une commande adb vers un périphérique spécifique, désigné par son numéro de série attribué par adb (tel que l'émulateur-5556). Remplace la valeur du numéro de série stockée dans la variable d'environnement $ ANDROID_SERIAL.
-p produit Le nom ou le chemin d'accès au périphérique. Exemple de chemin ('angler'/'out/target/product/angler'); Le produit par défaut est la valeur dans la variable d'environnement $ ANDROID_PRODUCT_OUT.

-H serveur Nom de l'hôte du serveur adb. La valeur par défaut est localhost.
-P port Numéro de port du serveur adb. La valeur par défaut est 5037.
-L socket Écoute le socket de serveur adb fourni. La valeur par défaut est tcp:localhost:5037.

COMMANDES GÉNÉRALES
devices [-1] Affiche une liste de tous les périphériques. Utilisez l'option -l pour inclure les descriptions de périphérique.
help Affiche la liste des commandes adb prises en charge et leurs descriptions.
version Affiche la version d'adb

COMMANDES RÉSEAU
connect host[:port] Se connecter à un périphérique via TCP/IP. Si vous ne spécifiez pas de port, le port par défaut 5555 sera utilisé.
disconnect [host | host:port] Déconnectez-vous du périphérique TCP/IP spécifié exécuté sur le port spécifié. Si vous ne spécifiez pas d'hôte ou de port, tous les périphériques sont déconnectés de tous les ports TCP/IP. Si vous spécifiez un hôte, mais pas un port, le port par défaut 5555 sera utilisé.

forward -list Liste toutes les connexions redirigées du socket.
forward [--no-rebind] local remote Transférez les connexions du socket à partir du port local spécifié vers le port distant spécifié sur le périphérique. Vous pouvez spécifier les ports locaux et distants de la manière suivante:
tcp:port. Pour choisir un port ouvert, mettre la valeur locale tcp:0
localabstract:unix_domain_socket_name
localreserved:unix_domain_socket_name
localfilesystem:unix_domain_socket_name
dev:character_device_name
jdwp:pid.

forward -remove local Supprime la connexion réacheminée et spécifiée du socket.
reverse -l Liste toutes les connexions inversées du socket de l'appareil.
reverse [--no-rebind] remote local Inverse une connexion socket. L'option "--no-rebind" signifie que l'inversion échoue si la socket spécifié est déjà lié par une commande inverse précédente. Vous pouvez spécifier le port pour les arguments locaux et distants de la manière suivante:

tcp:port. choisir n'importe quel port ouvert, mettre la valeur tcp:0.
localabstract:unix_domain_socket_name.
localreserved:unix_domain_socket_name.
localfilesystem:unix_domain_socket_name.

reverse -remove remote Retire la connexion inversé du socket spécifié de l'appareil.
reverse --remove-all Retire toutes les connexions inversées du socket de l'appareil.

COMMANDES DE TRANSFERT DE FICHIERS
push local remote Copie des fichiers et des répertoires depuis le périphérique local (ordinateur) vers un emplacement sur le périphérique distant (téléphone ou tablette).
pull [-a] remote local Copie des fichiers et des répertoires distants sur un périphérique. Utilisez l'option -a pour conserver l'horodatage et le mode du fichier.

COMMANDES INSTALLATION D'APPLICATION
install [options] package Installer les packs sur le périphérique et installez-les. Les options possibles sont les suivantes:

-l: Verrouillage de l'application vers l'avant
-r: Remplacez l'application existante.
-t: Autoriser le test des packages.
-s: Installez l'application sur la carte SD.
-d: Autoriser le rétrogradage de la version du code(Débogage des packages uniquement).
-g: Attribuer toutes les autorisations d'exécution.

install-multiple [options] packages Mêmes options que l'installation avec l'ajout des éléments suivants:
-p Installation partielle de l'application.
uninstall [-k] package Supprime ce package d'application de l'appareil. Ajoutez l'option -k pour conserver les répertoires de données et du cache.

COMMANDES DE SAUVEGARDE ET DE RESTAURATION
backup [-f file] [-apk | -noapk] Écrire une archive des données de l'appareil dans le fichier. Si vous ne spécifiez pas de nom de fichier, le fichier backup.adb.
[-obb | -noobb] [-shared | -noshared]
[-all] [-system | [-nosystem] package_names La liste des packages est facultative lorsque vous spécifiez les options -all et -shared. Ce qui suit décrit les usages pour les autres options:

-apk | -noapk Sauvegarde ou ne sauvegarde pas les fichiers .apk. La valeur par défaut est -noapk.
-obb | -noobb Sauvegarde ou ne sauvegarde pas les fichiers .obb. La valeur par défaut est -noobb.
-shared | -noshared Sauvegarde ou ne sauvegarde pas le stockage partagé. La valeur par défaut est -noshared.
-all Sauvegarde toutes les applications installées.
-system | -nosystem Inclure ou non les applications système lors de la sauvegarde de toutes les applications installées (-all). La valeur par défaut est -system.
restore file Restaure le contenu du périphérique à partir du fichier.

COMMANDES DE DÉBOGAGE
bugreport path Affiche un rapport de bug du chemin spécifié. Si "path" est un répertoire, le rapport de bug est enregistré dans ce répertoire à l'aide du nom de fichier par défaut bugreport.zip. Les périphériques qui ne prennent pas en charge les rapports de bugs compressés sont affichés sur stdout.

jdwp Affiche une liste des processus JDWP disponibles sur un périphérique donné. Utilisez jdwp:pid pour se connecter à un processus JDWP spécifique. Par exemple:
adb forward tcp:8000 jdwp:472
jdb -attach localhost:8000
logcat [-help] [option] [filter-spec] Affiche les données du journal à l'écran. Pour plus d'informations sur la commande logcat et la variable d'environnement $ ANDROID_LOG_TAGS, reportez-vous
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
sur la page logcat.
La variable d'environnement $ ADB_TRACE contient une liste séparée par des virgules des informations de débogage à consigner. Les valeurs peuvent être de n'importe quelle combinaison des éléments suivants: all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport et jdwp.

Voir aussi
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
.

COMMANDES DE SÉCURITÉ
disable-verity Désactive la vérification de dm-verity sur les builds userdebug. L'option dm-verity garantit que lorsqu'un utilisateur démarre un périphérique et qu'il est dans le même état qu'il a été lors de sa dernière utilisation. Pour plus d'informations, voir
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
.
enable-verity Réactive la vérification de dm-verity sur les builds userdebug. L'option dm-verity garantit que lorsqu'un utilisateur démarre un périphérique et qu'il est dans le même état qu'il a été lors de sa dernière utilisation. Pour plus d'informations, voir
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !

keygen file Génére un chiffrement public et privé des clés privées. La clé privée est stockée dans le fichier. La clé publique est stockée dans file.pub. La variable d'environnement $ ANDROID_VENDOR_KEYS contient une liste séparée par deux points de clés (fichiers ou répertoires).

COMMANDES DE SCRIPT
wait-for [-transport] -state Attendre que l'appareil soit dans l'état spécifié.
state: Les valeurs peuvent être device, recovery, sideload ou bootloader.
transport: Les valeurs peuvent être usb, local ou any.

get-state Affiche l'état adb d'un périphérique. L'état d'ADB peut être afficher comme; offline, bootloader ou device. Pour plus d'informations, consultez
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
.
get-serialno Affiche la chaîne du numéro de série du périphérique adb. Pour plus d'informations, consultez
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
.
get-devpath Affiche le chemin du périphérique adb.
remount Remontez les partitions /system , /vendor et /oem en mode lecture-écriture.
reboot [bootloader | recovery | sideload | sideload-auto-reboot] Redémarrez l'appareil. Cette commande utilise par défaut le bootloader de l'image système, mais prend en charge le bootloader et le recovery.

L'option bootloader redémarre dans bootloader.
L'option recovery redémarre en recovery.
L'option sideload redémarre en recovery et démarre en mode sideload.
L'option sideload-auto-reboot est identique à sideload, mais redémarre après le chargement complet.

sideload otapackage (installation au format APK) du package OTA spécifié complet sur le périphérique.
root Redémarrez adbd avec les autorisations root.
unroot Redémarrez adbd sans les autorisations root.
usb Redémarrez le serveur adb en écoutant l'USB.
tcpip port-number Redémarrez le serveur adb en écoutant le TCP du port spécifié.

COMMANDES DE DÉBOGAGE INTERNES
start-server Vérifiez si le processus serveur adb est en cours d'exécution.
kill-server Terminez le processus serveur adb.
reconnect Forcer un renvoi à partir de l'hôte.
reconnect device Forcer une reconnexion à partir du périphérique pour forcer une reconnexion.

COMMANDES SHELL
shell Démarrez un shell interactif distant dans le périphérique cible. Pour plus d'informations, reportez-vous à la section Commandes shell .
shell -e escape_char [-n] [-T] [-t] [-x] [command] Lancez une commande shell dans le périphérique cible, puis quittez le shell distant. Utilisez n'importe quelle combinaison des options suivantes:
-e: Spécifiez un caractère d'échappement ou la valeur none si vous ne souhaitez pas utiliser un caractère d'échappement. Si vous ne fournissez pas de valeur, le caractère d'échappement par défaut (un tiret (-)) est utilisé.
-n: Ne pas lire de stdin.
-T: Désactive l'affectation pseudo-terminal utiity (PTY).
-t: Force l'allocation PTY.
-x: Désactive les codes de sortie à distance et la séparation stdout/stderr.

EXÉCUTER DES COMMANDES SHELL
Vous pouvez utiliser la commande shell pour émettre des commandes de périphérique via adb, avec ou sans entrer le shell distant adb sur le périphérique. Pour émettre une commande unique sans entrer un shell distant, utilisez la commande shell de la façon suivante:
adb [-d | -e | -s numéro_série] shell shell_command
Ou entrez un shell distant sur un périphérique comme celui-ci:
adb [-d | -e | -s numéro_série] shell

Lorsque vous êtes prêt à quitter le shell distant, appuyez sur Control + D ou tapez exit.
Les binaires de commandes shell sont stockés dans le système de fichiers du périphérique dans /system/bin/.

Remarque: Avec Android Platform-Tools 23 et supérieur, adb gère les arguments de la même manière que la ssh(1). Cette modification a résolu beaucoup de problèmes avec l'injection de commandes et permet maintenant d'exécuter en toute sécurité des commandes qui contiennent des métacaractères shell, tels que "adb install Let\'sGo.apk".
Mais, ce changement signifie que l'interprétation de toute commande qui contient des métacaractères shell a également changé. Par exemple, "adb shell setprop foo 'a b'" est "adb shell setprop foo 'a b'" une erreur car les guillemets simples (') sont avalés par le shell local et le "adb shell setprop foo ab" voit "adb shell setprop foo ab".
Pour que la commande fonctionne, citez deux fois, une fois pour le shell local et une fois pour le shell distant, comme pour ssh(1). Par exemple, "adb shell setprop foo "'a b'"".

GESTIONNAIRE D'ACTIVITÉ D'APPELS (am)
Dans un shell d'adb, vous pouvez exécuter des commandes avec l'outil gestionnaire d'activités (am) pour effectuer diverses actions système, telles que lancer une activité, arrêter un processus, diffuser une intention, modifier les propriétés de l'écran du périphérique, etc. Alors que dans un shell, la syntaxe est:

am command

Vous pouvez également émettre une commande de gestionnaire d'activités directement depuis adb sans entrer de shell distant. Par exemple:
adb shell am start -a android.intent.action.VIEW

COMMANDES DU GESTIONNAIRE D'ACTIVITÉS DISPONIBLES
start [options] intent Démarrer une Activité spécifiée par intention.

Les options sont:
-D: Activer le débogage.
-W: Attendez que le lancement soit terminé.
--start-profiler file: Démarrer profiler et envoyer des résultats au fichier.
-P file: Like --start-profiler Mais le profiler s'arrête lorsque l'application est inactive.
-R count: Répétez les temps de count au lancement d'activité. Avant chaque répétition, l'activité principale sera terminée.
-S: Forcer l'arrêt de l'application cible avant de lancer l'activité.
--opengl-trace: Active le traçage des fonctions OpenGL.
--user user_id | current: Spécifie l'utilisateur à exécuter en tant que; Si elle n'est pas spécifiée, exécutez-la en tant qu'utilisateur courant.

startservice [options] intent Démarrez le Service spécifié par intention.

Les options sont:
--user user_id | current: Spécifie l'utilisateur à exécuter en tant que; Si elle n'est pas spécifiée, exécutez-la en tant qu'utilisateur courant.

force-stop package Forcer l'arrêt de tout ce qui est associé au package (nom du package de l'application).
kill [options] package Tuez tous les processus associés au package (nom du package de l'application). Cette commande ne tue que les processus qui sont à "tuer" et qui n'auront pas d'impact sur l'expérience utilisateur.

Les options sont:
--user user_id | all | current: Spécifie l'utilisateur dont les processus sont à "tuer"; Tous les utilisateurs si non spécifié.

kill-all "Tuer" tous les processus en arrière-plan.
broadcast [options] intent Publie une intention de diffusion.

Voir la Spécification pour les arguments d'intention.
Les options sont:
[--user user_id | all | current]: Spécifie l'utilisateur à envoyer; Si elle n'est pas spécifiée, envoyez-la à tous les utilisateurs.

instrument [options] component Démarrez la surveillance avec une instance Instrumentation. Typiquement, le composant cible est le test_package/runner_class.

Les options sont:
-r: Affiche les résultats bruts (sinon décode report_key_streamresult). Utilisez avec [-e perf true] pour générer une sortie brute pour les mesures de performance.
-e name value: Définit le "name" argument en value. Pour les tests, une forme commune est -e testrunner_flag value [,value...].
-p file: Écrire les données de profilage dans le fichier.
-w: Attendez que l'instrumentation se termine avant de revenir. Requis pour les coureurs de test.
--no-window-animation: Fenêtre en cours d'exécution.
--user user_id | current: Spécifie l'instrumentation utilisateur qui s'exécute; Utilisateur actuel si non spécifié.
profile start process file Démarrer le "processus" "profile", écrit les résultats dans "fichier".
profile stop process Arrêtez le "processus" du "profil".
dumpheap [options] process file Vide le "processus", et écrit dans le "fichier".

Les options sont:
--user []user_id | current]: Lors de la fourniture d'un nom de processus, spécifiez l'utilisateur du processus à décharger; Utilise l'utilisateur actuel si elle n'est pas spécifiée.
-n: Vide le natif au lieu de celui géré.
set-debug-app [options] package Définir le package d'application à déboguer.

Les options sont:
-w: Attend le débogueur lorsque l'application démarre.
--persistent: Conservez cette valeur.

clear-debug-app Effacez le package précédent pour le débogage avec set-debug-app.
monitor [options] Commencez à surveiller les pannes ou les ANR.

Les options sont:
--gdb: Démarre gdbserv sur le port donné lors du crash/ANR.

screen-compat {on | off} package Mode de compatibilité d'écran de contrôle du package.
display-size [reset | widthxheight] Remplacer la taille d'affichage du périphérique. Cette commande est utile pour tester votre application sur différentes tailles d'écran en imitant une petite résolution d'écran à l'aide d'un périphérique avec un grand écran et vice versa.
Exemple:
am display-size 1280x800

display-density dpi Remplacer la densité d'affichage du périphérique. Cette commande est utile pour tester votre application sur différentes densités d'écran sur un environnement d'écran haute densité à l'aide d'un écran de faible densité et vice versa.
Exemple:
am display-density 480

to-uri intent Affiche la spécification d'intention donnée en tant qu'URI.
Voir la Spécification pour les arguments d'intention .
to-intent-uri intent Affiche la spécification d'intention donnée comme une intention intent: URI.

GESTIONNAIRE DE PAQUETS D'APPELS (pm)
Dans un shell adb, vous pouvez exécuter des commandes avec l'outil package manager (pm) pour effectuer des actions et des requêtes sur les packages d'applications installés sur le périphérique. Alors que dans un shell, la syntaxe est:

pm command
Vous pouvez également émettre une commande de gestionnaire de paquetages directement à partir d'adb sans entrer de shell distant. Par exemple:
adb shell pm uninstall com.example.MyApp

list packages [options] filter Affiche tous les packages, éventuellement uniquement ceux dont le nom du package contient le texte dans filter.

Options:
-f: Voir leur fichier associé.
-d: filtre pour afficher uniquement les packages désactivés.
-e: filtre pour afficher uniquement les packages activés.
-s: Filtre pour afficher uniquement les packages système.
-3: Filtre pour afficher uniquement les packages tiers.
-i: Voir le programme d'installation des packages.
-u: Inclut également les paquets désinstallés.
--user user_id: Espace utilisateur à interroger

list permission-groups Affiche tous les groupes d'autorisation connus.
list permissions [options] group Affiche toutes les autorisations connues, éventuellement seulement celles du group.

Options:
-g: Organiser par groupe.
-f: Affiche toutes les informations.
-s: Court résumé.
-d: Liste uniquement les autorisations dangereuses.
-u: Liste uniquement les permissions que les utilisateurs verront.

list instrumentation [options] Énumérez tous les ensembles de tests.

Options:
-f: Liste le fichier APK pour le package de test.
target_package: Liste des packages de test pour target_package.

list features Affiche toutes les fonctions du système.
list libraries Affiche toutes les bibliothèques prises en charge par le périphérique en cours.
list users Affiche tous les utilisateurs du système.
path package Affiche le chemin d'accès à l'APK du package donné.
install [options] path Installe un package (spécifié par path) dans le système.

Options:
-l: Installez le paquet avec verrouillage vers l'avant.
-r: Réinstalle une application existante, en conservant ses données.
-t: Autoriser l'installation des APK de test.
-i installer_package_name: Spécifie le nom du package d'installation.
-s: Installez le package sur le stockage de masse partagé (tel que sdcard).
-f: Installe le package sur la mémoire interne du système.
-d: Autoriser le downgrade du code de version.
-g: Octroie toutes les autorisations répertoriées dans le manifeste de l'application.

uninstall [options] package Supprime un package du système.

Options:
-k: Conserve les répertoires de données et de cache après la suppression du package.

clear package Supprime toutes les données associées à un package.
enable package_or_component Activez le package ou le composant donné (écrit en tant que "package/class").
disable package_or_component Désactivez le package ou le composant donné (écrit comme "package / class").
disable-user [options] package_or_component

Options:
--user user_id: L'utilisateur à désactivé.

grant package_name permission Accorder une autorisation à une application. Sur les périphériques exécutant Android 6.0 (API niveau 23) et plus, l'autorisation peut être totale et déclarée dans le manifeste de l'application. Sur les appareils exécutant Android 5.1 (niveau API 22) et inférieurs, doit être une autorisation facultative définie par l'application.
revoke package_name permission Révoquer une autorisation d'une application. Sur les périphériques exécutant Android 6.0 (API niveau 23) et plus, l'autorisation peut être totale et déclarée dans le manifeste de l'application. Sur les appareils exécutant Android 5.1 (niveau API 22) et inférieurs, doit être une autorisation facultative définie par l'application.
set-install-location location Modifie l'emplacement d'installation par défaut. Valeurs d'emplacement:

0: Auto: Permet au système de choisir le meilleur emplacement.
1: Interne: Installation sur le stockage interne du périphérique.
2: Externe: Sur un support externe.

Remarque: Il est uniquement destiné au débogage; L'utiliser peut provoquer la rupture des applications et d'autres comportements indésirables.
get-install-location Renvoie l'emplacement d'installation actuel. Valeurs de retour:

0 [auto]: Permet au système de choisir le meilleur emplacement
1 [internal]: S'installe sur le périphérique de stockage interne
2 [external]: S'installe sur un support externe

set-permission-enforced permission [true | false] Spécifie si l'autorisation donnée doit être appliquée.
trim-caches desired_free_space Supprime les fichiers du cache pour plus d'espace.
create-user user_name Crée un nouvel user_name, affiche user_name nouvellement identifié de l'utilisateur.
remove-user user_id Supprime l'utilisateur, en supprimant toutes les données associées à cet utilisateur.
get-max-users Affiche le nombre maximum d'utilisateurs pris en charge par le périphérique.

PRENDRE UNE CAPTURE D'ÉCRAN
La commande screencap est un "screencap shell" pour prendre une capture d'écran de l'affichage d'un périphérique. Alors que dans un shell, la syntaxe est:

screencap nom de fichier

Pour utiliser screencap à partir de la ligne de commande, tapez ce qui suit:
adb shell screencap /sdcard/screen.png

Voici un exemple de capture d'écran, en utilisant le shell adb pour capturer la capture d'écran et la commande "pull" pour télécharger le fichier à partir de l'appareil:

$ Adb shell
shell @ $ screencap /sdcard/screen.png
shell @ $ exit
$ adb pull /sdcard/screen.png

ENREGISTRER UEN VIDÉO
La commande "screenrecord" est un utilitaire shell pour enregistrer l'affichage des appareils fonctionnant sous Android 4.4 (niveau API 19) et supérieur. L'utilitaire enregistre l'activité de l'écran dans un fichier MPEG-4.
Remarque: L'Audio n'est pas enregistré avec le fichier vidéo.

Un développeur peut utiliser ce fichier pour créer des vidéos promotionnelles ou de formation. Alors que dans un shell, la syntaxe est:
screenrecord [options] nomdufichier

Pour utiliser "screenrecord" à partir de la ligne de commande, tapez ce qui suit:
adb shell screenrecord/sdcard/démo.mp4

Arrêtez l'enregistrement de l'écran en appuyant sur Ctrl + C, sinon l'enregistrement s'arrête automatiquement au bout de 3 trois minutes ou dans le délai fixé par --time-limit.
Pour commencer l'enregistrement de l'écran de votre appareil, exécutez la commande "screenrecord" pour enregistrer la vidéo. Ensuite, exécutez la commande "pull" pour télécharger la vidéo de l'appareil à l'ordinateur hôte. Voici un exemple d'enregistrement de session:

$ adb shell
shell@ $ screenrecord --verbose /sdcard/demo.mp4
(press Control + C to stop)
shell@ $ exit
$ adb pull /sdcard/demo.mp4


Avec la commande "screenrecord" vous pouvez demander d'enregistrer une résolution et un débit binaire, tout en conservant le rapport d'aspect de l'écran de l'appareil. L'utilitaire enregistre à la résolution native et de l' orientation par défaut, avec une longueur maximale de trois minutes.
Il y a quand même quelques limitations connues de la commande "screenrecord":
Certains appareils peuvent ne pas être en mesure d'enregistrer à leur résolution native. Si vous rencontrez des problèmes avec l'enregistrement de l'écran, essayez d'utiliser une résolution d'écran inférieure. La rotation de l'écran lors de l'enregistrement n'est pas pris en charge. Si l'écran ne tourne pendant l'enregistrement, une partie de l'écran sera coupé dans l'enregistrement.

--help Affiche la syntaxe et les options
--size "widthxheight" Définit la taille de la vidéo: 1280x720. La valeur par défaut est native à la résolution d'affichage de l'appareil (si pris en charge), sinon ce sera 1280x720. Pour de meilleurs résultats, utilisez un format pris en charge par Advanced Video Coding (AVC) l'encodeur de votre appareil.
--bit-rate "rate" Définit le débit binaire vidéo pour la vidéo, en mégabits par seconde. La valeur par défaut est 4Mbps. Vous pouvez augmenter le débit binaire pour améliorer la qualité de la vidéo, mais cela se traduit par des fichiers vidéo plus volumineux. L'exemple suivant définit le débit binaire d'enregistrement à 6Mbps:

screenrecord --bit-rate 6000000 /sdcard/démo.mp4

--time-limit time Définit la durée maximale d'enregistrement, en secondes. La valeur par défaut et la valeur maximale est de 180 (3 minutes).
--rotate Pivote la sortie de 90 degrés. Cette fonctionnalité est expérimentale.
--verbose Affiche les informations des journaux sur l'écran de ligne de commande. Si vous ne définissez pas cette option, l'utilitaire n'affiche aucune information lors de l'exécution.

LISEZ LES PROFILS "ART" POUR LES APPLICATIONS
A partir d'Android 7.0 (API 24) Runtime Android (ART) recueille des profils d'exécution pour les applications installées, qui sont utilisés pour optimiser les performances de l'application. Vous voudrez peut-être examiner les profils collectés pour comprendre quelles méthodes sont déterminés à être fréquemment exécutées et quelles classes sont utilisées lors de l'application de démarrage.
Pour produire une forme de texte des informations du profil, utilisez la commande:

adb shell cmd package dump-profiles package

Pour récupérer le fichier produit, utilisez:
adb pull /data/misc/profman /package.txt

AUTRES COMMANDES SHELL
Pour une liste de tous les programmes shell disponibles, utilisez la commande suivante:

adb ls shell /system/bin

L'aide est disponible pour la plupart des commandes.
Commandes shell adb les plus courantes.

dumpsys Vide les données du système sur l'écran. Le Dalvik Debug Monitor Serveur outil (DDMS) offre un environnement intégré de débogage que vous trouverez peut-être plus facile à utiliser.
dumpstate Efface l'état d'un fichier.
logcat [option]... [filter-spec]... Active la journalisation des systèmes et des applications et les affiche sur l'écran.

Voir
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
.
dmesg Affiche les message de débogage du kernel à l'écran.
start Démarre (redémarrage) un périphérique.
stop Arrête l'exécution d'un périphérique.
__________________________________________________________________________________________________________

*** Merci pour éventuels retours et suggestions ***
 
Lao Tseu

Lao Tseu

Membres VIP
Inscrit
21 Novembre 2015
Messages
1 845
Points
0
  • #2
Re: [GUIDE] COMMANDES ADB






SUITE DU GUIDE "COMMANDES RAPIDES ADB"




/!\ POUR CEUX QUI N'ONT PAS DÉJÀ INSTALLÉ LES PILOTES ADB & FASTBOOT

Télécharger
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
MD5 Checksum: 9AC9D9AB43E3AD5F0355575B88802685

• Suivre les instructions et sélectionner un emplacement pour installer Minimal ADB et Fastboot (le plus simple étant à la racine de votre disque Ex: C:\adb fastboot\)
• Choisir de créer un dossier pour l'installation
• Une fois l'emplacement choisi et si vous souhaitez créer un dossier dans le Menu Démarrer, sélectionnez l'option d'installation
• Démarrer Minimal ADB et Fastboot à la fin de l'installation (Pas obligatoire)
• Vous pourrez également lancer Minimal ADB et Fastboot en accédant au dossier du Menu Démarrer

/!\ VÉRIFICATION DE L'APPAREIL CONNECTÉ:
Ceci est la première étape à effectuer avant de faire quoi que ce soit afin de vérifier que l’appareil branché en USB est bien reconnu:

adb devices ou fastboot devices

OPTIONS POUR REDÉMARRER:
adb reboot ou fastboot reboot redémarrage normal
adb reboot bootloader redémarrer en mode fastboot (ou bootloader)
adb reboot recovery redémarre en mode recovery (Ex: pour formater ou "wipe")

DÉVERROUILLER LE BOOTLOADER (ATTENTION !! cela efface la TOTALITÉ des données présentes sur le téléphone)
fastboot oem unlock

VERROUILLER LE BOOTLOADER
fastboot oem lock

VÉRIFIER QUE LE TÉLÉPHONE EST DÉVEROUILLÉ
fastboot oem device-info

EFFACER LA PARTITION
fastboot erase (nom_de_la_partition)

REMPLACER LE BOOTLOADER PAR UN NOUVEAU
fastboot flash bootloader newbootloader.img

FLASHER UN NOUVEAU RECOVERY
fastboot flash recovery monrecovery.img

FLASHER UNE PARTITION PAR UNE AUTRE
fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash recovery recovery.img
fastboot flash userdata userdata.img

EFFACER LE CACHE
fastboot erase cache

MONTER LA PARTITION EN ÉCRITURE
1. adb shell
2. su
3. mount -o rw,remount,rw /system
4. mount -o ro,remount,ro /system (Remettre la partition en lecture quand vous avez fini)

EXPLORER LE TÉLÉPHONE À PARTIR DES COMMANDES LINUX
adb shell

COPIER DES FICHIERS DU PC VERS LE TÉLÉPHONE
adb push c:\document\android\monfichier.apk /sdcard/

TRANSFÉRER DU TÉLÉPHONE VERS LE PC
adb pull /sdcard/monfichier.apk c:\document\android\

INSTALLER UNE APPLICATION SUR LE TÉLÉPHONE
adb install monfichier.apk

SAUVEGARDE LE SYSTÈME ET LES DONNÉES (Sans les Applications)
adb backup -all

SAUVEGARDE LES APPLICATIONS, LA CARTE SD, LES DONNÉES, LE SYSTÈME
adb backup -apk -shared -all -f C:\votre_dossier\nom_backup.ab
/!\ toujours attribuer l'extension .ab au nom de votre sauvegarde.

/!\ ATTENTION !!: Quand la commande -f est insérée,
une fenêtre apparait vous demandant un mot de passe pour le fichier backup. RETENEZ-LE.

OPTIONS
-system -nosystem insérer ou non le système
-apk ou _noapk insérer ou pas les apk
-shared ou -noshared insérer ou pas les fichiers de la carte SD
packages... vous pouvez répertorier les noms des packages (exemple: com.google.android.apps.) spécifiquement que vous souhaitez sauvegarder.
Utilisez cette option uniquement si vous souhaitez sauvegarder une application spécifique.

RESTAURER LA SAUVEGARDE
adb restore chemin_du_fichier\nom_backup.ab

LISTE DES PACKAGES
adb shell pm list packages

LISTE DES PACKAGES DU SYSTÈME
adb shell pm list packages -s

LISTE DES PACKAGES ET DU CHEMIN D'ACCÈS AUX FICHIERS APK INSTALLÉS
adb shell pm list packages -f

LISTE DES NOMS DES PACKAGES SYSTÈME ET SON EMPLACEMENT
adb shell pm list packages -f -s

LISTE DES NOMS DES PACKAGES DÉSACTIVÉS
adb shell pm list packages -d

LISTE DES NOMS DES PACKAGES ACTIVÉS
adb shell pm list packages -e

__________________________________________________________________________________________________________
*** Merci pour vos éventuels retours ou suggestions ***
 
Scumpi

Scumpi

Moderateur Global
Inscrit
26 Septembre 2012
Messages
31 090
Points
48
  • #3
Re: [GUIDE] COMMANDES ADB

Salut et merci à toi pour cet excellent guide
 
r34gtr

r34gtr

Super VIP
Inscrit
10 Août 2012
Messages
9 499
Points
48
  • #4
Re: [GUIDE] COMMANDES ADB

Hello !!

Ah merci ! Je patauger hier pour l'installation ( nouveau pc )!

Merci pour le tuto :super:
 
lohanbarth

lohanbarth

Moderateur Global
Inscrit
8 Novembre 2011
Messages
16 446
Points
63
  • #5
Re: [GUIDE] COMMANDES ADB

Hello Patrice et merci , très bon tuto :)
 
Lao Tseu

Lao Tseu

Membres VIP
Inscrit
21 Novembre 2015
Messages
1 845
Points
0
  • #6
Re: [GUIDE] COMMANDES ADB

Hello les gars ;)
Avec plaisir ;) et merci à vous ;)
 
Scumpi

Scumpi

Moderateur Global
Inscrit
26 Septembre 2012
Messages
31 090
Points
48
  • #7
Par contre je pense qu'on va le mettre dans les tutoriels généraux
 
Lao Tseu

Lao Tseu

Membres VIP
Inscrit
21 Novembre 2015
Messages
1 845
Points
0
  • #8
Scumpi a dit:
Par contre je pense qu'on va le mettre dans les tutoriels généraux
Je t'en prie scumpi, si cela te semble plus approprié ;)
 
bondox

bondox

Membre
Inscrit
28 Mai 2017
Messages
4
Points
1
  • #9
Merci pour le guide
 
A

atchoumsoft

Membre
Inscrit
14 Octobre 2012
Messages
34
Points
6
  • #10
Merci pour ces commandes.

Par contre j'essaye de mettre en place un script pour paramétrer l’accès au routeur Wifi. Pour afficher les paramètres Wifi, là pas de souci via la commande :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Par contre, pour faire ouvrir ensuite la fenetre "Ajouter un réseau" là, je trouve pas... J'utilise pas les
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
car le nombre de réseau qui apparait différent et donc impossible pour moi de fixer la bonne valeur pour exécuter un clic sur Ajouter un réseau...

Je recherche depuis un moment. Bon courage à tous ;)
 
Kaduk

Kaduk

Membre
Inscrit
4 Novembre 2019
Messages
16
Points
1
  • #11
Wow ! Super tuto je le garde sous le coude il est vraiment complet :)
 
M

mi-chel

Membre
Inscrit
24 Mars 2013
Messages
4
Points
1
  • #12
Merci beaucoup.
 
Haut Bas