Fastboot no funciona en mi Nexus 4

Estoy tratando de rootear mi N4 y parece que fastboot no funciona. Ejecutándolo en Linux, y el binario fastboot parece ejecutarse.

'Fastboot devices' produce información en mi dispositivo, pero 'fastboot oem unlock' solo hace eco '...' y se cuelga. No recibo el aviso en el teléfono sobre el desbloqueo. Simplemente se cuelga allí hasta que reinicio el cargador de arranque, momento en el que fastboot hace eco de "FALLIDO (error de escritura del comando (no se puede enviar después del cierre del punto final de transporte))"

Otros comandos de fastboot tampoco parecen funcionar. 'fastboot reboot' repite 'rebooting...' pero luego no pasa nada.

He intentado esto con y sin la depuración usb habilitada. ¿Algunas ideas?

Estoy empezando a pensar que los puertos USB de mi máquina pueden estar dañados. Esta mañana, la máquina no reconoció un iPod conectado bajo Windows en los puertos USB delanteros o traseros de mi máquina. Estoy trabajando en el teléfono bajo Linux, y /var/adm/messages muestra cosas que suceden cuando conecto el dispositivo. Supongo que 'dispositivos de arranque rápido' no acceden al dispositivo de forma directa, solo miran los tipos de dispositivos detectados por el sistema operativo cuando lo conectaste, ¿no? ¿Es posible que pueda leer desde el puerto usb pero no pueda escribir en él?

Bueno, parece que fueron mis puertos USB. Encontré una computadora portátil vieja, la inicié en un CD en vivo de Ubuntu y pude rootear el teléfono desde allí. Lo siento por todo el drama. Es extraño que mis puertos USB se apaguen justo en este momento, pero ahora que lo pienso, se han estado ejecutando lentamente recientemente: gPodder se tomó minutos para copiar podcasts a mi iPod. Supongo que fue un fracaso gradual.

Intente ejecutar fastboot como root (dispositivos sudo fastboot)
No, sudo no ayuda. Por lo que vale, hice una cola -f en /var/log/messages cuando inicié el gestor de arranque. Salida a continuación, que termina con SerialNumber, que coincide con lo que imprime 'fastboot devices'.
El material de /var/log/messages es demasiado largo para ingresarlo aquí. Pero básicamente intenta y falla al detectarlo como un dispositivo USB 3-5, luego lo intenta como USB 2-2 y tiene éxito.
localhost klogd: usb 2-2: nuevo dispositivo USB de velocidad completa usando ohci_hcd y dirección 6 localhost klogd: usb 2-2: Nuevo dispositivo USB encontrado, idVendor=18d1, idProduct=4ee0 localhost klogd: usb 2-2: Nuevas cadenas de dispositivos USB : Mfr=1, Product=2, SerialNumber=3 localhost klogd: usb 2-2: Producto: Android localhost klogd: usb 2-2: Fabricante: Google localhost klogd: usb 2-2: SerialNumber: 006ef4fae094444f
Una cosa más (¿rara?). Traté de seleccionar la recuperación desde el gestor de arranque y se fue a una pantalla de recuperación congelada con el mensaje "no se encontró ningún comando". ¿Es eso aterrador? A partir de ahí, pude volver al cargador de arranque nuevamente con el combo de potencia y bajada de volumen.
¿Es el último binario fastboot? ¿De dónde sacaste ese ejecutable fastboot?
Hmmm... ¿falta una regla udev para eso?
Obtuve el fastboot original de un sitio de procedimiento de enraizamiento xda dev nexus 4. También intenté descargar el SDK de Android más reciente y la versión allí se comporta de la misma manera.
Creo que mis puertos USB han muerto. Pude montar el teléfono en modo MTP cuando lo compré por primera vez. Ahora eso no funciona. El comando mtpfs se colgó durante mucho tiempo y finalmente fs aparece en df, pero ls /media/nexus no está haciendo nada.
... y cuando cambié el teléfono de MTP a la cámara, el comando colgado ls finalmente 'terminó' y enumeró un directorio de listas de reproducción. El USB parece estar funcionando, pero es muy lento. ¿Tiempo para una nueva computadora?
Pero acabo de probar 'adb reboot-bootloader' y funcionó. Muy raro.

Respuestas (1)

La pista está en el comentario anterior . Pero acabo de probar 'adb reboot bootloader' y funcionó. lo que muestra que , de adbhecho, está reconociendo la conexión USB, pero no en el modo de arranque rápido, que es donde entra esta respuesta ...

¡Parece que la regla udev para el arranque rápido está ausente!

Haga esto: lsusbcon el cable enchufado mientras el teléfono está en modo de arranque rápido.

La salida típica debería ser similar a esta:

Bus 001 Dispositivo 012: ID 18d1:d00d Google Inc.

                     ^^^^ ^^^^

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

Tome nota y verifique las reglas de udev que se encuentran en /etc/udev/rules.d/51-android-rules. ( ¡El kilometraje variará ligeramente con las diferentes distribuciones de Linux! )

Si no tiene este archivo, entonces se recomienda crear uno usando la raíz, puede haber algunas reglas que deben agregarse según el modo del teléfono, es decir, los modos normal, recuperación y cargador de arranque.

Aquí hay un ejemplo mío, que tiene diferentes valores respectivamente cuando el teléfono está en uno de estos modos. Tome esto como una plantilla y cambie los números como se muestra que coincidan con idVendor e idProduct respectivamente para adaptarse a su marca/modelo de teléfono.

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"

La identificación de usuario se agrega al androiddevgrupo, que se creó en una ocasión anterior , ¡de esa manera no tengo que hacerlo sudoen absoluto!

Para crear un grupo, usando root

  1. groupadd androiddev, esto crea un grupo, luego para agregar la identificación de usuario de Linux a ese grupo...
  2. usermod -a -G androiddev your_user_id; reemplace your_user_id con su propia identificación de usuario utilizada para iniciar sesión).

Luego, cuando esté en modo de arranque rápido, el binario de arranque rápido debería funcionar (¡bonificación! ¡Sin necesidad de sudoninguno de los dos!)