adb no permissions on Ubuntu 17.04

Это вызвано ошибкой регрессии в Startup Disk Creator, которая превратилась в создателя CD-ROM. С 16 апреля они записывали USB-накопитель как CD-ROM iso9660 вместо USB-накопителя. См. Мой ответ здесь для исправления.

Ошибка загрузки блока запуска автозапуска USB

25
задан 26 April 2017 в 19:29

111 ответов

Чтобы расширить ответ Sumeet Deshmukh, его подход действительно работает вообще - если вы хотите использовать команду adb с консоли.

Android Studio, однако, по-видимому, начинает собственный сервер adb, убивая наша. Это означает, что после того, как мы убили / запустили сервер с помощью sudo, Studio перезапустит его, что приведет к исходной ситуации - никаких разрешений.

Решение состоит в том, чтобы сначала запустить Studio, а затем выполнить запуск / останов сервер. Сделав это, мне удалось заставить Nexus 5X отображаться в качестве допустимой цели запуска в Studio.

Это не лучшая ситуация (необходимость запуска команд при каждом запуске Studio), но это трюк быстро и грязно. Если я найду более постоянное решение, я обновлю этот ответ.

2
ответ дан 31 July 2018 в 23:26

Сообщество GitHub поддерживает udev-rules

https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

Это самый полный список правил udev, который я видел до сих пор, даже больше, чем рекомендуемый в настоящий момент sudo apt-get install android-tools-adb в официальной документации , попробуйте.

0
ответ дан 2 August 2018 в 18:22

Пожалуйста, НЕ ИСПОЛЬЗУЙТЕ решения, предлагающие использовать sudo (sudo adb start-server)! Это запустить adb как root (administrator), и он НЕ должен работать так! Это обходное решение BAD!

Все, что работает от имени root, может делать что-либо в вашей системе, если оно создает или изменяет файл, может изменить его разрешение, которое будет использоваться только root. Опять же, DO NOT!

Правильная вещь - настроить вашу систему, чтобы ПОЛЬЗОВАТЕЛЬ имел разрешение, проверил это руководство , я написал о том, как это сделать правильно .

0
ответ дан 2 August 2018 в 18:22

Вам необходимо предоставить разрешение на Android-устройство. Перейдите в Настройки> Параметры разработчика. Попробуйте отключить отладку Usb и снова включить его. Удалите кабель и снова подключите его. Также попробуйте удалить все сохраненные авторизации из параметров разработчика. Теперь он должен запросить разрешение на отладку с помощью подсказки на вашем телефоне. Примите это.

2
ответ дан 2 August 2018 в 18:22

Перейдите в Настройки >> Обслуживание >> Хранение. Затем проверьте меню верхнего левого меню и щелкните по USB-соединению компьютера, затем переключитесь на медиа-устройство (MTP).

1
ответ дан 2 August 2018 в 18:22

Я не знаю, почему это работает, но это единственное решение, которое сработало для меня

. Найдите, где работает adb (если вы похожи на меня, у вас установлено несколько версий). Имейте в виду, что такие инструменты, как реакция native, могут решить использовать случайные другие версии, чтобы сделать вашу жизнь сложнее. Для меня это ~/Android/Sdk/platform-tools/adb. Итак, я запустил:

sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb

Android-инструменты очень раздражают.

0
ответ дан 2 August 2018 в 18:22

Была такая же проблема. Убедитесь, что режим USB устройства NOT только разрешил его.

23
ответ дан 2 August 2018 в 18:22

Скорее всего, udev неправильно добавляет ваше устройство. У меня тоже была эта проблема & amp; натолкнулось на относительно простое решение.

Найдите ваше устройство в lsusb

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink) 
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Точка интереса в этом случае:

Bus 001 Device 006: ID 18d1:4ee7 Google Inc.

Проверьте соответствующий файл устройства

$ ls -l /dev/bus/usb/001/006

Вероятно, вы увидите что-то вроде

crw-rw-r-- 1 root root 189, 5 Sep  8 21:47 /dev/bus/usb/001/006

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

Это можно решить, создав новое правило udev - я использовал /etc/udev/rules.d/51-android.rules - для добавления устройства в группу plugdev, которую adb уже предполагает, что вы являетесь членом (вы должны быть, проверьте с помощью id)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", 
GROUP="plugdev", SYMLINK+="android%n"

** Не забудьте заменить ATTR {idProduct} == "4ee7" на свой собственный идентификатор продукта, который вы обнаружили на первом шаге. ** (Если ваш поставщик не является Google Inc., также замените идентификатор поставщика с номером до двоеточия в lsusb).

Теперь просто отключите устройство от сети и подключите его обратно (udev должен автоматически отвечать на новый файл) и tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

Источник: Добавление правил udev для USB отладка устройств Android - Janos Gyerik

15
ответ дан 2 August 2018 в 18:22

Чтобы расширить ответ Sumeet Deshmukh, его подход действительно работает вообще - если вы хотите использовать команду adb с консоли.

Android Studio, однако, по-видимому, начинает собственный сервер adb, убивая наша. Это означает, что после того, как мы убили / запустили сервер с помощью sudo, Studio перезапустит его, что приведет к исходной ситуации - никаких разрешений.

Решение состоит в том, чтобы сначала запустить Studio, а затем выполнить запуск / останов сервер. Сделав это, мне удалось заставить Nexus 5X отображаться в качестве допустимой цели запуска в Studio.

Это не лучшая ситуация (необходимость запуска команд при каждом запуске Studio), но это трюк быстро и грязно. Если я найду более постоянное решение, я обновлю этот ответ.

2
ответ дан 2 August 2018 в 18:22

Сообщество GitHub поддерживает udev-rules

https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

Это самый полный список правил udev, который я видел до сих пор, даже больше, чем рекомендуемый в настоящий момент sudo apt-get install android-tools-adb в официальной документации , попробуйте.

0
ответ дан 3 August 2018 в 20:41

Пожалуйста, НЕ ИСПОЛЬЗУЙТЕ решения, предлагающие использовать sudo (sudo adb start-server)! Это запустить adb как root (administrator), и он НЕ должен работать так! Это обходное решение BAD!

Все, что работает от имени root, может делать что-либо в вашей системе, если оно создает или изменяет файл, может изменить его разрешение, которое будет использоваться только root. Опять же, DO NOT!

Правильная вещь - настроить вашу систему, чтобы ПОЛЬЗОВАТЕЛЬ имел разрешение, проверил это руководство , я написал о том, как это сделать правильно .

0
ответ дан 3 August 2018 в 20:41

Вам необходимо предоставить разрешение на Android-устройство. Перейдите в Настройки> Параметры разработчика. Попробуйте отключить отладку Usb и снова включить его. Удалите кабель и снова подключите его. Также попробуйте удалить все сохраненные авторизации из параметров разработчика. Теперь он должен запросить разрешение на отладку с помощью подсказки на вашем телефоне. Примите это.

2
ответ дан 3 August 2018 в 20:41

Перейдите в Настройки >> Обслуживание >> Хранение. Затем проверьте меню верхнего левого меню и щелкните по USB-соединению компьютера, затем переключитесь на медиа-устройство (MTP).

1
ответ дан 3 August 2018 в 20:41

Я не знаю, почему это работает, но это единственное решение, которое сработало для меня

. Найдите, где работает adb (если вы похожи на меня, у вас установлено несколько версий). Имейте в виду, что такие инструменты, как реакция native, могут решить использовать случайные другие версии, чтобы сделать вашу жизнь сложнее. Для меня это ~/Android/Sdk/platform-tools/adb. Итак, я запустил:

sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb

Android-инструменты очень раздражают.

0
ответ дан 3 August 2018 в 20:41

Была такая же проблема. Убедитесь, что режим USB устройства NOT только разрешил его.

23
ответ дан 3 August 2018 в 20:41

Скорее всего, udev неправильно добавляет ваше устройство. У меня тоже была эта проблема & amp; натолкнулось на относительно простое решение.

Найдите ваше устройство в lsusb

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink) 
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Точка интереса в этом случае:

Bus 001 Device 006: ID 18d1:4ee7 Google Inc.

Проверьте соответствующий файл устройства

$ ls -l /dev/bus/usb/001/006

Вероятно, вы увидите что-то вроде

crw-rw-r-- 1 root root 189, 5 Sep  8 21:47 /dev/bus/usb/001/006

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

Это можно решить, создав новое правило udev - я использовал /etc/udev/rules.d/51-android.rules - для добавления устройства в группу plugdev, которую adb уже предполагает, что вы являетесь членом (вы должны быть, проверьте с помощью id)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", 
GROUP="plugdev", SYMLINK+="android%n"

** Не забудьте заменить ATTR {idProduct} == "4ee7" на свой собственный идентификатор продукта, который вы обнаружили на первом шаге. ** (Если ваш поставщик не является Google Inc., также замените идентификатор поставщика с номером до двоеточия в lsusb).

Теперь просто отключите устройство от сети и подключите его обратно (udev должен автоматически отвечать на новый файл) и tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

Источник: Добавление правил udev для USB отладка устройств Android - Janos Gyerik

15
ответ дан 3 August 2018 в 20:41

Чтобы расширить ответ Sumeet Deshmukh, его подход действительно работает вообще - если вы хотите использовать команду adb с консоли.

Android Studio, однако, по-видимому, начинает собственный сервер adb, убивая наша. Это означает, что после того, как мы убили / запустили сервер с помощью sudo, Studio перезапустит его, что приведет к исходной ситуации - никаких разрешений.

Решение состоит в том, чтобы сначала запустить Studio, а затем выполнить запуск / останов сервер. Сделав это, мне удалось заставить Nexus 5X отображаться в качестве допустимой цели запуска в Studio.

Это не лучшая ситуация (необходимость запуска команд при каждом запуске Studio), но это трюк быстро и грязно. Если я найду более постоянное решение, я обновлю этот ответ.

2
ответ дан 3 August 2018 в 20:41

Сообщество GitHub поддерживает udev-rules

https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

Это самый полный список правил udev, который я видел до сих пор, даже больше, чем рекомендуемый в настоящий момент sudo apt-get install android-tools-adb в официальной документации , попробуйте.

0
ответ дан 5 August 2018 в 05:23

Пожалуйста, НЕ ИСПОЛЬЗУЙТЕ решения, предлагающие использовать sudo (sudo adb start-server)! Это запустить adb как root (administrator), и он НЕ должен работать так! Это обходное решение BAD!

Все, что работает от имени root, может делать что-либо в вашей системе, если оно создает или изменяет файл, может изменить его разрешение, которое будет использоваться только root. Опять же, DO NOT!

Правильная вещь - настроить вашу систему, чтобы ПОЛЬЗОВАТЕЛЬ имел разрешение, проверил это руководство , я написал о том, как это сделать правильно .

0
ответ дан 5 August 2018 в 05:23

Вам необходимо предоставить разрешение на Android-устройство. Перейдите в Настройки> Параметры разработчика. Попробуйте отключить отладку Usb и снова включить его. Удалите кабель и снова подключите его. Также попробуйте удалить все сохраненные авторизации из параметров разработчика. Теперь он должен запросить разрешение на отладку с помощью подсказки на вашем телефоне. Примите это.

2
ответ дан 5 August 2018 в 05:23

Перейдите в Настройки >> Обслуживание >> Хранение. Затем проверьте меню верхнего левого меню и щелкните по USB-соединению компьютера, затем переключитесь на медиа-устройство (MTP).

1
ответ дан 5 August 2018 в 05:23

Я не знаю, почему это работает, но это единственное решение, которое сработало для меня

. Найдите, где работает adb (если вы похожи на меня, у вас установлено несколько версий). Имейте в виду, что такие инструменты, как реакция native, могут решить использовать случайные другие версии, чтобы сделать вашу жизнь сложнее. Для меня это ~/Android/Sdk/platform-tools/adb. Итак, я запустил:

sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb

Android-инструменты очень раздражают.

0
ответ дан 5 August 2018 в 05:23

Была такая же проблема. Убедитесь, что режим USB устройства NOT только разрешил его.

23
ответ дан 5 August 2018 в 05:23

Скорее всего, udev неправильно добавляет ваше устройство. У меня тоже была эта проблема & amp; натолкнулось на относительно простое решение.

Найдите ваше устройство в lsusb

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0a2b Intel Corp. 
Bus 001 Device 002: ID 05c8:03a2 Cheng Uei Precision Industry Co., Ltd (Foxlink) 
Bus 001 Device 006: ID 18d1:4ee7 Google Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Точка интереса в этом случае:

Bus 001 Device 006: ID 18d1:4ee7 Google Inc.

Проверьте соответствующий файл устройства

$ ls -l /dev/bus/usb/001/006

Вероятно, вы увидите что-то вроде

crw-rw-r-- 1 root root 189, 5 Sep  8 21:47 /dev/bus/usb/001/006

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

Это можно решить, создав новое правило udev - я использовал /etc/udev/rules.d/51-android.rules - для добавления устройства в группу plugdev, которую adb уже предполагает, что вы являетесь членом (вы должны быть, проверьте с помощью id)

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0660", 
GROUP="plugdev", SYMLINK+="android%n"

** Не забудьте заменить ATTR {idProduct} == "4ee7" на свой собственный идентификатор продукта, который вы обнаружили на первом шаге. ** (Если ваш поставщик не является Google Inc., также замените идентификатор поставщика с номером до двоеточия в lsusb).

Теперь просто отключите устройство от сети и подключите его обратно (udev должен автоматически отвечать на новый файл) и tadaa:

$ adb devices
List of devices attached 
YC873P0G    device

Источник: Добавление правил udev для USB отладка устройств Android - Janos Gyerik

15
ответ дан 5 August 2018 в 05:23

Чтобы расширить ответ Sumeet Deshmukh, его подход действительно работает вообще - если вы хотите использовать команду adb с консоли.

Android Studio, однако, по-видимому, начинает собственный сервер adb, убивая наша. Это означает, что после того, как мы убили / запустили сервер с помощью sudo, Studio перезапустит его, что приведет к исходной ситуации - никаких разрешений.

Решение состоит в том, чтобы сначала запустить Studio, а затем выполнить запуск / останов сервер. Сделав это, мне удалось заставить Nexus 5X отображаться в качестве допустимой цели запуска в Studio.

Это не лучшая ситуация (необходимость запуска команд при каждом запуске Studio), но это трюк быстро и грязно. Если я найду более постоянное решение, я обновлю этот ответ.

2
ответ дан 5 August 2018 в 05:23

Сообщество GitHub поддерживает udev-rules

https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules

Это самый полный список правил udev, который я видел до сих пор, даже больше, чем рекомендуемый в настоящий момент sudo apt-get install android-tools-adb в официальной документации , попробуйте.

0
ответ дан 6 August 2018 в 22:29

Пожалуйста, НЕ ИСПОЛЬЗУЙТЕ решения, предлагающие использовать sudo (sudo adb start-server)! Это запустить adb как root (administrator), и он НЕ должен работать так! Это обходное решение BAD!

Все, что работает от имени root, может делать что-либо в вашей системе, если оно создает или изменяет файл, может изменить его разрешение, которое будет использоваться только root. Опять же, DO NOT!

Правильная вещь - настроить вашу систему, чтобы ПОЛЬЗОВАТЕЛЬ имел разрешение, проверил это руководство , я написал о том, как это сделать правильно .

0
ответ дан 6 August 2018 в 22:29

Вам необходимо предоставить разрешение на Android-устройство. Перейдите в Настройки> Параметры разработчика. Попробуйте отключить отладку Usb и снова включить его. Удалите кабель и снова подключите его. Также попробуйте удалить все сохраненные авторизации из параметров разработчика. Теперь он должен запросить разрешение на отладку с помощью подсказки на вашем телефоне. Примите это.

2
ответ дан 6 August 2018 в 22:29

Перейдите в Настройки >> Обслуживание >> Хранение. Затем проверьте меню верхнего левого меню и щелкните по USB-соединению компьютера, затем переключитесь на медиа-устройство (MTP).

1
ответ дан 6 August 2018 в 22:29

Я не знаю, почему это работает, но это единственное решение, которое сработало для меня

. Найдите, где работает adb (если вы похожи на меня, у вас установлено несколько версий). Имейте в виду, что такие инструменты, как реакция native, могут решить использовать случайные другие версии, чтобы сделать вашу жизнь сложнее. Для меня это ~/Android/Sdk/platform-tools/adb. Итак, я запустил:

sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb

Android-инструменты очень раздражают.

0
ответ дан 6 August 2018 в 22:29

Другие вопросы по тегам:

Похожие вопросы: