Configurando o adb para acesso do usuário

3

Comprei recentemente um telefone Android (meu primeiro). Isso provavelmente não é relevante para a pergunta, mas é um Micromax Canvas Hue AQ5000, rodando o Android 4.4.2.

Eu quero acessar o telefone do meu computador, atualmente executando Debian wheezy. ADB foi recomendado para mim. Instalei android-tools-adb e, depois de ativar Opções do Desenvolvedor e Depuração USB , consegui acessar o telefone via adb shell , por exemplo.

No entanto, o ADB não funciona como usuário. Aqui está o arquivo udev correspondente, /lib/udev/rules.d/70-android-tools-adb.rules .

# Set ACLs for console users on adb USB devices
# d001 recovery
# d002 system

ACTION=="add|change", SUBSYSTEM=="usb", \
  ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d001|d002", \
  TAG+="uaccess"

Como devo modificar este arquivo para permitir o acesso do usuário? O caminho natural parece ser o de dar acesso a um grupo. Nesse sentido, aqui está uma sugestão, a saber, uma resposta para o "dispositivo Android Debug Bridge (adb) - sem permissões" que sugere

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

Então, devo adicionar GROUP="plugdev" ao arquivo acima ou há uma maneira melhor? Além disso, o que significa a parte ATTRS{idVendor}=="18d1" e isso funcionaria para qualquer dispositivo? Além disso, o que significa ATTRS{idProduct}=="d001|d002" ?

Vou considerar encaminhar boas sugestões para o Bug Tracker do Debian.

    
por Faheem Mitha 05.05.2015 / 21:02

1 resposta

3

No meu sistema gentoo, as seguintes regras do udev são configuradas (em /lib64/udev/rules.d para mim):

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0664", GROUP="android"
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0664", GROUP="android"
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0664", GROUP="android"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0664", GROUP="android"

Essas regras dão acesso a dispositivos Android USB (22b8 = Motorola, 0bb4 = HTC, 04e8 = Samsung e 18d1 = Google) para qualquer pessoa no grupo android .

O nome do grupo que você decidir usar não é importante, desde que seu usuário seja membro desse grupo.

Para resolver suas outras dúvidas sobre os identificadores USB, os IDs do fornecedor e do produto identificam dispositivos específicos. Você pode ver seus identificadores usando dmesg ou lsusb . Por exemplo. quando eu conecto meu telefone, dmesg relatórios:

[ 4573.116303] usb 4-5: New USB device found, idVendor=22b8, idProduct=2e63

e lsusb relatórios:

Bus 004 Device 005: ID 22b8:2e63 Motorola PCS

que me dizem que meu telefone tem um ID de fornecedor de 22b8 e ID de produto 2e63. A regra do udev:

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0664", GROUP="android"

corresponderá a este dispositivo (e a todos os telefones Motorola, já que não é restrito por um ID de produto) e definirá permissões no dispositivo USB para este telefone para:

crw-rw-r--+ 1 root android 189, 388 May  5 19:38 /dev/bus/usb/004/005

Você pode encontrar seu dispositivo usb para verificar suas permissões usando o barramento usb e o número do dispositivo. lsusb reportou Bus 004 Device 005 e o caminho do dispositivo contém .../004/005 . Desde que você possa ler / escrever para este dispositivo, você poderá usar adb e outros programas que requerem acesso ao telefone.

Advertência: a nomenclatura do dispositivo pode ser ligeiramente diferente no seu sistema. Estou executando o udev 215 e o kernel linux 4.0.1.

    
por 05.05.2015 / 21:11

Tags