Quel est cet utilitaire `adb` que je reçois toujours des conseils à utiliser?

10

Dans un tas de questions sur ce site, je vois des réponses nous disant d'exécuter adb shellou adb logcatainsi de suite.

Maintenant, je ne suis pas un utilisateur totalement désemparé, j'ai donc téléchargé et installé Termux et j'ai une invite shell quand je peux taper des commandes, mais - d'où vient cette adbchose? Dois-je le télécharger en tant qu'application? Il ne semble pas être installé par défaut (sur un Redmi 3S, Android 6.0.1).

En outre, il semble que ce soit une sorte d'ascenseur de permission. C'est comme ça su? Sinon, en quoi est-ce différent?

einpoklum
la source
@RahulGopi: Oui, je pense simplement qu'il pourrait y avoir une réponse succincte ici sur le site.
einpoklum
5
C'est l'outil décrit dans notre adb tag-wiki , avec des ressources liées - je vous l'ai dit avant je suppose :) Rappelez-vous: Beaucoup de nos balises ont des wikis décents :) Voir aussi, ici sur notre site même: Qu'est-ce que ADB et pourquoi est-il utilisé pour? Comment l'installer sur mon appareil?
Izzy
L' ADB est utilisé pour connecter des souris et des claviers à des ordinateurs de pointe.

Réponses:

33

À propos de adb

Pour le dire brièvement, adb(Android Debug Bridge) est un utilitaire conçu pour être installé sur un ordinateur, afin de lui permettre de gagner un shell sur un téléphone qui est connecté via un câble USB ou sur le même réseau Wi-Fi.

Sur certains appareils exécutant Android Lollipop (5.1.1) et éventuellement des versions inférieures du système d'exploitation, il était possible de tromper un appareil pour qu'il se connecte à lui-même, car le adbclient était également fourni avec le téléphone. Ce n'est plus possible car, à partir d'Android Marshmallow (6.0), Google a supprimé le adbbinaire des téléphones pour réduire la surface d'attaque utilisable.

Il est cependant possible de réintroduire manuellement le adbclient sur un téléphone, sans avoir besoin de compiler le binaire vous-même. Reportez-vous au wiki de la balise adb pour plus d'informations sur ce sujet, ainsi que sur l'installation sur un ordinateur et le dépannage général.


Où l'obtenir

Il y a quelque temps, pour obtenir adbun autre utilitaire, appelé fastboot, il fallait télécharger le SDK Android complet de Google, s'ils voulaient un package officiel. De nos jours, un petit ensemble officiel est devenu disponible, comme le dit XDA . Il comprend des fichiers binaires pour les systèmes d'exploitation les plus courants.


Comment ça fonctionne

Le adbclient, installé sur votre ordinateur, se connecte à un téléphone branché ou autrement détectable, au moyen d'un serveur interne. Ensuite, l'utilisateur pourra envoyer diverses commandes au téléphone lui-même, qui seront écoutées par adbdun démon résidant sur le téléphone.

Lors de l'utilisation adb, vous empruntez l'identité de l'utilisateur appelé shell(UID 2000). Cet utilisateur est spécial, car il peut accorder des autorisations d'application et accéder à plus d'informations qu'un simple utilisateur. Ce fait, cependant, ne signifie pas que adbc'est la même chose su, car ce dernier vous permet d'usurper l'identité de n'importe quel utilisateur.

Plus d'informations sur adbet son fonctionnement peuvent être obtenues en consultant la documentation officielle .


Émettre des commandes à partir d'un téléphone

La majorité des commandes pouvant être émises via sont adbgénéralement des utilitaires préinstallés dans un téléphone.

Pour y accéder, vous devez installer une application d'émulation de terminal sur votre téléphone (notez que Termux est spécial, car il spécifie le sien PATH, ignorant ainsi les binaires du système). Cela vous permettra, par exemple, d'émettre des commandes telles que logcatdirectement sur votre appareil mobile. N'oubliez pas d'omettre le adbpréfixe, cependant.

Il convient de mentionner que, si vous ne disposez pas des autorisations root, la gamme de commandes que vous pourrez exécuter et les informations auxquelles vous pourrez accéder seront nettement inférieures à celles utilisées adb, car l'UID qui les invoque sera le l'application elle-même et les applications ont moins d'autorisations que l'UID 2000.

Grimoire
la source
Bien joué! Malheureusement je ne peux pas voter deux fois :) // Oui, nos wikis sont bien trop souvent des "quantités inconnues". Je ne peux pas pointer là assez souvent. Mais y compris un lien dans toute réponse mentionnée, cela va un peu loin à mon humble avis :) Où cela convient (comme ici: "pour plus de détails ..."), une bonne idée. N'hésitez pas à aller de l'avant avec ça - j'avance pour le nettoyage des commentaires en attendant :)
Izzy
@Izzy Bon point. Attendons de voir si le spamming de liens est réellement nécessaire.
Grimoire
Ayez mon vote positif, s'il vous plaît.
iBug
@iBug, je suis honoré.
Grimoire
2

Pont de débogage Android (ADB) .

Il envoie des commandes via USB ou Wifi à un appareil Android. Il est généralement installé sur l'ordinateur connecté à l'appareil. Le client ADB peut également être exécuté sur l'appareil lui-même, mais l'idée est de déboguer à distance l'appareil.

Il fait partie du kit de développement logiciel Android

Vous pouvez ensuite utiliser le gestionnaire SDK pour télécharger les outils de la plateforme.

Il y a aussi un lien plus direct ici au cas où vous êtes simplement intéressé par les outils de la plateforme

Documentation ADB

jdwolf
la source
Attendez, s'il n'est pas installé sur l'appareil, pourquoi les gens suggèrent-ils de l'utiliser dans des coquilles sur l'appareil? par exemple dans les exemples que j'ai donnés?
einpoklum
C'est un bon point. Il est peut-être plus correct de dire que la commande adb est le "client" se connectant à un appareil Android. L'appareil Android peut également contenir le client, car pourquoi pas. Mais c'est un peu comme exécuter ssh localhost
jdwolf
Pour être honnête, la documentation explique tout cela bien: developer.android.com/studio/command-line/adb.html
jdwolf