Android Debug Bridge (Portuguê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
- 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:
- Talvez instalar o pacote android-udev caso você deseje conectar no dispositivo através de uma entrada no
/dev/
. - Conectar seu dispositivo na USB.
- 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.
- 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
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
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[link quebrado: package not found] - 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
.