Estou executando o Ubuntu 10.10 de 64 bits. Tenho ia32-libs instaladas junto com o Android Debug Bridge versão 1.0.26.
Meus problemas):
adb devices
>>> ???????????? Nenhuma permissãosudo adb devices
>>>> sudo: adb: comando não encontradoadb shell
>>> erro: permissões insuficientes para o dispositivo
Acho que tudo isso está relacionado. Aqui estão as informações relevantes.
$ echo $PATH
/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux_x86/tools:/opt/android-sdk-linux_x86/platform-tools
$ which adb
/opt/android-sdk-linux_x86/platform-tools/adb
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions
$ sudo adb devices
sudo: adb: command not found
$ adb shell
error: insufficient permissions for device
Obtenho os mesmos resultados com um Moto Droid enraizado rodando CM6.1 e um G-Tab enraizado rodando um ROM baseado em CM7.
Eu revi as seguintes postagens relacionadas:
- http://forum.xda-developers.com/archive/index.php/t-522827.html
- http://ubuntuforums.org/archive/index.php/t-1164359.html
- comando adb não encontrado no ambiente linux
Tentei a maioria (não todas) das sugestões e não consegui resolver meu problema. As coisas que não experimentei pareciam inadequadas. Agradeceria mais algumas dicas e continuarei solucionando o problema.
Uma coisa que não tentei foi editar /etc/udev/rules.d/70-android.rules. É provável que seja esse o problema? Não consigo ver como isso causaria "sudo: adb: command not found". Talvez meus problemas não estejam todos relacionados. De qualquer forma, neste ponto acho que preciso de alguma contribuição de outras pessoas porque não acredito que tenha um problema de caminho ou os outros problemas comuns discutidos nesses outros posts.
EDIT: RESOLVIDO graças a EboMike e RivieraKid. Na verdade, eram dois problemas diferentes:
O item 2 acima (sudo: adb: comando não encontrado) foi resolvido criando um link simbólico da seguinte maneira:
$ sudo ln -s /opt/android-sdk-linux_x86/platform-tools/adb /usr/local/sbin/adb
Isso me permitiu seguir as sugestões de EboMike e usar essa solução . Fazer isso era necessário para meu Moto Droid. ( No entanto, executar o adb como sudo não era necessário para meu Viewsonic G-Tablet.)
Meus outros dois itens foram resolvidos com a implementação da regra udev como sugerido pelo RivieraKid (neste link ).
Respostas:
Algum motivo particular pelo qual você não fez isso? Para responder à pergunta - SIM! As regras do udev são o que informa ao Ubuntu qual é o seu dispositivo e permite que ferramentas de espaço do usuário o acessem.
Você não poderá usar o adb sem seguir corretamente as instruções .
Com isso em mente, no entanto, você não diz qual versão do Ubuntu está usando, mas tive problemas com a 10.10 - me avise se precisar que eu poste o conteúdo do meu arquivo de regras.
Não se preocupe em executar o adb via sudo, você não precisa dele. A
MODE="0666"
regra do udev permite que você acesse o dispositivo como qualquer usuário.EDITAR:
Não se esqueça de recarregar as regras:
sudo udevadm control --reload-rules
EDITAR # 2:
Como @Jesse Glick aponta corretamente, se o adb já estiver em execução no modo daemon, você também precisará reiniciá-lo para que isso funcione:
sudo adb kill-server
Usei o sudo aqui, pois isso garantirá que o adb será encerrado e é o método oficialmente compatível para interromper o servidor. Ele será reiniciado automaticamente na próxima vez que o adb for usado, mas desta vez com o ambiente correto.
fonte
adb
daemon, se ele estava em execução antes.Você precisa reiniciar o servidor adb como root. Veja aqui .
fonte
me@desktop:/opt/android-sdk-linux_x86/platform-tools$ sudo adb kill-server sudo: adb: command not found me@desktop:/opt/android-sdk-linux_x86/platform-tools$ adb kill-server me@desktop:/opt/android-sdk-linux_x86/platform-tools$ sudo adb start-server sudo: adb: command not found
adb
não está no caminho de seu superusuário. Digitewhich adb
para descobrir em qual caminho ele está e, em seguida, adicione-o ao caminho do root.No meu sistema Linux Gentoo / Funtoo estou tendo problemas semelhantes:
Sempre recebo a descrição do dispositivo incorreta e permissões insuficientes:
# sudo ./adb devices List of devices attached ???????????? no permissions # ./adb usb error: insufficient permissions for device
Para mim ajuda o howto do Google. No meu caso, precisei adicionar a regra udev:
# cat /etc/udev/rules.d/51-android.rules SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
e configurar os direitos do sistema de arquivos
# chmod a+r /etc/udev/rules.d/51-android.rules
Após reconectar meu smartphone, o acesso ao telefone foi bem-sucedido, ele também aparece agora no Seletor de dispositivo Android do Eclipse:
# sudo ./adb devices List of devices attached 3XXXXXXXXXXXXXC device # sudo ./adb usb restarting in USB mode
Você também deve verificar a associação de seu usuário ao grupo plugdev .
fonte
Cada resposta que li indica o
SUBSYSTEM=="usb"
. No entanto, meu (talvez antigo) udev precisava que isso fosse alterado paraDRIVER=="usb"
. Por fim, posso executar o servidor adb como um usuário não root ... yay.Pode ser instrutivo observar a saída de udevmonitor --env, seguida pela saída de
udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>
fonte
udevmonitor
eudevinfo
não existir em sua máquina, useudevadm monitor
e em seuudevadm info -a -p ...
lugar.Observe que IDEs como o IntelliJ IDEA tendem a iniciar seu próprio servidor adb.
Mesmo encerrar manualmente o servidor e executar uma nova instância com sudo não ajudará aqui até que você faça seu IDE encerrar o próprio servidor.
fonte
reiniciar o servidor adb como root funcionou para mim. Vejo:
derek@zoe:~/Downloads$ adb sideload angler-ota-mtc20f-5a1e93e9.zip loading: 'angler-ota-mtc20f-5a1e93e9.zip' error: insufficient permissions for device derek@zoe:~/Downloads$ adb devices List of devices attached XXXXXXXXXXXXXXXX no permissions derek@zoe:~/Downloads$ adb kill-server derek@zoe:~/Downloads$ sudo adb start-server * daemon not running. starting it now on port 5037 * * daemon started successfully * derek@zoe:~/Downloads$ adb devices List of devices attached XXXXXXXXXXXXXXXX sideload
fonte
Corrigi esse problema no meu sistema debian GNU / Linux substituindo as regras do sistema dessa maneira:
Usei conteúdo de arquivos com link em: http://rootzwiki.com/topic/258-udev-rules-for-any-device-no-more-starting-adb-with-sudo/
fonte
HTC One m7 executando o novo Cyanogenmod 11.
O telefone está conectado via USB e tethering minha conexão de dados.
Então eu recebo esta surpresa:
cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb shell error: insufficient permissions for device cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices List of devices attached ???????????? no permissions
SOLUÇÃO: DESLIGUE o tethering no telefone.
cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices List of devices attached HT36AW908858 device
fonte
Acabei de chegar à mesma situação, a redefinição dos dados de fábrica funcionou bem para mim.
fonte