- Вопрос или проблема
- Мое решение
- 51-android.rules
- Перезагрузка и триггер udev
- Fastboot
- Ответ или решение
- Решение проблемы: "no permissions" в Fastboot и ADB
- 1. Установка необходимых инструментов
- 2. Проверка наличия утилит
- 3. Убедитесь, что ваш пользователь имеет необходимые права
- 4. Проверка функционирования
- 5. Дополнительные советы
- Заключение
Вопрос или проблема
Я пытаюсь разблокировать свой телефон Moto с помощью ADB, но когда я выполняю fastboot devices
, я продолжаю получать
нет разрешений fastboot
Даже sudo fastboot
devices не помогает
с sudo я получаю это sudo: fastboot: команда не найдена
ПОМОГИТЕ!!
Попробуйте использовать sudo $(which fastboot)
например sudo $(which fastboot) devices
также sudo $(which fastboot) oem unlock
Нашел лучшее решение здесь:
https://stackoverflow.com/a/28127944/1621927
Вот комментарий:
Вместо того, чтобы заставлять разрешения через sudo
каждый раз, когда вам нужно запустить fastboot
, вы можете постоянно решить проблему:
- используйте
lsusb
для определения VendorID USB вашего устройства - настройте
udev
для установки правильных разрешений, когда ваше устройство подключено - прибыль!
В качестве бонуса – это также будет исправлено для adb
.
Например, в моем случае (для ‘Megafon SP-A20i’) :
$ fastboot devices
нет разрешений fastboot
$ sudo fastboot devices
[sudo] пароль для kaa:
MedfieldA9055F28 fastboot
$
Давайте исправим:
Во-первых, нам нужно определить устройство:
a) искать номер USB-шины (хак: я знаю, что устройство на базе Intel)
$ fastboot -l devices
нет разрешений fastboot usb:1-1.2
$ lsusb |grep 001 |grep -i intel
Bus 001 Device 044: ID 8087:09ef Intel Corp.
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$
b) искать другие устройства Intel:
$ lsusb |grep 8087
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 044: ID 8087:09ef Intel Corp.
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
$
Хабы определенно не являются смартфонами, поэтому – нужный нам VendorID USB это “8087”.
Во-вторых, настройте udev
(вы должны заменить значение “idVendor” на ваше) :
$ sudo sh -c "echo '# Megafon SP-A20i' >> /etc/udev/rules.d/51-android.rules"
$ sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\", MODE=\"0666\", GROUP=\"plugdev\"' >> /etc/udev/rules.d/51-android.rules"
$ sudo service udev restart
udev остановлен/ожидание
udev запущен/работает, процесс 1821
$
В-третьих, переподключите ваше устройство, чтобы позволить udev
выполнить свою магию.
Финальная проверка:
$ fastboot -l devices
MedfieldA9055F28 fastboot usb:1-1.2
$ adb devices
Список подключенных устройств
$ fastboot reboot
перезагрузка...
завершено. общее время: 0.253s
$ sleep 90
$ adb devices
Список подключенных устройств
MedfieldA9055F28 устройство
$
Вот и всё!
Мое решение
Благодаря elichai2 и этой ссылке и списку я смог решить свою проблему с разрешениями fastboot.
У меня Google Nexus 6P, так что я использовал следующее для своего Vendor ID:
Google – 18d1
51-android.rules
Если вы используете следующую команду:
sudo sh -c "echo 'SUBSYSTEM==\"usb\", ATTR{idVendor}==\"8087\" ..."
скопируйте ее точно. Я уже был root и пытался скопировать только часть echo, что дало мне нежелательные результаты. В общем, это поместило \” в файл .rules, вместо того, чтобы интерпретировать слэш как символ экранирования.
Я предлагаю использовать следующее, если вы уже root, чтобы создать файл .rules (используйте ваш vendor ID).
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/51-android.rules
Перезагрузка и триггер udev
Я перезагрузил правила udev и затем вызвал команду триггера. Я также отключил и снова подключил USB для надежности.
udevadm control --reload
udevadm trigger
Fastboot
Как непользователь, я затем выполнил:
fastboot devices
и это сработало, как и ожидалось. Надеюсь, это будет полезно или поможет кому-то, кто сталкивается с проблемой разрешений.
Когда мне нужно отправить некоторые команды с помощью fastboot (например, прошивка прошивки на устройстве HTC)
я устанавливаю fastboot с помощью apt
sudo apt install android-tools-fastboot
затем, когда я начинаю использовать его, первой командой является
sudo -s
тогда все команды в этом терминале будут выполняться от имени root,
отправляя команды такие как
fastboot devices
fastboot reboot-bootloader
fastboot oem rebootRUU
fastboot flash zip xxxx.zip
нет необходимости в исправлениях или чем-то подобном, это просто одна дополнительная команда перед началом
Или вы можете добавить все правила udev:
Полный набор правил USB vendor ID для Android для Linux
https://gist.github.com/jdamcd/6054951#file-51-android-rules
Это проблема с отсутствующими правилами udev, которые определены в /lib/udev/rules.d/51-android.rules
. Вместо того, чтобы создавать правила udev вручную (как предлагает Брендон Отье), лучше установить пакет android-sdk-platform-tools-common
который его содержит.
apt install android-sdk-platform-tools-common
`$ fastboot devices
нет разрешений (пользователь в группе plugdev; ваши правила udev неверны?); см. [http://developer.android.com/tools/device.html] fastboot`
`Решение:
$lsusb
Bus 003 Device 040: ID 18d1:d00d Google Inc. Android`
sudo sh -c “echo ‘SUBSYSTEM==”usb”, ATTR{idVendor}==”18d1″, MODE=”0666″, GROUP=”plugdev”‘ >> /etc/udev/rules.d/51-android.rules”
sudo service udev restart
Переподключите ваше устройство, чтобы позволить udev выполнить свою магию.
моё решение заключалось в использовании подходящего USB-кабеля.
У меня было 2 кабеля, которые вызывали проблему “нет разрешений”, но с третьим (хорошим) кабелем всё заработало.
Сначала установите fastboot из apt:
sudo apt install android-tools-fastboot
Затем выполните fastboot с sudo:
sudo fastboot
Это работает для меня.
Ответ или решение
Решение проблемы: "no permissions" в Fastboot и ADB
Вы столкнулись с проблемой, когда команда fastboot devices
возвращает ошибку "no permissions", а использование sudo fastboot
завершилось сообщением "command not found". Давайте рассмотрим, как можно исправить эту проблему шаг за шагом.
1. Установка необходимых инструментов
Первым делом, убедитесь, что вы установили все необходимые утилиты. Для работы с ADB и Fastboot в большинстве дистрибутивов Linux, достаточно выполнить следующую команду:
sudo apt install android-tools-fastboot
2. Проверка наличия утилит
Чтобы проверить, установлены ли fastboot
и adb
, выполните следующие команды:
which fastboot
which adb
Если команды возвращают путь, значит утилиты установлены правильно. Если же вы видите "command not found", это может означать, что утилиты не установлены или установлен неправильный пакет.
3. Убедитесь, что ваш пользователь имеет необходимые права
Если у вас установлен fastboot
, но он не работает без sudo
, это может быть связано с правами доступа. Один из простых способов решения проблемы – это настройка правил udev
.
Для этого выполните следующие шаги:
Шаг 3.1: Получение идентификатора USB устройства
Подключите ваше устройство к компьютеру и выполните команду:
lsusb
Ищите строку, соответствующую вашему устройству, и запомните его Vendor ID
(например, 18d1
для устройства Google).
Шаг 3.2: Настройка правил udev
Теперь создадим файл правил udev
для вашего устройства. Замените your_vendor_id
на ваш фактический идентификатор:
sudo sh -c 'echo "SUBSYSTEM==\"usb\", ATTR{idVendor}==\"your_vendor_id\", MODE=\"0666\", GROUP=\"plugdev\"" >> /etc/udev/rules.d/51-android.rules'
Для примера, если ваш Vendor ID
равен 18d1
, команда будет выглядеть так:
sudo sh -c 'echo "SUBSYSTEM==\"usb\", ATTR{idVendor}==\"18d1\", MODE=\"0666\", GROUP=\"plugdev\"" >> /etc/udev/rules.d/51-android.rules'
Шаг 3.3: Перезапуск udev
После создания правил перезапустите службу udev
:
sudo service udev restart
Шаг 3.4: Переподключите устройство
Теперь отсоедините и снова подключите ваше устройство. Это позволит udev
применить новые правила.
4. Проверка функционирования
Теперь вы можете проверить работу команды fastboot
без использования sudo
:
fastboot devices
Если все сделано правильно, вы должны увидеть список подключенных устройств без ошибок.
5. Дополнительные советы
- Убедитесь, что используете качественный USB-кабель. Иногда плохой кабель может быть причиной проблемы с подключением.
- Также проверьте, находится ли ваш пользователь в группе
plugdev
:
groups
Если группы нет, добавьте пользователя в неё:
sudo usermod -aG plugdev $USER
Заключение
Следуя вышеизложенным шагам, вы сможете устранить проблему "no permissions" в Fastboot. Эта инструкция не только поможет вам разблокировать ваше устройство, но и обеспечит стабильную работу ADB. Надеемся, что эта информация была полезной для вас.