настроить устройство для разработки (???????????? нет разрешений) - PullRequest
269 голосов
/ 09 февраля 2012

Я использую телефон Samsung galaxy nexus ( Android 4.0 платформа).

Я занимаюсь разработкой приложения для Android на ОС Ubuntu linux.Я хотел бы запустить свое приложение непосредственно на мобильном устройстве Samsung, поэтому я выполнил следующие шаги установки:

  1. в моем проекте AndroidManifest.xml, добавил android:debuggable="true" к <application> element

  2. На устройстве в Настройки> Безопасность включено Неизвестные источники

  3. На устройстве в Настройки> Параметры разработчика включено Отладка USB

  4. На моем компьютере создан файл /etc/udev/rules.d/51-android.rules со следующимcontent:

    SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev" 
    
  5. На моем компьютере выполните команду chmod a+r /etc/udev/rules.d/51-android.rules

Затем на своем компьютере я открыл терминал и выполнилкоманда adb devices, которую я получил:

List of devices attached 
????????????    no permissions

Поскольку я не видел свое устройство, а только ???????????? no permissions, я запускаю следующие команды:

 adb kill-server
 adb start-server
 adb devices

Но я все ещеполучил:

List of devices attached 
????????????    no permissions

Почему?Чего мне не хватает?

Ответы [ 23 ]

2 голосов

Использование M0Rf30/android-udev-rules поддерживаемых сообществом GitHub udev-rules

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

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

2 голосов
/ 26 июля 2013
  1. Следуйте инструкциям на http://developer.android.com/guide/developing/device.html
  2. Замените идентификатор поставщика «0bb4» на «18d1» в /etc/udev/rules.d/51-android.rules.Или добавьте еще одну строку: SUBSYSTEM == "usb", SYSFS {idVendor} == "18d1", MODE = "0666"
  3. перезагрузите компьютер или просто перезапустите службу udev.
1 голос
/ 16 марта 2012

Когда вы перезапускаете udev, убиваете сервер adb и запускаете adb server, переходите на путь установки Android SDK и все делаете на sudo. затем запустите устройства adb, это решит проблему с правами доступа.

1 голос
/ 29 марта 2018

Вы НЕ должны запускать adb сервер от имени пользователя root, как предлагают другие ответы.Вместо этого, если вы используете Arch Linux, сделайте следующее:

  1. Установите пакет android-udev с Pacman
  2. Перезагрузите правила udev:

    # udevadm control --reload-rules
    
  3. Добавьте себя в группу adbusers, а затем выйдите из системы и войдите в систему:

    # usermod -aG adbusers $LOGNAME
    

Источник: https://wiki.archlinux.org/index.php/android#Configuring_adb

1 голос
/ 29 июля 2016

без отключения

Все предоставленные ответы предполагают, что вы можете отключить и снова подключить USB-кабель. В ситуациях, когда это невозможно (например, когда вы находитесь на расстоянии), вы можете сделать следующее, чтобы сделать то, что предложенные правила udev будут делать при повторном подключении:

lsusb

Найдите устройство, которое вам не безразлично, например ::10000

Bus 003 Device 005: ID 18d1:4ee4 Google Inc. Nexus

Запишите номер шины, на которой он включен, а затем выполните, например, для автобуса 003:

sudo chmod a+w /dev/bus/usb/003/*

Очевидно, что это может быть более допустимым, чем вы хотите (может быть, подключено больше устройств, чем только это), но вы поняли идею.

1 голос
/ 24 августа 2014

Мое устройство POSITIVO, а моя операционная система Ubuntu 14.04 LTS Итак, моя проблема была в имени переменной

Я создаю файл /etc/udev/rules.d/51-android.rules и помещаю SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"

Я отключил устройство и выполнил:

$ sudo udevadm control --reload-rules
$ sudo service udev restart

после этого я снова подключил устройство Android в режиме разработчика и

$ adb devices

List of devices attached 
1A883XB1K   device
0 голосов
/ 25 сентября 2013

В моем случае на Ubuntu 12.04 LTS мне пришлось сменить свой режим HTC Incredible usb с зарядки на Media, и затем устройство появилось под adb.Конечно, отладка уже была включена в обоих случаях.

0 голосов
/ 28 августа 2017

Если кто-то сталкивается со следующим сообщением об ошибке при использовании adb devices

no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]

Выполнить следующее

sudo -s 
adb kill-server
adb start-server

Это устранило проблему для меня на устройстве Android с индивидуальной сборкой

0 голосов
/ 23 ноября 2013

Я использовал su, и он начал работать. Когда я использую Jetbrains с обычным пользователем, я вижу эту проблему, но после перезапуска Jetbrains в режиме su я вижу свое устройство, ничего не делая.

Я использую Ubuntu 13.04 и Jetbrains 12.1.4

0 голосов
/ 03 мая 2018

Пожалуйста, НЕ следуйте решениям, предлагающим использовать sudo (sudo adb start-server)!Это запустить ADB как root (администратор), и он не должен работать так !!! Это обходной путь BAD !

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

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

...