o fastboot não funciona no meu Nexus 4

8

Estou tentando fazer root no meu N4 e o fastboot parece não funcionar. Executando no linux, e o binário fastboot parece rodar.

'Fastboot devices' produz informações no meu dispositivo, mas 'fastboot oem unlock' apenas ecoa '...' e trava. Não recebo a mensagem no telefone sobre desbloqueio. Ele fica parado até eu reiniciar o gerenciador de inicialização; nesse momento, o fastboot ecoa "FAILED (falha na gravação do comando (não é possível enviar após o desligamento do terminal de transporte)"

Outros comandos do fastboot também não parecem funcionar. 'fastboot reboot' ecoa 'reiniciando ...' mas depois nada acontece.

Eu tentei isso com e sem a depuração USB ativada. Alguma ideia?

Estou começando a pensar que as portas USB da minha máquina podem estar queimadas. Esta manhã, a máquina não reconheceu um iPod conectado ao Windows nas portas USB frontal ou traseira da minha máquina. Estou trabalhando no telefone no Linux e / var / adm / messages mostra coisas acontecendo quando eu conecto o dispositivo. Suponho que 'dispositivos de inicialização rápida' não acessam o dispositivo de forma aguda - apenas observa os tipos de dispositivo detectados pelo sistema operacional quando você o conectou, não? É possível ler da porta usb, mas não consigo gravar nela?

Bem, parece que foram minhas portas USB. Encontrei um laptop antigo, inicializei-o em um CD ao vivo do Ubuntu e consegui fazer root no telefone a partir daí. Desculpe por todo o drama. É estranho que minhas portas USB tenham morrido exatamente neste momento, mas, pensando bem, elas estão ficando lentas recentemente - a gPodder estava demorando alguns minutos para copiar podcasts no meu iPod. Eu acho que foi uma falha gradual.

littlenoodles
fonte
Tente executar fastboot como (dispositivos sudo fastboot) raiz
Liam W
Não, sudo não ajuda. Pelo que vale, eu fiz um tail -f em / var / log / messages quando iniciei o gerenciador de inicialização. Saída abaixo, terminando com o SerialNumber, que corresponde ao que 'fastboot devices' imprime.
Littlenoodles
O material / var / log / messages é muito longo para ser inserido aqui. Mas basicamente tenta e falha ao detectá-lo como um dispositivo usb 3-5, depois tenta como usb 2-2 e obtém êxito.
Littlenoodles
localhost klogd: usb 2-2: novo dispositivo USB de velocidade máxima usando ohci_hcd e endereço 6 localhost klogd: usb 2-2: Novo dispositivo USB encontrado, idVendor = 18d1, idProduct = 4ee0 localhost klogd: usb 2-2: novas cadeias de dispositivos USB : Mfr = 1, Product = 2, SerialNumber = 3 localhost klogd: usb 2-2: Produto: Android localhost klogd: usb 2-2: Fabricante: Google localhost klogd: usb 2-2: SerialNumber: 006ef4fae094444f
littlenoodles
Mais uma coisa (estranha?). Tentei selecionar a recuperação no gerenciador de inicialização e ela foi para uma tela de recuperação congelada com a mensagem "nenhum comando encontrado". Isso é assustador? A partir daí, pude voltar ao gerenciador de inicialização novamente com a combinação de potência vol-down.
Littlenoodles

Respostas:

5

A pista está no comentário acima, mas eu tentei o 'adb reboot bootloader' e funcionou. que mostra que adbrealmente está reconhecendo a conexão USB, mas não no modo de inicialização rápida, que é onde esta resposta entra ...

Parece que a regra do udev para a inicialização rápida está ausente!

Faça o seguinte: lsusbcom o cabo conectado enquanto o telefone estiver no modo de inicialização rápida.

A saída típica deve ser semelhante a esta:

Dispositivo 0012 do barramento 001: ID 18d1: d00d Google Inc.

                     ^^^^ ^^^^

O identificador de números 18d1:d00dcorresponde a idVendor : idProduct, respectivamente.

Anote e verifique as regras do udev encontradas em /etc/udev/rules.d/51-android-rules. (A milhagem variará um pouco com as diferentes distribuições do Linux! )

Se você não possui esse arquivo, recomenda-se criar um usando root, pode haver algumas regras que precisam ser adicionadas, dependendo do modo do aparelho, ou seja, normal, recuperação e carregador de inicialização.

Aqui está um exemplo meu, que possui valores diferentes, respectivamente, quando o aparelho está em um desses modos. Tome isso como modelo e altere os números, conforme mostrado, que coincidem com idVendor e idProduct, respectivamente, para se adequar à sua marca / modelo de aparelho.

SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1354", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1350", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1351", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="d00d", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

O ID do usuário é adicionado ao androiddevgrupo, que foi criado na ocasião anterior , dessa forma eu não preciso sudo!

Para criar um grupo, usando root

  1. groupadd androiddev, isso cria um grupo e, em seguida, adicione o ID do usuário do linux a esse grupo ...
  2. usermod -a -G androiddev your_user_id; substitua your_user_id pelo seu próprio ID de usuário usado para efetuar login).

Então, quando no modo de inicialização rápida, o binário do fastboot deve funcionar (bônus! Sem a necessidade de sudoqualquer um!)

t0mm13b
fonte