Jump to content
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`.

Category:

- Android (Português)