O que é esse utilitário `adb` que recebo conselhos para usar?

10

Em várias perguntas neste site, vejo respostas nos dizendo para executar adb shellou adb logcatassim por diante.

Agora, como não sou um usuário totalmente ignorante, baixei e instalei o Termux e tenho um prompt de shell quando posso digitar comandos, mas - de onde vem isso adb? Eu faço o download como um aplicativo? Não parece estar instalado por padrão (em um Redmi 3S, Android 6.0.1).

Além disso, parece que é algum tipo de elevador de permissão. É como su? Se não, como é diferente?

einpoklum
fonte
@RahulGopi: Sim, acho que poderia haver uma resposta sucinta aqui no site.
einpoklum
5
É a ferramenta descrita em nosso tag-wiki adb , com recursos vinculados - eu disse isso antes, eu acho :) Lembre-se: muitas de nossas tags possuem wikis decentes :) Veja também, aqui em nosso site: O que é o ADB e por que ele é usado para? Como instalo no meu dispositivo?
Izzy
O ADB é usado para conectar mouses e teclados a computadores de última geração.

Respostas:

33

Sobre adb

Para colocá-lo em breve, adb(Android Debug Bridge) é um utilitário criado para ser instalado em um computador, para permitir que ele ganhe um shell em um telefone conectado via cabo USB ou na mesma rede Wi-Fi.

Em certos dispositivos que executam o Android Lollipop (5.1.1) e, possivelmente, versões inferiores do sistema operacional, era possível induzir um dispositivo a se conectar, pois o adbcliente também vinha incluído no telefone. Isso não é mais possível porque, a partir do Android Marshmallow (6.0), o Google removeu o adbbinário dos telefones para reduzir a superfície de ataque utilizável.

É possível, no entanto, reintroduzir manualmente o adbcliente em um telefone, sem a necessidade de compilar o binário. Consulte o wiki da tag adb para obter mais informações sobre este tópico, bem como sobre a instalação em um computador e a solução de problemas gerais.


Onde conseguir

Algum tempo atrás, para obter adbe outro utilitário chamado fastboot, era necessário baixar o Android SDK completo do Google, se eles quisessem um pacote oficial. Atualmente, um pequeno pacote oficial se tornou disponível, como diz o XDA . Inclui binários para os sistemas operacionais mais comuns.


Como funciona

O adbcliente, instalado no seu computador, faz uma conexão com um telefone conectado ou detectável por meio de um servidor interno. Em seguida, o usuário poderá enviar uma variedade de comandos para o próprio telefone, que serão ouvidos por adbdum daemon residente no telefone.

Ao usar adb, você representa o usuário chamado shell(UID 2000). Esse usuário é especial, pois pode conceder permissões de aplicativos e acessar mais informações do que um usuário simples. Esse fato, no entanto, não significa que adbé o mesmo que su, pois o último permite que você personifique qualquer usuário.

Mais informações sobre adbe seu funcionamento podem ser obtidas consultando a documentação oficial .


Emitindo comandos de um telefone

A maioria dos comandos que podem ser emitidos via adbtendem a ser utilitários pré-instalados em um telefone.

Para acessá-los, você precisa instalar um aplicativo emulador de terminal no seu telefone (observe que o Termux é especial, pois especifica o seu próprio PATH, ignorando assim os binários do sistema). Isso permitirá, por exemplo, que você emita comandos como logcatdiretamente no seu dispositivo móvel. Lembre-se de omitir o adbprefixo.

Vale ressaltar que, se você não tiver permissões de root, o intervalo de comandos que você poderá executar e as informações que poderá acessar serão significativamente menores do que se estiver usando adb, porque o UID que os chama será o aplicativo em si, e os aplicativos têm menos permissões que o UID 2000.

Grimoire
fonte
Bem feito! Infelizmente, não posso votar duas vezes :) // Sim, nossas wikis costumam ser "quantidades desconhecidas". Não é possível apontar para lá com frequência suficiente. Mas incluir um link em qualquer resposta mencionada está indo um pouco longe, IMHO :) Onde ele se encaixa (como aqui: "para mais detalhes ..."), uma boa idéia. Sinta-se livre para ir em frente com isso - eu ir em frente para entretanto comentário limpeza :)
Izzy
@ Izzy Bom ponto. Vamos esperar e ver se o spam de links é realmente necessário.
Grimório
Tenha meu voto positivo, por favor.
iBug
@iBug Estou honrado.
Grimoire #:
2

Ponte de depuração do Android (ADB) .

Ele envia comandos via USB ou Wifi para um dispositivo Android. Geralmente, é instalado no computador conectado ao dispositivo. O cliente ADB também pode ser executado no próprio dispositivo, no entanto, a idéia é depurar remotamente o dispositivo.

Faz parte do Kit de desenvolvimento de software para Android

Você pode usar o gerenciador do SDK para baixar as ferramentas da plataforma.

Também há um link mais direto aqui, caso você esteja interessado apenas nas ferramentas da plataforma

Documentação do ADB

jdwolf
fonte
Espere, se não estiver instalado no dispositivo, por que as pessoas sugerem que eu o use com conchas no dispositivo? por exemplo, nos exemplos que dei?
einpoklum
Este é um bom ponto. Talvez seja mais correto dizer que o comando adb seja o "cliente" que está se conectando a um dispositivo Android. O dispositivo Android também pode ter o cliente, porque por que não? Mas isso é sorta como correr localhost ssh
jdwolf
Para ser honesto a documentação explica tudo isso bem: developer.android.com/studio/command-line/adb.html
jdwolf