Trucs et astuces ADB: commandes que tout utilisateur expérimenté devrait connaître

click fraud protection

Il y a beaucoup de choses sur Android Debug Bridge que vous ne connaissez peut-être pas. Cliquez ici pour obtenir des conseils et astuces utiles sur l'utilisation d'ADB !

Liens rapides

  • Accès au shell
  • Connexion à plusieurs appareils
  • Transfert de fichiers
  • Enregistrement
  • Liste des applications installées via ADB
  • Installation et désinstallation d'applications via ADB
  • Extraction d'APK avec ADB
  • Sauvegarde et restauration des données d'application
  • Répertorier les composants de l'application
  • Lancer des activités, des services et des récepteurs de diffusion
  • Désactivation et activation de presque toutes les applications
  • Capturer des captures d'écran
  • Transfert de données binaires entre le PC et l'appareil Android

Si vous êtes un passionné d'Android qui se cache dans la scène du modding ou un développeur d'applications depuis n'importe quelle durée temps, tôt ou tard, vous tomberez sur un outil soigné appelé Android Debug Bridge, ou ADB pour court. Il est largement utilisé dans Android Studio en tant qu'utilitaire compagnon de ligne de commande. Les développeurs Android l'utilisent également comme solution autonome pour installer et tester manuellement des applications sur

Smartphones Android ainsi que des appareils Android émulés.

Mais ADB peut faire beaucoup de choses, et la plupart ne sont pas seulement utiles aux développeurs. Même si vous n'êtes pas développeur et que vous lisez cet article, il y a de fortes chances que vous ayez probablement utilisé ADB une ou deux fois pour télécharger une application ou modifier une autorisation. Mais ce n'est pas tout pour ADB peut être utilisé. Continuez à lire pour quelques trucs et astuces pour utiliser ADB que vous ne connaissiez peut-être pas.

Vous aurez besoin d'avoir ADB opérationnel sur votre ordinateur. Assurez-vous de consulter notre article sur comment installer ADB si tu as besoin d'aide. Si vous utilisez Windows, vous devez également installez les pilotes USB OEM appropriés pour votre appareil Android.

Accès au shell

Si vous avez déjà utilisé ADB, vous avez peut-être l'habitude d'exécuter des commandes sur une seule ligne. Mais vous pouvez également utiliser ADB pour ouvrir un shell de terminal sur votre appareil et exécuter directement des commandes. Et c'est facile !

Dans votre fenêtre de terminal ou d'invite de commande :

coque adb

Vous serez alors accueilli par un $ symbole où vous pouvez exécuter des commandes directement sur votre appareil.

Connexion à plusieurs appareils

ADB peut communiquer avec plusieurs appareils en même temps. Cependant, vous devez spécifier le périphérique cible lors de l'émission de commandes ADB dans de tels scénarios.

Pour ce faire, vous devez connaître le numéro de série de l'appareil cible. Vous pouvez obtenir le numéro de série en utilisant la commande devices :

appareils adb

Maintenant, utilisez le -s option pour spécifier le numéro de série de l'appareil cible. Exemple:

adb-s <en sérienombre> coquille

Transfert de fichiers

Pour les aficionados de la ligne de commande, ADB offre un moyen très simple de transférer des fichiers vers et depuis votre appareil Android. Utilisez simplement le tirer commande pour copier des fichiers et des répertoires depuis l'appareil et le pousser commande pour copier des fichiers et des répertoires sur l'appareil :

Si vous souhaitez copier un fichier ou un répertoire avec ses sous-répertoires sur l'appareil Android :

adb push local_path device_path
  • Exemple: adb push D:\image.png /sdcard

La commande suivante copiera un fichier ou un répertoire avec ses sous-répertoires de l'appareil Android vers le PC hôte :

adb pull device_path local_path
  • Exemple: adb pull /sdcard/backup_April.tar D:\Backup

Enregistrement

Android Studio fournit le Fenêtre Logcat, qui prend en charge l'affichage des journaux de votre appareil en temps réel. Cependant, ce n'est pas vraiment utile pour le traitement par lots. Heureusement, les appareils Android sont livrés avec la commande logcat disponible via ADB, qui peut être utilisée pour vider les messages du journal du système et des applications et les imprimer à l'écran.

La syntaxe de base est la suivante :

logcat adb

Pour en savoir plus, jetez un oeil à notre tutoriel sur comment prendre les logcats système, les journaux du noyau et dmesg sur Android.

œufs de Pâques

Google propose deux œufs de Pâques astucieux liés à la commande logcat.

  1. Le premier est lolcat, un clin d'œil au Mème LOLcat. Elle donne le même résultat que la commande logcat habituelle.
    adb lolcat
  2. La seconde est longcat, qui équivaut à la commande logcat -v long. Il affiche tous les champs de métadonnées et sépare les messages avec une ligne vide.
    adb longcat

Liste des applications installées via ADB

Pour voir les applications installées sur votre appareil, vous pouvez utiliser la commande suivante :

shell adb pm liste paquets

Cela renverra une liste des noms de packages des applications installées, chacune sur sa propre ligne précédée de emballer:.

Choix

Il existe également certaines options que vous pouvez utiliser pour récupérer des listes plus spécifiques.

  • -F inclura le chemin d'accès à l'APK de base pour chaque application, ainsi que son nom de package.
  • -un s'assurera que tous les packages non-APEX connus sont renvoyés.
  • -d fera en sorte que la commande ne renvoie que les packages désactivés.
  • -e fera en sorte que la commande ne renvoie que les packages activés.
  • -s fera en sorte que la commande ne renvoie que les packages système.
  • -3 fera en sorte que la commande renvoie uniquement les packages tiers.
  • -je inclura le nom du package d'installation pour chaque package.
  • -U inclura l'UID du package pour chaque package.
  • -u inclura les packages désinstallés.
  • --show-versioncode inclura le code de version pour chaque package.
  • --apex-only renverra uniquement les packages APEX.
  • --uid n'affichera que les packages avec l'UID donné.
  • --utilisateur n'affichera que les packages appartenant à l'ID utilisateur donné.

Installation et désinstallation d'applications via ADB

Il s'agit d'une utilisation relativement courante d'ADB, mais cela vaut quand même la peine d'être mentionné. Entre autres moyens, vous pouvez également utiliser ADB pour installer et désinstaller des applications Android sur votre appareil Android.

Installer un APK

Si vous avez un fichier APK sur votre ordinateur, vous pouvez l'installer sur votre appareil en procédant comme suit :

adbinstaller-runapk.apk

N'oubliez pas de remplacer someapk.apk avec le chemin complet vers l'APK que vous souhaitez installer.

Choix

Il existe de nombreuses options pour installer des APK via ADB.

  • Le -r L'option permet à ADB d'installer sur une application existante (c'est-à-dire une mise à jour). Sur Android Pie et versions ultérieures, vous n'avez pas à spécifier cette option.
  • Le -R option, pour Android Pie et versions ultérieures entraînera l'échec de l'installation si l'application est déjà installée.
  • Le -je L'option vous permet de spécifier un nom de package d'installation. C'est ce qui est renvoyé si Android veut savoir ce qui a installé l'APK.
  • Le -t option permet un APK avec android: testOnly="true" dans son manifeste à installer.
  • Le -d L'option permet à l'APK spécifié d'être une rétrogradation vers une application déjà installée. Cela ne fonctionne que si les deux versions de l'application sont débogables.
  • Le -g L'option pour Android Marshmallow et versions ultérieures accorde automatiquement toutes les autorisations d'exécution à l'application installée.

Ce n'est pas tout. Si vous voulez une liste complète, vous pouvez consulter la documentation intégrée.

Plusieurs APK et bundles

Si vous souhaitez installer plusieurs APK à la fois, soit à partir de plusieurs applications, soit parce que vous installez un ensemble d'applications, vous pouvez utiliser ADB installation multiple et install-multi-package caractéristiques.

Si tous vos fichiers APK sont destinés à une seule application, utilisez installation multiple:

adbinstallation multipleapk1.apkapk2.apk ...

Sinon, utilisez install-multi-package:

adbinstall-multi-packageapp1.apkapp2.apk ...

Les options de ces commandes sont similaires à installer, mais avec quelques limites. Consultez la documentation intégrée d'ADB pour connaître les options disponibles.

Désinstaller une application

Pour désinstaller à l'aide d'ADB, vous aurez besoin du nom du package de l'application que vous souhaitez désinstaller. Consultez la rubrique pour Liste des applications installées si vous ne l'avez pas déjà fait.

Une fois que vous avez le nom du package, la désinstallation est aussi simple que :

désinstallation adb <nom du paquet>

Vous ne pouvez généralement pas désinstaller le système ou les applications préinstallées à l'aide de cette commande. Cependant, vous pourrez peut-être les désactiver avec ADB. Consultez la rubrique Désactivation et activation de presque toutes les applications pour plus de détails.

Extraction d'APK avec ADB

Il existe de nombreuses raisons pour lesquelles vous voudrez peut-être extraire le ou les fichiers APK d'une application. Peut-être souhaitez-vous le sauvegarder pour une utilisation future, ou peut-être qu'il n'est plus disponible en ligne et que vous souhaitez le transférer sur un autre appareil.

Extraire une application à l'aide d'ADB est assez simple. Tout d'abord, vous voudrez trouver le nom du package de l'application que vous souhaitez extraire. Il existe plusieurs façons de procéder, mais la plus simple consiste généralement à utiliser l'application Paramètres de votre appareil pour afficher les liste de toutes les applications installées, sélectionnez celle que vous voulez et faites défiler jusqu'à ce que vous trouviez le nom du package ou l'application IDENTIFIANT.

Une fois que vous avez le nom du package, exécutez la commande suivante :

chemin adb shell pm <nom du paquet>

Cette commande renverra le chemin de tous les fichiers APK pour ce nom de package.

Vous pouvez ensuite utiliser la commande suivante pour extraire chaque fichier APK sur votre ordinateur :

adb pull /chemin/vers/apk.apk

Sauvegarde et restauration des données d'application

Bien que Google n'ait pas encore mis au point une méthodologie de sauvegarde en un clic iOS, vous pouvez utiliser ADB pour sauvegarder et restaurer les applications installées avec leurs données. Cependant, la fonctionnalité est loin d'être parfaite, et Google a déjà a marqué la fonctionnalité comme obsolète.

Sauvegarde

Pour sauvegarder une seule application, avec son APK :

adb sauvegarde -apk <emballernom> -f nom_paquet_sauvegarde.ab

Si vous souhaitez sauvegarder toutes les données de l'application en même temps :

adb sauvegarde -F tous -tous -apk -nosystem

Étant donné que le module de restauration ne peut pas effectuer de restauration spécifique à une application individuelle, il est préférable de créer des sauvegardes spécifiques au package. L'extrait de commande suivant (compatible avec Linux/macOS et le sous-système Windows pour Linux) peut le faire pour vous :

pour APPLICATION dans $(adb shell pm liste les packages -3)
faire
APP=$( écho${APP} | sed "s/^paquet://")
sauvegarde adb -f ${APP}.sauvegarde ${APP}
fait

Restaurer

Tout d'abord, vous devez installer l'APK enregistré ;

adb installer <emballernom>.apk

Ensuite, vous pouvez restaurer ses données :

adbrestaurerpackage_name_backup.un B

Pour rappel, les fonctionnalités de sauvegarde et de restauration ADB ont plusieurs mises en garde, y compris des résultats variables en fonction de la ROM

Répertorier les composants de l'application

Les composants d'une application sont des éléments tels que ses activités, ses récepteurs de diffusion, ses services, etc. Parfois, il est utile de connaître les noms de ces composants dans une application spécifique, en particulier si vous souhaitez lancer des activités masquées ou envoyer une diffusion avec des données spécifiques.

Malheureusement, ADB ne dispose pas d'un moyen très propre de répertorier les composants d'une application. Mais c'est possible. Exécutez la commande suivante :

dumpsys du shell adb emballer

Tout un tas de texte sera renvoyé.

  • Faites défiler jusqu'à ce que vous trouviez Table de résolution d'activité titre pour voir les activités.
  • Regarder sous Tableau du résolveur du récepteur pour les récepteurs de diffusion.
  • Vérifier la Tableau des résolveurs de service pour les Prestations.
  • Et ainsi de suite.

Chaque composant affichera l'action nécessaire pour le lancer, le nom du composant et éventuellement des informations supplémentaires.

Alternativement, si vous voulez un moyen plus simple de voir les activités, les services et les récepteurs, vous pouvez utiliser l'application Root Activity Launcher de XDA Recognized Developer. Zacharee1. Il vous montrera ces composants pour chaque application, ainsi qu'un tas d'autres fonctionnalités pratiques.

Lanceur d'activité racineDéveloppeur: Zachary Wander

Prix ​​: 0,99.

Télécharger

Lancer des activités, des services et des récepteurs de diffusion

ADB peut également être utilisé pour lancer des activités, démarrer des services et notifier les récepteurs de diffusion. Vous pouvez même spécifier des URI de données et des extras d'intention si nécessaire.

Pour lancer des composants, vous aurez besoin du nom de composant de ce que vous souhaitez lancer. Vous pouvez voir comment obtenir cela à partir du Liste des composants d'application section.

La syntaxe de commande pour lancer une activité ressemble à ceci :

je commence -a <action> -n <composant>

La syntaxe de la commande pour démarrer un service ressemble à ceci :

suis startservice -a <action> -n <composant>

La syntaxe de commande pour notifier un BroadcastReceiver ressemble à ceci :

suis diffusé -a <action> -n <composant>

Dans la plupart des cas, pour les activités et les services, vous n'avez pas besoin de spécifier explicitement une action. Vous n'en aurez généralement besoin que si le composant en utilise un autre que android.intent.action. PRINCIPAL.

En plus de la syntaxe de base, voici comment spécifier plus de données à transmettre. En général, toutes les valeurs de données doivent être placées entre guillemets doubles.

  • -d vous permet de spécifier un URI de données.
  • -e ou --es vous permet de spécifier une chaîne supplémentaire.
  • --esn vous permet de spécifier une chaîne nulle supplémentaire.
  • --ez est utilisé pour spécifier un supplément booléen.
  • --ei est utilisé pour spécifier un nombre entier supplémentaire.
  • --el est pour spécifier un long supplément.
  • --ef passera un flotteur supplémentaire.
  • --UE passe un URI supplémentaire.
  • --ecn peut être utilisé pour spécifier un nom de composant supplémentaire.
  • --eia ,,... transmettra les valeurs sous la forme d'un Integer[] supplémentaire.
  • --eial ,,... transmettra les valeurs sous forme de liste.
  • Les mêmes arguments de tableau et de liste fonctionnent également pour les longs, les flottants et les chaînes. Il suffit de remplacer le je avec la lettre appropriée.
  • -F vous permet de spécifier un indicateur.

Il existe encore plus d'options de comportement que vous pouvez utiliser, alors consultez la documentation intégrée pour plus de détails.

Désactivation et activation de presque toutes les applications

Les applications système d'Android ne peuvent pas être désinstallées et, malheureusement, beaucoup d'entre elles ne peuvent pas non plus être désactivées via les paramètres. Bien qu'ADB ne vous laisse pas les désinstaller, cela peut vous aider à les désactiver.

Tout d'abord, assurez-vous d'obtenir le nom du package de l'application que vous souhaitez désactiver. Ensuite, essayez ces commandes. Si l'un échoue, essayez l'option suivante.

  • pm désactiver
    • Pour réactiver, utilisez pm activer
  • pm désactiver-utilisateur --user 0
    • Pour réactiver, utilisez pm activer
  • cacher
    • Pour réactiver, utilisez pm afficher
  • pm suspendre
    • Pour réactiver, utilisez pm lever la suspension
  • pm désinstaller -k --user 0
    • Pour réactiver, utilisez pm install-existant
      • Celui-ci désinstalle efficacement l'application de votre profil utilisateur. Alors que la commande pour réactiver devrait travail, il n'y a aucune garantie qu'il le fera. Vous devrez peut-être réinitialiser les paramètres d'usine pour restaurer l'application.
      • Si vous utilisez plusieurs profils utilisateur sur votre appareil, assurez-vous de remplacer 0 dans les commandes ci-dessus par l'ID utilisateur réel dont vous disposez.

Pour en savoir plus, consultez notre tutoriel sur comment désinstaller le bloatware de l'opérateur et de l'OEM sans accès root.

Capturer des captures d'écran

La plupart des ROM Android offrent deux utilitaires shell pratiques - screencap et screenrecord - pour prendre des captures d'écran et enregistrer les activités de l'écran, respectivement. Vous pouvez les appeler directement depuis le shell ADB pour capturer une capture d'écran statique ou un extrait vidéo de l'écran de votre téléphone et l'enregistrer directement sur le stockage interne de l'appareil.

La syntaxe pour capturer une capture d'écran est assez simple :

capture d'écran du shell adb /sdcard/screenshot.png

De même, si vous devez saisir une capture d'écran dynamique, procédez comme suit :

enregistrement d'écran du shell adb /sdcard/recording.mp4

Comme vous vous en doutez, l'outil screencap est plutôt simple, alors que l'utilitaire screenrecord propose plusieurs paramètres. Les options pour ce dernier sont les suivantes :

  • --taille LARGEUR x HAUTEUR
    • Définissez la résolution du fichier vidéo (par exemple "1280x720"). Par défaut, il essaie de prendre la résolution d'affichage principale de l'appareil cible (si elle est prise en charge) et retombe à 1280x720 si ce n'est pas le cas.
  • --débit binaire
    • Définissez le débit vidéo, en bits par seconde. La valeur peut être spécifiée en bits ou en mégabits, par ex. '4000000' est équivalent à '4M'.
  • --rapport d'erreur
    • Vous pouvez ajouter des informations supplémentaires, telles qu'une superposition d'horodatage, qui peuvent être utiles pour illustrer les bogues.
  • --time-limit TEMPS
    • Définissez la durée d'enregistrement maximale, en secondes. La valeur par défaut/maximum est de 180.
  • --display-id ID
    • Spécifiez l'ID d'affichage physique à enregistrer. Celui par défaut est défini sur l'affichage principal. Voir « dumpsys SurfaceFlinger --display-id » pour les ID d'affichage valides.
  • --verbeux
    • Afficher des informations détaillées concernant la session d'enregistrement.

Vous pouvez étendre davantage les capacités des utilitaires de capture d'écran intégrés d'Android en scrupule. Il s'agit d'une solution de mise en miroir d'écran open source, qui utilise la puissance d'ADB.

Transfert de données binaires entre le PC et l'appareil Android

Si vous ne souhaitez pas générer un shell ADB à part entière, mais que vous souhaitez incorporer un passage rationalisé des données binaires entre le PC hôte et l'appareil Android cible, vous pouvez utiliser le exec-in et exec-out commandes.

Malgré leur existence prolongée, les commandes exec-in et exec-out ne sont toujours pas documentées. Ils peuvent entraîner une corruption de fichiers en raison de la manière dont différents shells gèrent les entrées et les sorties. Utiliser avec précaution.

Le premier vous aide à exécuter une commande sur Android et à alimenter l'entrée de console non filtrée comme paramètre, tandis que le le second fait exactement le contraire, c'est-à-dire exécuter une commande sur Android et capturer sa sortie binaire non filtrée par le système d'exploitation hôte.

Exemple:

adb exec-dehors "capture d'écran -p" > "D:\capture d'écran.png"

Cela utilisera le capture d'écran commande d'Android pour capturer une capture d'écran de l'écran du téléphone, mais l'enregistre directement sous screenshot.png dans la partition D: du PC hôte (à condition qu'il exécute Windows). D'autre part,

adb exec-dans"cd /sdcard && tar -xf -" < "D:\sauvegarde.tar"

Cela va extraire le contenu du fichier backup.tar stocké dans la partition D: du PC hôte (sous Windows) à la racine du stockage interne de l'appareil Android.


ADB est un outil incroyablement puissant, et il peut faire bien plus que ce qui est décrit ci-dessus. Les commandes de cet article ne sont qu'un point de départ utile. Pour une utilisation plus avancée, consultez des commandes telles que cmd-l pour voir les différents services avec lesquels vous pourriez interagir et ls -l /système/bin pour voir les différents exécutables de commandes disponibles dans votre ROM Android.

Pour d'autres voyages et tiques Android, consultez nos guides sur comment rooter son smartphone android, comment installer la récupération TWRP, et comment installer une ROM personnalisée sur votre appareil Android.