O ADB no Ubuntu não reconhece o Nexus 4


8

Não consigo reconhecer meu telefone Nexus 4 pelo ADB no Ubuntu (12.04 com um kernel mais recente instalado: 3.8.0-30-genérico). O modo de desenvolvedor está ativado no telefone.

O dispositivo aparece no lsusb :

$ lsusb
...
Dispositivo 0034 do barramento 003: ID 18d1: 4ee5 Google Inc. 
...

Mas quando executo dispositivos adb, recebo uma lista vazia. Encontrei muitos posts na internet sobre esse problema, mas nenhum deles resolve o problema. Existem duas soluções.

  • Adicione uma regra ao /etc/udev/rules.d/51-android.rules . Encontrei várias variações para o conteúdo deste arquivo. Na maioria dos casos, um idVendor e idProduct valor deve ser definido com base na saída de lsusb . Abaixo estão alguns exemplos que eu tentei
SUBSISTEMA == "usb", ATTRS {idVendor} == "18d1", ATTRS {idProduct} == "4ee5", MODE = "0666" GROUP = "androiddev", SYMLINK + = "android% n"
SUBSISTEMA == "usb", ATTR {idVendor} == "18d1", MODE = "0666", GRUPO = "plugdev"
SUBSISTEMA == "usb", ATTRS {idVendor} == "18d1", SYMLINK + = "android_adb", MODE = "0666"
SUBSISTEMA == "usb", ATTR {idVendor} == "18d1", ATTR {idProduct} == "4ee5", MODE = "0666", PROPRIETÁRIO = "meu login" 

Depois de adicionar isso, defino as permissões para o arquivo de regras como 644 e reiniciei o PC / reiniciei o udev, reiniciei o telefone e conectei meu Nexus 4.

  • Adicione o ID do fornecedor a ~ / .android / adb_usb.ini.
eco 0x18d1 >> ~ / .android / adb_usb.ini

Corri adb dispositivos como root e de usuário normal, mas eu só obter uma lista vazia:

$ adb devices
* não corra, Daemon. iniciando-o agora na porta 5037 *
* daemon iniciado com sucesso *
Lista de dispositivos anexa 

Alguma idéia de como resolver esse problema? Qualquer ajuda de sugestões seria muito apreciada.

Respostas:


7

Não basta fazer com que a página de opções do desenvolvedor apareça no menu de configurações (tocando repetidamente no número da compilação). Nessa página, há uma opção de depuração USB , que é desativada como padrão.

Quando a Depuração USB está ativada, a conexão do dispositivo a um PC usando USB faz com que a notificação "Depuração USB conectada" seja exibida, independentemente de adbestar em execução no PC.


Poderia, por favor, detalhar sua resposta? Onde pode encontrar esta "página"?
Luís de Sousa


Estou tentando conectar adbporque a tela de toque está quebrada. Não tenho como acessar nenhum de seus menus e aplicativos. Haveria outra maneira de ativar esse recurso de depuração USB?
Luís de Sousa

1

Para um conjunto de instruções mais completo de como configurar as regras do Nexus 4 udev no ubuntu, siga estas instruções:

Como encontrar o ID do fornecedor do seu dispositivo

Você pode encontrar um ID de fornecedor para dispositivos conectados via USB com o seguinte comando linux:

lsusb

Isso gerará uma lista de todos os dispositivos USB conectados, portanto, verifique se o dispositivo está conectado antes de fazê-lo.

Bus 001 Device 004: ID 18d1:4ee2 Google Inc.

A primeira parte do campo após o ID é o ID do fornecedor (18d1) e a segunda parte corresponde ao modo no qual o dispositivo está conectado. Nesse caso, 4ee2 é igual ao modo MTP com a depuração ativada.

CRIAR REGRA UDEV PARA NEXUS 4

Para poder detectar o telefone Nexus 4 no Ubuntu, a primeira coisa é criar as regras udev adequadas que permitirão ao sistema detectar o telefone.

Essas regras do udev devem poder lidar com 4 casos diferentes:

  • telefone conectado no modo MTP (depuração USB ativada ou desativada)
  • telefone conectado no modo PTP (depuração USB ativada ou desativada)
  • telefone conectado no modo Fastboot
  • telefone conectado no modo de recuperação

Eles serão declarados em /etc/udev/rules.d/99-android.rules. Se o arquivo já existir, basta anexar o conteúdo ao final.

# sudo gedit /etc/udev/rules.d/99-android.rules

O conteúdo abaixo deve ser adicionado. Certifique-se de substituir o campo seu login pelo nome de usuário adequado com o qual você fez login.

# Google Nexus 4 16 Gb
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee1", MODE="0666", OWNER="your-login" # MTP media (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0666", OWNER="your-login" # MTP media with USB debug on(multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee5", MODE="0666", OWNER="your-login" # PTP media (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee6", MODE="0666", OWNER="your-login" # PTP media with USB debug on (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0666", OWNER="your-login" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666", OWNER="your-login" # Recovery

Reiniciar serviços

Uma vez feito, o serviço udev deve ser reiniciado.

# sudo service udev restart

Observe que, em alguns casos, também é necessário reiniciar o adb com:

adb kill-server
adb start-server

Ou reinicie completamente o sistema com:

sudo reboot -n

Reconectar o cabo USB (em vez de uma reinicialização) também pode funcionar.

Autorizar conexão ADB

Se você acabou de ativar a opção de depuração do ADB no seu telefone e criou esta nova conexão, o comando ADB pode listar o seu dispositivo como unauthorized. Basta verificar a tela do seu telefone e autorizar a nova conexão.

Créditos

A maioria dessas informações foi encontrada em http://bernaerts.dyndns.org/android/267-android-nexus4-root-twrp-ubuntu . Este é um guia de root para o nexus 4 no ubuntu. Eu usei apenas o primeiro passo deste guia.


Eu apenas tentei esta solução do Ubuntu 14.04 e, mesmo após a reinicialização do sistema, o Nexus 4 não é reconhecido.
Luís de Sousa

Você tentou iniciar o adb com permissões de root? Veja uma das outras respostas sobre o Ubuntu 14.04 +: você verificou o modo de conexão USB no dispositivo?
hcpl 21/03/16

Sim, eu tentei com isso sudo. O telefone é conectado no modo MTP com a depuração desativada.
Luís de Sousa

1

Estou executando o Ubuntu 14.04 LTS e descobri que tenho que executar o adb com permissões de root para detectar meu telefone. Agora mesmo eu corri (do diretório platform-tools) ./adb devicese criei uma lista vazia. Eu reiniciei o adb como root executando ./adb kill-servere depois sudo ./adb start-server. Agora adb devicesretorna:

List of devices attached 
01d17087d29dec60    device

Considerando que antes era assim:

Lista de dispositivos anexa


matar, depois começar como raiz funcionou para mim. Usando um Nexus 5
Russ Wheeler

11
Eu apenas tentei esta solução no Ubuntu 14.04 e ainda recebo uma lista de dispositivos vazios.
Luís de Sousa

0

FYI: Atualizei recentemente a versão do Android de 4.4 para 5.0 no meu telefone e o ADB não mostraria mais o dispositivo conectado. Parece que o método de conexão USB MTP estava correto antes de agora ser PTP .


Poderia, por favor, detalhar sua resposta? Onde exatamente esse método deve ser ajustado?
Luís de Sousa

Como afirmei, o MTP estava correto ANTES, APÓS a atualização PTP estava correta.
Flowtron
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.