Estou usando um telefone Samsung Galaxy Nexus ( plataforma Android 4.0 ).
Estou desenvolvendo um aplicativo Android no Ubuntu Linux OS. Gostaria de executar meu aplicativo diretamente no dispositivo celular Samsung, por isso executei as seguintes etapas de configuração:
no meu
AndroidManifest.xml
arquivo de projeto , adicionadoandroid:debuggable="true"
ao<application>
elementoNo dispositivo, em Configurações> Fontes desconhecidas ativadas
No dispositivo, em Configurações> Opções do desenvolvedor ativou a depuração USB
No meu computador, criei o
/etc/udev/rules.d/51-android.rules
arquivo com o seguinte conteúdo:SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"
No meu computador, execute o
chmod a+r /etc/udev/rules.d/51-android.rules
comando
Então, no meu computador, abri um terminal e executei o adb devices
comando, obtive:
List of devices attached
???????????? no permissions
Como não vi meu dispositivo, mas apenas ???????????? no permissions
, executei os seguintes comandos:
adb kill-server
adb start-server
adb devices
Mas eu ainda tenho:
List of devices attached
???????????? no permissions
Por quê? o que estou perdendo?
plugdev
grupo.Respostas:
O que funciona para mim é matar e iniciar o servidor adb novamente. No linux:
sudo adb kill-server
e depoissudo adb start-server
. Em seguida, ele detectará quase todos os dispositivos prontos para uso.fonte
-rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb
. Tente ir diretamente para o diretório e comece por "sudo ./adb devices". Se você pode executar que sem sudo, você deve ser capaz de executá-lo com sudo ... Não tenho a certeza que o seu problema pode ser ...adb kill-server
sudo adb start-server
para verificar:adb devices
Nada funcionou para mim até que finalmente encontrei a resposta aqui: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html
Estou copiando o texto aqui, caso ele desapareça no futuro.
Crie um arquivo chamado /tmp/android.rules com o seguinte conteúdo (os números hexadecimais do fornecedor foram obtidos na página da lista de fornecedores):
Execute os seguintes comandos:
Desconecte o cabo USB entre o telefone e o computador.
Reconecte o telefone.
Corre
adb devices
para confirmar que agora ele tem permissão para acessar o telefone.Observe que é possível usar em
, USER="$LOGINNAME"
vez de, MODE="0666"
no.rules
arquivo, substituindo o$LOGINNAME
seu nome de login, ou seja, o queid -nu
impresso.Em alguns casos, pode ser necessário atribuir ao arquivo de regras do udev um nome que seja classificado próximo ao final, como
z51-android.rules
.fonte
70-android.rules
este post: esausilva.com/2010/05/13/… . Também parabéns por nos informar que você precisa reiniciarudev
e eliminar todos os processos adb. Trabalhou como um encanto!sudo udevadm control --reload-rules
atualizar as regras do udev se a reinicialização do servidor não for suficiente.Digite os seguintes comandos:
adb kill-server
sudo ./adb start-server
adb devices
O problema é que você não está executando o servidor adb como root.
fonte
Tentei tudo acima, nenhum funcionou .. finalmente funcionou quando troco conectado como MTP para câmera (PTP).
fonte
Há muitas respostas ruins postadas nesta pergunta, desde insistir em executar
adb
comoroot
(que não deve ser apontado como a única ou até mesmo recomendada solução) a resolver problemas completamente não relacionados.Aqui está a receita mais curta e universal para cuidar de permissões para todos
adb
efastboot
dispositivos de uma só vez:Ou você pode usar uma versão um pouco mais longa que eu publiquei nesta essência .
Quanto à coisa específica que o OP fez de errado em sua pergunta - não foi recarregada as
udev
regras depois de editar o.rules
arquivo.O OP também não informou qual versão do Android (ROM) ele tinha em seu telefone. O
idVendor
valor é definido no software e, portanto, depende da ROM. Portanto, o valor que04E8
ele usou em sua regra original teria funcionado apenas para dispositivos com ROMs de ações da Samsung. Mas isso não é um problema para estaudev
regra - ela corresponde a todos os dispositivosadb
oufastboot
interfaces, independentemente do seu Código de Fornecedor .fonte
No Archlinux, isso pode acontecer ocasionalmente. O conserto:
fonte
sudo adb kill-server; sudo adb start-server
não funcionou, mas este funcionou.Para aqueles que usam o debian, o guia para configurar um dispositivo no Ubuntu para criar o arquivo "/etc/udev/rules.d/51-android.rules" não funciona. Eu segui as instruções daqui . Colocando o mesmo aqui para referência.
Edite este arquivo como superusuário
Encontre o texto semelhante a este
Então mude o modo para 0666 como abaixo
Isso permite que o adb funcione, no entanto, ainda precisamos configurar o dispositivo para que ele possa ser reconhecido. Precisamos criar esse arquivo como superusuário,
e entre
a linha acima é para HTC, siga a publicação de @ grebulon para obter a lista completa.
Salve o arquivo e reinicie o udev como superusuário
Conecte o telefone via USB e ele deve ser detectado quando você compila e executa um projeto.
fonte
Eu tive o mesmo problema, a solução é a mesma: (a propósito, você não precisa fazer o root no seu dispositivo).
Aproveitar.
fonte
su
, usesudo su
. Eu fiz. E também, se você não souber sair do usuário - useexit
.Sei que isso pode ser um pouco tarde, mas aqui está um artigo muito bom sobre como adicionar manualmente o driver USB do Android ADB. Adicionando manualmente o driver USB do Android ADB no Ubuntu 14.04 LTS
Editado para adicionar conteúdo do link
Passos
Nota: verifique se você conectou seu dispositivo Android no modo de depuração USB
Abra o terminal (
CTRL + ALT + T
) e digite o comando:lsusb
Agora você pode obter uma resposta semelhante a isso:
Bus 002 Device 013: ID 283b:1024
Nota: Com referência a este
Bus 002 Device 008: ID 283b:1024
{idVendor}==”283b” {idProduct}==”1024″
Agora digite o seguinte comando:
sudo gedit /etc/udev/rules.d/51-android.rules
Isso cria o arquivo de regras do Android (
51-android.rules
) ou abre o existente no local especificado (/etc/udev/rules.d
)Adicione uma nova linha a este arquivo:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″
Nota Edite
idVendor
eidProduct
valores com os valores do seu dispositivo. Salvar e fechar.Agora digite o seguinte comando:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules
- conceda permissão de leitura / execuçãosudo service udev restart
- reinicie oudev
serviçoAgora temos que adicionar o
idVendor
paraadb_usb.ini
. Digite os seguintes comandos:cd ~/.android
gedit adb_usb.ini
Adicione o seguinte valor
0x283b
Isso não passa de 0x (
idVendor
valor). Então substitua o valor por. em relação ao valor do seu dispositivo Salve e feche o arquivo.Agora digite o seguinte comando:
sudo service udev restart
Conecte o dispositivo Android e reconecte-o novamente.
Agora digite o seguinte comando:
adb kill-server
adb devices
Ai está! O seu dispositivo deve estar listado.
Copiado de adição manual do driver USB do Android ADB no Ubuntu 14.04 LTS
Trabalhou para mim.
fonte
Eu tive o mesmo problema com o meu Galaxy S3. Meu problema era que o
idVendor
valor04E8
não era o correto. Para encontrar o caminho certo, conecte seu smartphone ao computador e execute-olsusb
no terminal. Ele listará seu smartphone assim:Então o
idVendor
valor certo é18d1
. E a linha no/etc/udev/rules.d/51-android.rules
deve ser:Então eu corro
sudo udevadm control --reload-rules
e tudo funcionou!fonte
ATTR{idVendor}=="18d1"
Use a
M0Rf30/android-udev-rules
comunidade GitHub mantida regras udevhttps://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
Esta é a lista mais completa de regras do udev que eu vi até agora, ainda mais do que a atualmente recomendada
sudo apt-get install android-tools-adb
na documentação oficial , e resolveu esse problema para mim.fonte
Substitua o ID do fornecedor
0bb4
por18d1
em/etc/udev/rules.d/51-android.rules
Ou adicione outra linha que leia:
fonte
Quando você reiniciar o udev, mate o servidor adb e inicie o servidor adb no caminho da instalação do android sdk e faça tudo no sudo. em seguida, execute dispositivos adb que resolverão o problema de permissão.
fonte
Meu dispositivo é POSITIVO e meu sistema operacional é
Ubuntu 14.04 LTS
Então, meu problema estava no nome da variávelEu crio o arquivo /etc/udev/rules.d/51-android.rules e coloco
SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"
Desconectei o dispositivo e executei:
Depois disso, conectei o dispositivo Android no modo de desenvolvedor novamente e
fonte
Sem desconectar
Todas as respostas fornecidas pressupõem que você pode desconectar e reconectar o cabo USB. Em situações em que isso não é possível (por exemplo, quando você é remoto), você pode fazer o seguinte para essencialmente fazer o que as regras sugeridas do udev fariam ao reconectar:
Encontre o dispositivo de que você gosta, por exemplo:
Anote o número do barramento em que está ativado e execute, por exemplo, para o barramento
003
:Claramente, isso pode ser mais permissivo do que você deseja (pode haver mais dispositivos conectados do que apenas este), mas você entendeu.
fonte
udev
regra sem reconectar o dispositivo, basta usar oudevadm trigger --verbose --action=add --subsystem-match=usb
comandoVocê NÃO deve executar o
adb
servidor como root, como sugerem outras respostas. Em vez disso, se você estiver usando o Arch Linux, faça o seguinte:android-udev
pacote com PacmanRecarregar regras do udev:
Adicione-se ao
adbusers
grupo e efetue logout e login:Fonte: https://wiki.archlinux.org/index.php/android#Configuring_adb
fonte
Tente em vez de
GROUP="plugdev"
usar o grupo principal do seu usuário.fonte
No meu caso no ubuntu 12.04 LTS, tive que mudar meu modo usb HTC Incredible de charge para Media e, em seguida, o dispositivo apareceu sob adb. Obviamente, a depuração já estava ativada nos dois casos.
fonte
Por favor, NÃO seguir soluções que sugerem a utilização
sudo
(sudo adb start-server
)! Este adb é executado como root (administrador) e NÃO deve ser executado assim !!! É uma solução ruim MAU !Tudo o que é executado como root pode fazer qualquer coisa no seu sistema, se ele criar ou modificar um arquivo, poderá alterar sua permissão para ser usado apenas pelo root. Mais uma vez, NÃO!
A coisa certa a fazer é configurar seu sistema para fazer com que o USUÁRIO tenha permissão, confira este guia que escrevi sobre como fazê-lo corretamente.
fonte
Eu tive o mesmo problema e segui estas etapas:
Os passos acima estão descritos em android-udev-rules . Funcionou para mim.
Apenas certifique-se de confirmar a caixa de diálogo que será exibida na tela do telefone após a reinicialização.
fonte
Este comando funcionou para mim
fonte
Eu usei su e ele começou a funcionar. Quando uso o Jetbrains com usuário comum, vejo esse problema, mas após reiniciar o Jetbrains no modo su, posso ver meu dispositivo sem fazer nada.
Estou usando o Ubuntu 13.04 e o Jetbrains 12.1.4
fonte
Você também pode tentar editar o arquivo adb_usb.ini , localizado em /home/username/.android/ . Este arquivo contém a lista de fornecedores de identificação de dispositivos que você deseja conectar. Você acabou de adicionar o fornecedor de identificação do seu dispositivo na nova linha (é uma identificação por linha). Em seguida, reinicie o servidor adb e reconecte seu dispositivo.
Funcionou para mim no Ubuntu 12.10.
fonte
Enfim, o que eu fiz para resolver esse problema (no Ubuntu ).
Definido em quais casos eu preciso executar esses comandos. Para a maioria dos usuários do Ubuntu, há uma pasta inicial (arquivo oculto
.bashrc
).No qual você pode gravar o lançamento desses comandos. Mas esses comandos serão acionados quando você digitar o
bash
comando no console.Como eu tenho um shell .zshrc, fiz o seguinte:
console aberto:
gedit .zshrc
Quando o arquivo for aberto, adicione a seguinte linha:
Antes ou antes, precisamos criar este arquivo:
.add_device_permissions.sh
no qual escrevemos o seguinte:Também precisamos criar .permissions_redmi_note onde precisamos codificar nossa senha.
.zshrc
desnecessariamente ao arquivo , podemos especificar o caminho ao iniciar o próprio sistema:Startup Applications Preferences
Onde pressionamos "Adicionar" e escrevemos nosso comando:
/home/vadimm/.add_device_permissions.sh
./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
fonte
Se alguém enfrentar a seguinte mensagem de erro ao usar
adb devices
Execute o seguinte
Isso corrigiu o problema para mim em um dispositivo Android de compilação personalizado
fonte