adb no permissões no Ubuntu 17.04

25

Quando eu tento:

$ adb devices

eu recebo o resultado:

List of devices attached 
????????????    no permissions

qual é o problema?

tentei em uma máquina Ubuntu 16.04 e funcionou perfeitamente. tentou um dispositivo 7.1.1 e também funcionou perfeitamente.

    
por Nadav Tasher 24.04.2017 / 12:10

11 respostas

32

Tente reiniciar o servidor Adb.

sudo adb kill-server

e depois

sudo adb start-server

em seguida, conecte o dispositivo. Ative a Depuração e digite

adb devices
    
por Sumeet Deshmukh 26.04.2017 / 19:13
26

Teve o mesmo problema. Garantir que o modo USB do dispositivo NÃO apenas o carregamento resolveu-o.

    
por Ivan Klass 13.05.2017 / 14:35
22

É muito provável que o udev inclua incorretamente o seu dispositivo. Eu também tive esse problema & amp; me deparei com uma solução relativamente simples.

Encontre o seu dispositivo em lsusb

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink) 
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Ponto de interesse neste caso:

Bus 001 Device 006: ID 18d1:4ee7 Google Inc.

Confira o arquivo de dispositivo correspondente

$ ls -l /dev/bus/usb/001/006

Provavelmente você verá algo como

crw-rw-r-- 1 root root 189, 5 Sep  8 21:47 /dev/bus/usb/001/006

Isso significa que o arquivo do dispositivo será de propriedade do usuário root e da raiz do grupo, e é por isso que o adb pode acessá-lo como root, mas não como usuário padrão.

Isso pode ser resolvido criando uma nova regra do udev - eu usei /etc/udev/rules.d/51-android.rules - para adicionar o dispositivo ao grupo plugdev , que adb já supõe que você seja um membro de (você deve ser, verifique usando id )

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", 
GROUP="plugdev", SYMLINK+="android%n"

** Lembre-se de substituir o ATTR {idProduct} == "4ee7" pelo seu próprio ID de produto que você encontrou na etapa um. ** (Se o seu fornecedor não é o Google Inc., substitua também o ID do fornecedor pelo de antes do cólon no lsusb).

Agora, basta desconectar o dispositivo e conectá-lo novamente (o udev deve responder automaticamente ao novo arquivo) e tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

Fonte: Adicionando regras do udev para dispositivos Android de depuração USB - Janos Gyerik

    
por Paul 08.09.2017 / 22:40
2

Você precisa fornecer permissão em seu dispositivo Android. Vá para Configurações > Opções do desenvolvedor. Tente desativar a Depuração do Usb e, em seguida, ligue-a novamente. Remova o cabo e reconecte-o. Além disso, tente excluir todas as autorizações salvas das opções do desenvolvedor. Agora, deve solicitar permissão de depuração por meio de um aviso no seu telefone. Aceite isso.

    
por Droidzone 24.04.2017 / 12:13
2

Para expandir a resposta de Sumeet Deshmukh, sua abordagem funciona em geral - se você quiser usar apenas o comando adb do console.

O Android Studio, no entanto, aparentemente inicia seu próprio servidor adb, matando o nosso. Isso significa que depois de termos matado / iniciado o servidor com o sudo, o Studio o reinicia, o que leva à situação inicial - sem permissões.

A solução é primeiro iniciar o Studio e, em seguida, executar o início / parada do servidor. Ao fazer isso, consegui que meu Nexus 5X aparecesse como um destino de execução válido no Studio.

Esta não é a melhor situação (ter que executar comandos toda vez que você iniciar o Studio), mas isso funciona de maneira rápida e suja. Se eu encontrar uma solução mais permanente, atualizarei esta resposta.

    
por Shade 17.08.2017 / 21:56
1

Ele não funcionou para mim depois que eu adicionei o grupo plugdev e reiniciei a máquina apenas para garantir que a alteração entraria em vigor em todas as minhas sessões de shell. Descobri então que não há nenhum arquivo 51-android.rules em /etc/udev/rules.d e tive que fazer o seguinte para corrigir o problema:

# Here the vendor ID is of Google
$ echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0660", GROUP="plugdev"' | sudo tee —append /etc/udev/rules.d/51-android.rules
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo udevadm control --reload-rules
$ sudo service udev restart

Eu também tive que desconectar e reconectar meu dispositivo Android.

    
por russoue 29.09.2018 / 03:48
1

Mudar o modo USB do Telefone fez o truque para mim. (Eu configurei para Transferência de arquivos .)

    
por NuttLoose 11.10.2017 / 16:36
0

A comunidade do GitHub manteve as regras do udev

link

Esta é a lista de regras do udev mais completa que já vi até agora, ainda mais do que o recomendado atualmente sudo apt-get install android-tools-adb na documentação oficial , experimente.

    
0

Não sei por que isso funciona, mas essa foi a única solução que funcionou para mim

Descubra onde o adb está sendo executado (se você for como eu, você tem várias versões instaladas). Tenha em mente que ferramentas como reagir nativo podem decidir usar outras versões aleatórias para tornar sua vida mais difícil. Para mim é ~/Android/Sdk/platform-tools/adb . Então eu vou correr:

sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb

As ferramentas do Android são super irritantes.

    
por Bufke 06.09.2017 / 23:09
0

Vá para Configurações > > Manutenção > > Armazenamento. Em seguida, verifique o menu no canto superior esquerdo e clique em Conexão do computador USB e mude para o dispositivo de mídia (MTP).

    
por Charloh Maguri Jnr 09.04.2018 / 09:50
0

Por favor NÃO siga as soluções sugerindo usar sudo ( sudo adb start-server )! Esta execução adb como root (administrador) e não é suposto a correr assim !!! É uma solução ruim !

Tudo funcionando como root pode fazer qualquer coisa no seu sistema, se criar ou modificar um arquivo pode alterar sua permissão para ser usado apenas pelo root. Mais uma vez, NÃO!

A coisa certa a fazer é configurar seu sistema para que o USUÁRIO tenha a permissão, confira este guia eu escrevi sobre como fazê-lo corretamente.

    
por Daniele Segato 03.05.2018 / 10:25