Android Debug Bridge (Português)

From ArchWiki
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.