'Erro de permissões insuficientes' no comando 'adb push' em 12.04

46

Quando tentei enviar meu arquivo apk para um tablet, recebi este erro. Por favor, ajude-me.

adb server is out of date.  killing... 
* daemon started successfully * 
error: insufficient permissions for device.

Agradecemos antecipadamente pela ajuda.

    
por Neha Sharad Umachigi 24.01.2013 / 06:39

10 respostas

15

Eu vi esse mesmo erro às vezes no Ubuntu. Uma solução alternativa para isso é executar o adb com o comando sudo . Por exemplo, se você está empurrando app.apk em sdcard o comando seria

sudo adb push app.apk /mnt/sdcard

Além disso, certifique-se de selecionar o modo "USB debugging" nas configurações do aplicativo (no GingerBread) ou na seção Desenvolvimento (no IceCream Sandwich e acima). Se o adb já está rodando, você deve primeiro matá-lo com o comando sudo adb kill-server

Espero que isso ajude.

    
por Anwar 24.01.2013 / 08:35
50

Eu encontrei esse mesmo problema. Adicionar uma regra do udev conforme indicado aqui resolveu o problema:

Faça login como root, crie um arquivo /etc/udev/rules.d/51-android.rules e adicione uma linha como essa para conceder permissões a qualquer pessoa no grupo plugdev :

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

Neste exemplo, o ID do fornecedor é HTC. Você precisa usar o ID do fornecedor do seu dispositivo, que pode ser obtido executando lsusb e pesquisando por uma linha como

Bus 002 Device 009: ID 2a47:9e18

Neste exemplo, seu ID de fornecedor seria 2a47 , então você teria que substituir 0bb4 por 2a47 . A linha correta, portanto, seria:

SUBSYSTEM=="usb", ATTR{idVendor}=="2a47", MODE="0666", GROUP="plugdev"

Agora atribua permissões de leitura aos arquivos, recarregue o udev e recarregue o daemon adb:

sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
adb kill-server
adb start-server

Você pode ter que desconectar e conectar novamente seu dispositivo à porta USB.

    
por erjoalgo 23.09.2013 / 20:39
13

A resposta de Jorch914 no StackOverflow resolveu esse problema para mim:

  

Ok Então eu finalmente encontrei o problema, aparentemente, neste dispositivo, você tem que configurar para se conectar como câmera (mesmo depois de depuração usb já está habilitado)

     

     

Também este link descreve o processo de configuração

    
por kas 20.11.2016 / 02:13
10

Acabei de analisar o mesmo problema, mas eis como consegui passar por isso:

  • você deve eliminar o servidor de adb existente emitindo o seguinte comando: adb kill-server (pode estar errado, mas eu o enviei com AND sem sudo
  • inicie o servidor de adb com permissões apropriadas emitindo: sudo adb start-server
  • voila. você pode saber emitir qualquer comando que você precisar

Não tenho certeza se você sabe, mas há um pacote que inclui adb. Eu menciono isso porque notei que você está recebendo uma referência a uma versão mais antiga do adb. Você pode instalar emitindo o seguinte na sua linha de comando: sudo apt-get install android-tools-adb

Espero que isso ajude.

    
por semi-newbie 23.09.2013 / 22:04
10

Estes dois comandos simples resolveram o problema para mim:

adb kill-server
adb start-server

Note que, ao contrário da resposta do semi-novato , eu não preciso de sudo .

    
por Nicolas Raoul 02.10.2014 / 10:47
1

Hoje encontrei o erro insufficient permissions for device , apesar de adb estar funcionando como esperado alguns minutos antes. Agora eu recebo:

$ adb devices
List of devices attached 
????????????    no permissions

$ adb shell
error: insufficient permissions for device

Pouco antes de encontrar o erro, eu havia desativado Media device (MTP) , pois imaginei que não precisaria usar MTP . No entanto, parece que a depuração USB, ou pelo menos alguns comandos adb , exigem que Media device (MTP) seja ativado.

Para ativar Media device (MTP) no Android 4.4, vá para:

Settings
Storage
The "..." menu (in the upper right corner)
USB computer connection
Media device (MTP)

Quando MTP está desativado, lsusb mostra o seguinte:

Bus 002 Device 071: ID [idVendor1]:[idProduct1] Google Inc.

Após ativar MTP , o lsusb mostra o seguinte:

Bus 002 Device 072: ID [idVendor2]:[idProduct2] [idVendor string]

O idVendor e o idProduct mudam, com base no fato de MTP estar ou não ativado ou desativado.

Não sou especialista em Android, por isso, é possível que o comportamento acima seja específico para o meu modelo específico de telefone.

    
por mpb 16.11.2016 / 00:32
0

Poderia ser de outro motivo. Acabei de receber este erro ao tentar instalar um apk no dispositivo:

$ adb install platforms/android/build/outputs/apk/android-armv7-release.apk 
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: insufficient permissions for device
- waiting for device -

Isso aconteceu porque o dispositivo não estava pronto no modo correto. O dispositivo compartilhava sua conexão 4G via USB.

Pode ser conhecido assim:

$ adb devices -l
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *

33332EF19F3D00EC       no permissions usb:1-1.2

Por isso, foi o suficiente para desativar o compartilhamento de conexão no telefone e começar de novo.

Em geral, certifique-se de ter o seguinte resultado por meio do comando adb device antes de tentar enviar arquivos no dispositivo

$ adb devices -l
List of devices attached
33332EF19F3D00EC       device usb:1-1.2

Nestes casos, não há necessidade de matar ou reiniciar o servidor adb.

Provavelmente seria a mesma situação se você montasse o dispositivo para transferência de dados via USB

    
por Rémi B. 17.11.2015 / 22:38
0

Eu tive o mesmo problema e recebi permissões insuficientes. O que fiz foi revogar as autoridades USB do meu laptop. Então parou e começou a depuração USB. Conectou de volta no laptop e concedeu as autoridades de depuração do usb.

    
por Les Labbauf 18.11.2016 / 00:59
0

Eu enfrentei o mesmo problema e resolvi isso Adicionando o caminho de your_android_sdk_path à variável de ambiente como

sudo export $PATH:/your_android_sdk_path/platform-tools/adb

é seu desejo como você deseja adicionar isso à sua conta ou ao sistema editando esses arquivos ~/.bashrc file ou ~/.profile ou /etc/profile, /etc/bash.bashrc, or /etc/environment se você quiser adicionar ao acesso ao sistema.

e depois criar o link disso no bin

sudo ln -s /your_android_sdk_path/platform-tools/adb /bin/adb

se você usou dispositivos adb ou qualquer comando, então primeiro mate o servidor como

adb kill-server

inicie o servidor como

adb start-server
adb devices

agora você pode ver seus dispositivos listados corretamente sem problemas

    
por Naval Kishor Jha 04.07.2017 / 07:20
0

A resposta para este problema está aqui: link

Como desenvolvedor Android, sugiro que você NÃO use "sudo" para forçar o uso de adb em qualquer lugar. Não é o que devemos fazer. Regras, políticas e restrições estão lá para nossa própria segurança.

    
por Pavlos Theodorou 15.04.2018 / 10:06