Когда я пробую:
$ adb devices
я получаю результат:
List of devices attached
???????????? no permissions
в чем проблема?
испытанный машина Ubuntu 16.04 и это работали отлично. попробованный 7.1.1 устройства и это также работали отлично.
Попытайтесь перезапустить сервер Adb.
sudo adb kill-server
и затем
sudo adb start-server
затем соединяются, Ваше устройство включают Отладку и тип
adb devices
Имел ту же проблему. Обеспечение, что режим USB устройства НЕ зарядка только решили его.
Необходимо предоставить разрешение на устройстве на базе Android. Перейдите к опциям Settings> Developer. Попытайтесь выключить Отладку Usb и затем на снова. Удалите кабель и повторно подключите его. Также попытайтесь удалить все сохраненные полномочия из опций Developer. Это должно теперь попросить отладку разрешения подсказкой по Вашему телефону. Примите его.
Для расширения ответа Sumeet Deshmukh его подход действительно работает в целом - если Вы только хотите использовать эти adb
команда от консоли.
Studio Android, однако, по-видимому, запускает свой собственный adb сервер, уничтожая наш. Это означает, что после того, как мы уничтожили/запустили сервер с sudo, Studio перезапускает его, который приводит к стартовой ситуации - никакие полномочия.
решение состоит в том, чтобы сначала запустить Studio, затем выполнить запущение/останавливание сервера. Делая это, мне удалось заставить мою Nexus 5X обнаруживаться как допустимая цель выполнения в Studio.
Это не лучшая ситуация (имеющий необходимость к командам выполнения каждый раз, когда Вы запускаете Studio), но это добивается цели быстрым и грязным способом. Если я найду более постоянное решение, то я обновлю этот ответ.
Изменение Режима USB от Телефон добилось цели для меня. (Я установил его на Передача файлов .)
M0Rf30/android-udev-rules
сообщество GitHub поддержало udev-правила
https://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
, Это - самый полный список udev-правил, который я видел до сих пор, еще больше, чем в настоящее время рекомендуемый sudo apt-get install android-tools-adb
на официальной документации , дайте ему попытку.
Я понятия не имею, почему это работает, но это было единственным решением, которое работало на меня
, Находят, куда adb работает (если Вы похожи на меня, у Вас есть несколько установленных версий). Следует иметь в виду, что инструментам нравится, реагируют, собственный компонент может решить использовать случайные другие версии для создания жизни тяжелее. Для меня это ~/Android/Sdk/platform-tools/adb
. Таким образом, я буду работать:
sudo chown root:YOUR_USERNAME ~/Android/Sdk/platform-tools/adb
sudo chmod 4550 ~/Android/Sdk/platform-tools/adb
инструменты Android являются супер раздражающими.
Удостоверьтесь, что Вы имеете в распоряжении свои правила udev, проверяете /etc/udev/rules.d
, можно найти соответствующие правила здесь: https://raw.githubusercontent.com/M0Rf30/android-udev-rules/master/51-android.rules
Просто размещают их в /etc/udev/rules.d/
, затем:
sudo udevadm control --reload
sudo udevadm trigger
Теперь удостоверяются, что adb сервер не работает:
sudo adb kill-server
Добавляют Вашего пользователя к adbusers:
sudo usermod -a -G adbusers $USER
Теперь использование su $USER
( ссылка ) так, чтобы Ваш пользователь на самом деле принадлежал adbusers
(проверяют использование groups
)
И затем только запускают adb сервер снова:
adb start-server
В случае, если Ваше устройство не появляется в adb devices
, повторно подключите его.
Вероятный udev неправильно добавляет Ваше устройство. Я также имел эту проблему и столкнулся с относительно простым решением.
Найдите свое устройство в 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
Это, что означает, что файл устройств будет принадлежать пользовательскому корню и корню группы, который является, почему adb может получить доступ к нему как к корню, но не как Ваш типичный пользователь.
Это может быть решено путем создания нового правила 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 управляет для устройств на базе Android отладки USB - Janos Gyerik
Перейдите к Настройкам>> Обслуживание>> устройство хранения данных. Затем проверьте верхнее левое меню и нажмите на соединение с компьютером USB, затем изменяются на Устройство хранения данных (MTP).
НЕ следуйте за решениями, предлагающими использовать sudo
(sudo adb start-server
) ! Это выполнение adb как корень (администратор) и это, КАК предполагается, не работают как этот!!! Это - ПЛОХОЕ обходное решение!
Все работающее как корень может сделать что-либо в Вашей системе, если это создает, или измените файл, может изменить его разрешение, которое будет только использоваться корнем. Снова, не ДЕЛАЙТЕ!
Правильный поступок настраивается Ваша система, чтобы заставить ПОЛЬЗОВАТЕЛЯ иметь разрешение, проверить это руководство, которое я записал о том, как сделать это правильно.
Это не работало на меня после того, как я добавил меня к plugdev
группа и перезагруженный машина только для проверки изменения вступает в силу на всех моих сессиях оболочки. Я затем нашел, что существует нет 51-android.rules
файл в /etc/udev/rules.d
и должен был сделать следующее для решения проблемы:
# Here the vendor ID is of Google
$ echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0660", GROUP="plugdev"' | sudo tee —append /etc/udev/rules.d/51-android.rules
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo udevadm control --reload-rules
$ sudo service udev restart
Я также должен был отключить и повторно включить свое устройство на базе Android.
Мне пришлось ответить Пола:
https://askubuntu.com/a/954053/477018
Затем мне пришлось ответить NuttLoos:
https: / /askubuntu.com/a/963967/477018
ЗАТЕМ мне пришлось взять телефон и сменить USB-порт с концентратора на клавиатуру на компьютер: face-palm: (Это Nokia 2.3, которая не будет работать, но Samsung A10 и Galaxy Nexus будут работать от USB-порта Kayboard).