fastboot не работает на моем Nexus 4

8

Я пытаюсь получить root на моем N4, и fastboot, похоже, не работает. Запуск его на Linux, и бинарный файл fastboot, кажется, работает.

«Fastboot devices» выдает информацию о моем устройстве, но «fastboot oem unlock» просто повторяет «...» и зависает. Я не получаю подсказку по телефону о разблокировке. Он просто висит там до тех пор, пока я не перезапущу загрузчик, после чего fastboot выдает «FAILED (ошибка записи команды (невозможно отправить после завершения работы конечной точки транспорта)»

Другие команды fastboot тоже не работают. «fastboot reboot» повторяет «перезагрузка ...», но тогда ничего не происходит.

Я пробовал это с включенной отладкой USB и без нее. Любые идеи?

Я начинаю думать, что USB-порт (ы) на моей машине может быть взорван. Этим утром машина не распознала iPod, подключенный под Windows, на переднем или заднем USB-портах моей машины. Я работаю на телефоне под Linux, и / var / adm / messages показывает, что происходит, когда я подключаю устройство. Я предполагаю, что «устройства fastboot» не имеют прямого доступа к устройству - просто смотрят на обнаруженные типы устройств ОС, когда вы подключили его, нет? Возможно ли, что я могу читать с порта USB, но не могу записать на него?

Ну, похоже, это были мои порты USB. Я нашел старый ноутбук, загрузил его на Live CD с Ubuntu и смог оттуда рутировать телефон. Извините за всю драму. Странно, что мои USB-порты умерли именно в этот момент, но если подумать, в последнее время они работают медленно - gPodder тратил минуты на копирование подкастов на мой iPod. Я думаю, это был постепенный сбой.

littlenoodles
источник
Попробуйте запустить FastBoot как корень (Судо FastBoot устройств)
Лиам Вт
Нет, Судо не помогает. Для чего это стоит, я сделал хвост -f в / var / log / messages при запуске загрузчика. Вывод ниже, заканчивающийся SerialNumber, который соответствует тому, что печатает «fastboot devices».
Littlenoodles
Материал / var / log / messages слишком длинный для ввода здесь. Но он в основном пытается и не может определить его как устройство USB 3-5, затем пытается использовать USB 2-2 и успешно.
Littlenoodles
localhost klogd: usb 2-2: новое высокоскоростное USB-устройство с использованием ohci_hcd и адреса 6 localhost klogd: usb 2-2: найдено новое USB-устройство, idVendor = 18d1, idProduct = 4ee0 localhost klogd: usb 2-2: новые строки USB-устройства : Mfr = 1, Product = 2, SerialNumber = 3 localhost klogd: usb 2-2: Продукт: Android localhost klogd: usb 2-2: Производитель: Google localhost klogd: usb 2-2: SerialNumber: 006ef4fae094444f
littlenoodles
Еще одна (странная?) Вещь. Я попытался выбрать восстановление из загрузчика, и он перешел на замороженный экран восстановления с сообщением «команда не найдена». Это страшно? Оттуда я снова смог вернуться к загрузчику с помощью комбо-кнопки питания.
Littlenoodles

Ответы:

5

Подсказка кроется в комментарии выше. Но я только что попробовал 'adb reboot bootloader', и это сработало. который показывает, что adbдействительно распознает USB-соединение, но не в режиме быстрой загрузки, где этот ответ приходит ...

Похоже, что правило быстрой загрузки для udev отсутствует!

Сделайте это: lsusbподключив кабель, когда телефон находится в режиме быстрой загрузки.

Типичный вывод должен быть похож на это:

Шина 001 Устройство 012: ID 18d1: d00d Google Inc.

                     ^^^^ ^^^^

Числовой идентификатор 18d1:d00dсоответствует idVendor : idProduct соответственно.

Запишите это и проверьте правила udev, найденные в /etc/udev/rules.d/51-android-rules. ( Пробег будет немного отличаться в зависимости от дистрибутива Linux )

Если у вас нет этого файла, то рекомендуется создать его с помощью root, может быть несколько правил, которые необходимо добавить в зависимости от режима телефона, то есть нормальный режим, режим восстановления и загрузчик.

Вот мой пример, который имеет разные значения соответственно, когда трубка находится в одном из этих режимов. Возьмите это как шаблон и измените числа, как показано, которые соответствуют idVendor и idProduct соответственно, чтобы соответствовать вашей марке / модели телефона.

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"

Идентификатор пользователя добавляется в androiddevгруппу, которая была создана ранее , таким образом, мне совсем не обязательно sudo!

Чтобы создать группу, используя root

  1. groupadd androiddev, это создает группу, а затем добавить идентификатор пользователя Linux в этой группе ...
  2. usermod -a -G androiddev your_user_id; замените your_user_id на свой собственный идентификатор пользователя, используемый для входа в систему).

Затем в режиме быстрой загрузки бинарный файл fastboot должен работать (бонус! Без необходимости sudoни для одного!)

t0mm13b
источник