Android Debug Bridge (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Status de tradução: Esse artigo é uma tradução de Android Debug Bridge. Data da última tradução: 2020-03-22. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Android Debug Bridge (ADB) é uma ferramenta de linha de comando para instalar, desinstalar e debugar apps, transferir arquivos e acessar a console de um dispositivo.

Instalação

ADB faz parte das Ferramentas de Plataforma do pacote SDK e do pacote android-tools.

Utilização

Conectando um dispositivo

Dica:
  • Alguns dispositivos precisam estar com o modo MTP habilitado para o ADB funcionar. Outros necessitam do modo PTP habilitado.
  • Regras udev específicas de vários dispositivos estão incluídas no pacote libmtp então, se você tiver instalado este, os passos adiante podem ser desnecessários.
  • Certifique-se que seu cabo USB é capaz de carregar e transferir dados simultaneamente. Alguns cabos USB distribuídos com dispositivos móveis não possuem o pino de dados no cabo.

Para conectar um dispositivo ou telefone através do ADB no Arch você precisa:

  1. Talvez instalar o pacote android-udev caso você deseje conectar no dispositivo através de uma entrada no /dev/.
  2. Conectar seu dispositivo na USB.
  3. Habilitar USB Debugging(ou depuração USB) nas configurações do seu dispositivo:
    • Jelly Bean (4.2) ou versões mais recentes: Acesse Configurações > Sobre o Dispositivo toque 7 vezes em Número de Versão ou Versão de Compilação até que uma popup apareça avisando que você ativou o modo desenvolvedor. Número de compilação pode estar sob um menu chamado Informações do software em versões mais novas do sistema operacional Android. Vá então para Configurações > Opções do desenvolvedor > Depuração USB e habilite esta opção. O dispositivo irá perguntar se você deseja aceitar a conexão vinda do computador. Para permitir permanentemente copie o arquivo ~/.android/adbkey.pub no caminho /data/misc/adb/adb_keys do dispositivo.
    • Versões anteriores: Normalmente é feito em Configurações > Aplicativos > Desenvolvimento > Depuração USB. Reinicie o telefone para garantir que a depuração USB está habilitada.

Caso o comando (adb devices reconheça seu dispositivo exibindo "device" e não "unauthorized" ou se estiver visível pela sua IDE, está feito. Caso contrário, siga as instruções abaixo.

Descobrindo IDs de dispositivo

Cada dispositivo Android possui um ID de fabricante e produto (vendor/product). Exemplo do HTC Evo:

vendor id: 0bb4
product id: 0c8d

Conecte seu dispositivo e execute:

$ lsusb

Uma saída similar a esta deverá ser exibida

Bus 002 Device 006: ID 0bb4:0c8d High Tech Computer Corp.

Adicionando regras no udev

Utilize as regras do pacote android-udev (ou android-udev-gitAUR), instale as regras manualmente do Android developer, ou utilize o seguinte modelo para suas regras udev substituindo [VENDOR ID] e and [PRODUCT ID] pelos do seu dispositivo. Copie estas regras para /etc/udev/rules.d/51-android.rules:

/etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="[VENDOR ID]", MODE="0660", GROUP="adbusers"
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_adb"
SUBSYSTEM=="usb",ATTR{idVendor}=="[VENDOR ID]",ATTR{idProduct}=="[PRODUCT ID]",SYMLINK+="android_fastboot"

Para reiniciar as regras do udev execute:

# udevadm control --reload-rules

Certifique-se que você faz parte do grupo de usuários adbusers para ter acesso a dispositivos adb.

Detectando o dispositivo

Após configurar as regras no udev, desconecte e reconecte seu dispositivo.

Então, execute:

$ adb devices

uma saída similar a esta será exibida:

List of devices attached 
HT07VHL00676    device

Se o adb ainda não detectar o dispositivo após conectá-lo novamente, mate e reinicie o servidor adb como root e verifique os dispositivos novamente:

$ sudo adb kill-server
$ sudo adb start-server
$ adb devices

Transferindo arquivos

Usando o adb você pode transferir arquivos entre o dispositivo e o seu computador. Para transferir arquivos para o dispositivo, execute

$ adb push <o-que-copiar> <onde-por>

E para puxar arquivos do dispositivo, execute

$ adb pull <o-que-puxar> <diretório-local>

Veja também #Compilação de ferramentas ADB.

Backup e restauração

Você também pode fazer backup e restaurar seu dispositivo com adb. Além disso, nenhuma raiz é necessária para seguir o processo. Os comandos abaixo levaram ao backup do seu dispositivo em um único arquivo que também pode ser restaurado sucessivamente.

O comando para criar um backup é

$ adb backup -apk -shared -all -f nome-arquivo-backup.ab

A lista de parâmetros do comando é

adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|nosystem] [<pacotes...>]

Em seguida, confirme o processo na tela do seu dispositivo e forneça uma senha, se uma senha de backup foi definida anteriormente.

O comando para restaurar um backup anterior é

$ adb restore mybackup.ab
Nota: Lembre-se de que a restauração substitui o conteúdo do seu dispositivo pelo backup.

Compilação de ferramentas ADB

  • adbfs-rootless-gitAUR - Sistema de arquivos FUSE utilizando o protocolo ADB
  • adb-sync (disponível em adb-sync-gitAUR) - ferramenta para sincronizar arquivos entre o computador e um dispositivo Android através do protocolo ADB.
  • AndroidScreencast (disponível em androidscreencast-binAUR) – visualizar e controlar seu dispositivo Android do computador (protocolo ADB).
  • logcat-colorAUR - uma alternativa colorida e altamente configurável ao comando padrão adb logcat.
  • scrcpy (disponível como scrcpy) – exibe e controla seu dispositivo Android

Solução de problemas

  • Caso você receba uma lista vazia (your device is not there), você não habilitou a Depuração USB no seu dispositivo. Faça isto acessando Configurações > Aplicativos > Desenvolvimento e habilitando a opção Depuração USB. Desde o Android 4.2 (Jelly Bean), o menu de desenvolvimento é oculto; para habilitar vá em Configurações > Sobre o Dispositivo toque 7 vezes em Número de Versão ou Versão de Compilação.
  • No Moto E, o dispositivo pode ter vendor/product IDs diferentes nos modos fastboot e sideload; se você receber o erro "no permission" verifique tais IDs utilizando o comando lsusb.