Problema: adb não reconhece meu dispositivo android

Esse é meu primeiro post aqui no meu novo blog e nele vou mostrar a solução do problema citado no Título: Problema: adb não reconhece meu dispositivo android!  Este post é o primeiro que coloco aqui no blog sobre android, e é de um conteudo mais avançado, para quem já tem um conhecimento mais avançado de programação, android. Vou mostrar a solução usando o Sistema Operacional CentOS 6.2, então é necessário que o leitor tenha um pouco de conhecimento em comandos linux. Futuramente teremos mais postagens sobre android aqui no blog, a idéia é criar um mini curso aqui, que irá passado pelo básico do android até chegar no mais avançado, e também algumas coisas de aplicações híbridas e web Mobile.

Nota: é necessario ter o todo ambiente android instalado na sua máquina.

Nota: é necessario que seu dispositivo esteja conectado no seu micro e ativado para depuração de USB, para isso em seu aparelho vá em Configurações >> Aplicativos >> Desenvolvimento e ative a Depuração de USB e Permanecer Ativo.

O adb, também conhecido por Android Debug Bridge, é uma ferramenta de desenvolvimento, que vem junto com o pacote SDK do android, com ela você pode realizar diversas atividades, e uma delas é fazer o deploy de seus aplicativos no seu dispositovo, para executar o adb vá até o lugar onde está seu SDK e procure pelo adb que fica dentro do diretório platform-tools, para isso entre no terminal comom usuario root e usando o comando cd entre no diretório, como no exemplo abaixo, lembre-se que este diretório é meu, você deve procurar o seu:

cd /home/Pedro/android-sdk-linux/platform-tools/

Já dentro do caminho digite o comando para listar todos os dispositivos conectados:

./adb devices

Isso na teoria, mas como disse um sábio: “Na teoria a prática é outra”, pode ser que os dispositivos não sejam listados. Geralmente os dispositivos de marcas “conhecidas”, como LG, HTC, Motorola, Samsung são listados normalmente, mas os de marca “paralela”, “xing-ling”, ou uma placa nova que você esta desenvolvendo, como meu caso por exemplo, estou trabalhando com uma placa i.MX53 da Freescale semiconductor, e por esse motivo os dispositivos não aparecem. Vamos parar de papo, o passo seguinte é para o adb com o comando

./adb kill-server

e logo em seguida digite o comando lsusb para listar todos os dispositivos conectados, o comando deverá trazer algo parecido com o que esta abaixo.

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 04f2:b272 Chicony Electronics Co., Ltd Lenovo EasyCamera
Bus 002 Device 002: ID 0bda:0139 Realtek Semiconductor Corp. Card reader
Bus 001 Device 005: ID 15a2:0c02 Freescale Semiconductor, Inc.

Após encontrar o seu dispositivo anote os oito números que aparecem logo após ID, eles são na ordem o idVendor e idProduct e vamos usar os dois para configurar nosso ambiente.

Ainda como usuario root entre no diretório /etc/udev/rules.d/ como mostrado abaixo:

[root@Pedro rules.d]# cd /etc/udev/rules.d/

Usando vim crie um arquivo chamado 51-android.rules usando o comando:

vim 51-android.rules

pronto, dessa maneira o arquivo foi criado para edita-lo digite :e (é para digitar os dois pontos, rs) e escreva o codigo abaixo:

Nota: A sintexe rule vai depender da sua plataforma, este exemplo que estou colocando é do CentOS 6.2.

# Pedro Silva - add device
# 19 de Julho de 2012
#

ACTION!="add", GOTO="hpmud_rules_end"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="pid_test"
SUBSYSTEM!="usb_device", GOTO="hpmud_rules_end"

LABEL="pid_test"

# Freescale MX53
ATTRS{idVendor}=="15a2", ATTRS{idProduct}=="0c02", MODE="0666", GROUP="<code>plugdev</code>"

LABEL="hpmud_rules_end"

nesta linha ATTRS{idVendor}==”15a2″, ATTRS{idProduct}==”0c02″ você deve colocar o seu idVendor e idProduct. Agora para salvar e sair do vim, aperte a tecla esc, e logo em seguida digite :w para salvar e :q para sair. Continuando digite o seguinte comando para dar permissão:

[root@Pedro rules.d]# chmod a+r /etc/udev/rules.d/51-android.rules

O “a” indica que a permissão será dada a todos. O sinal de adição (+) indica que está sendo adicionada a permissão e “r” indica que a permissão que está sendo dada é de leitura.

Agora dentro do home/SeuUsuario tem um arquivo chamado .android, abra ele com o comando cd e com o comando ls você verá o arquivo adb_usb.ini. Agora basta digitar no terminal echo 0x15a2 >> adb_usb.ini para que seja escrito o seu idVendor dentro do arquivo adb_usb.ini. Lembre-se que o 15a2 é o meu idVendor, você deve substituir pelo seu, e também você e deve digitar o 0x antes do seu idVendor.

Pronto finalizamos por aqui, agora basta entrar no diretório do adb, e executar o comando ./adb devices, com isso já será possível ver os dispositivos, caso ocorra de não listar, reinicie o micro e realize o comando outra vez.

É isso, abraços!
Pedro Hos

Anúncios

8 comentários

  1. d4nd · abril 13, 2014

    Bah, muito bom!

    Me ajudou muito, viu!

  2. Pedro Henrique de Oliveira Silva · abril 14, 2014

    Obrigado 😀

  3. erickythierry · outubro 3, 2014

    ei brother. o meu ta dando o erro de “insufficient permissions for device” quando executo o comando adb shell. oque poderia ser?

    • Pedro Henrique de Oliveira Silva · outubro 3, 2014

      Entra como sudo

  4. Luiz Vitor · janeiro 5, 2016

    não encontro o arquivo adb_usb.ini no meu computador. esse arquivo deve ser criado ou ele deveria estar em alguma lugar dos meus arquivos do Android SDK. se puder responder o mais rápido possível eu agradeço.

  5. Antonio F. dos Santos Junior · abril 28, 2016

    o meu é um lg plime plus e depois que eu dou o comando adb kill-server aparece * server not runing *

  6. Hugo Cézar do Nascimento Góes · agosto 29, 2016

    Bom dia. Não encontro o arquivo adb_usb.ini. Alguém saberia me dizer porque ele não está na pasta .android ??? Obrigado.

  7. italo · novembro 4, 2016

    apos colocar o comando adb kill-server não aceito o comando lsusb. é assim msm q escreve?
    fala q não é reconhecido como comando interno
    queria colocar um s6 dos eua em portugues pelo morelocale2 e no caso preciso que o adb reconheça meu dispositivo. tem turtorial desse tipo
    poderia me ajudar?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s