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.

Lespaul86
fonte

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.

Dan Hulme
fonte
Poderia, por favor, detalhar sua resposta? Onde pode encontrar esta "página"?
Luís de Sousa
@ LuísdeSousa android.stackexchange.com/q/33496/12442
Dan Hulme
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.

hcpl
fonte
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

the.laurence
fonte
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 .

flowtron
fonte
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