настроить устройство для разработки (?????????????????????????????????????????????????????????????????????????????????????????????)

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

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

  1. в моем проекте AndroidManifest.xml файл добавлен android:debuggable="true" к элементу <application>

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

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

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

    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

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


person Leem.fin    schedule 09.02.2012    source источник
comment
после запуска adb kill-server вы получили сообщение, что * демон не запущен. запускать его сейчас на порту 5037 * * демон успешно запущен * --- если не попробуй, пока не получишь это сообщение   -  person Andro Selva    schedule 09.02.2012
comment
Попробуйте проверить, что ваш пользователь находится в plugdev группе.   -  person Sergey Glotov    schedule 09.02.2012
comment
Run = ›sudo adb start-server (используйте root-доступ для запуска adb)   -  person Confused    schedule 23.01.2016
comment
наконец, я нашел решение, которое сработало для меня по этой ссылке github.com/snowdream/51-android   -  person Abdulrahman Gamal    schedule 14.09.2019


Ответы (27)


Что у меня работает, так это убить и снова запустить сервер adb. В Linux: sudo adb kill-server, а затем sudo adb start-server. Тогда он обнаружит практически все устройства из коробки.

person WarrenFaith    schedule 09.02.2012
comment
Я использую root для выполнения команды adb devices под ‹android-SDK› / platform-tool /, у меня не найдена команда adb, почему? - person Leem.fin; 09.02.2012
comment
не могли бы вы вставить точную команду, которую используете? Я использую sudo /opt/android/platform-tools/adb devices - person WarrenFaith; 09.02.2012
comment
Я использую ту же команду синтаксиса. sudo / PATH_TO_ANDROID_SDK / platform-tolls / adb devices Не помогает - person Leem.fin; 09.02.2012
comment
убедитесь, что на вашем adb попал + x -rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb. Попробуйте перейти в каталог напрямую и запустить через устройства sudo ./adb. Если вы можете запустить это без sudo, вы сможете запустить его с sudo ... Я не уверен, в чем может быть ваша проблема ... - person WarrenFaith; 10.02.2012
comment
Вам не нужно запускать adb от имени пользователя root, если ваши разрешения udev установлены правильно. См. Ответ на grebulons ниже или ссылку на документацию по Android: developer.android.com/tools/device.html - person gnac; 06.01.2013
comment
Возможно, но зачем вести список, если можно просто использовать root? Я не заинтересован в добавлении в него правила только потому, что тестирую на другом устройстве. Если вы просто используете его, нет проблем, но с ноутбуком, который работает на конференциях, или с огромным количеством устройств на работе? Нет, спасибо. - person WarrenFaith; 07.01.2013
comment
Одним из важных предложений является отключение USB-кабеля, поэтому вы перезагружаете adb, подключаете кабель, и он работает. В моей ситуации, пока я выполнял процедуру с подключенным кабелем, у меня не работает. - person androidevil; 17.11.2013
comment
И команды: adb kill-server sudo adb start-server для проверки: adb devices - person Asim; 31.12.2014

У меня ничего не работало, пока я наконец не нашел здесь ответ: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html

Я копирую текст сюда на случай, если он исчезнет в будущем.

Создайте файл с именем /tmp/android.rules со следующим содержимым (шестнадцатеричные номера поставщиков были взяты со страницы списка поставщиков):

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e79", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="091e", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="24e3", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2116", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0482", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="17ef", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0409", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2257", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="10a9", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1d4d", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0471", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04da", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1f53", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04dd", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0930", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="19d2", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666"

Выполните следующие команды:

sudo cp /tmp/android.rules /etc/udev/rules.d/51-android.rules
sudo chmod 644   /etc/udev/rules.d/51-android.rules
sudo chown root. /etc/udev/rules.d/51-android.rules
sudo service udev restart
sudo killall adb

Отсоедините USB-кабель от телефона и компьютера.

Переподключите телефон.

Запустите adb devices, чтобы подтвердить, что теперь у него есть разрешение на доступ к телефону.

Обратите внимание, что в файле .rules можно использовать , USER="$LOGINNAME" вместо , MODE="0666", подставив $LOGINNAME вместо вашего имени для входа, то есть того, что печатает id -nu.

В некоторых случаях может потребоваться присвоить файлу правил udev имя, которое сортируется ближе к концу, например z51-android.rules.

person grebulon    schedule 30.09.2012
comment
Примечание: для Ubuntu Precise имя файла 70-android.rules согласно этому сообщению: esausilva.com/2010/05/13/. Также спасибо за то, что вы сообщили нам, что вам нужно перезапустить udev и убить все процессы adb. Работал как шарм! - person Eduard Luca; 04.01.2013
comment
Аналогичный подход официально задокументирован на странице developer.android.com/tools/device.html. - person bjunix; 01.11.2013
comment
Привет! Вот короткая оболочка сценария (протестированная на Linux Mint), которая выполняет ранее описанную работу: Оболочка сценария для сброса adb - person l.cotonea; 11.02.2014
comment
Это сработало, спасибо, в нем есть все типы устройств, возможно, людям не удается установить правильный idVendor, для этого вы можете поставить lsusb, чтобы увидеть, какие числа есть, но этот почти исчерпывающий список отлично подходит для большинства людей - person sandino; 07.10.2014
comment
Это сработало хорошо, но, как отметил @luciana в другом ответе, вам может потребоваться вызвать sudo udevadm control --reload-rules, чтобы обновить правила udev, если перезапуска сервера недостаточно. - person serjlee; 17.11.2014
comment
Вам нужно будет добавить:, GROUP = plugdev устройство, успешно обнаруженное в ubuntu 14.04. - person Superbiji; 08.12.2014
comment
Вы можете использовать ATTR вместо ATTRS. - person wieczorek1990; 12.12.2014
comment
Для Alcatel добавьте: SUBSYSTEM=="usb", ATTRS{idVendor}=="1bbb", MODE="0666" - person Honza; 26.03.2015
comment
В вашем списке указано ATTRS {idVendor}, но developer.android.com/tools/device.html говорит ATTR {idVendor} (без буквы "S"). Который правильный? (Я тоже не успел поработать). - person Tobias; 14.10.2015
comment
Это должно быть отмечено как правильный ответ, так как sudo-ing adb не является обязательным требованием для Linux. - person Zac; 15.01.2017
comment
Это единственно правильный ответ. Спасибо за это! Кроме того, мы можем увидеть вывод lsusb, чтобы убедиться, что нужный поставщик включен. Самое странное, что только одно из моих устройств (OnePlus One) внезапно перестало работать после обновления до Android 7.1.2 (даже при запуске adb от имени root), после добавления правил udev, как описано выше, оно снова работает. - person user1209216; 18.04.2017
comment
Вам необходимо создать файл и скопировать его в указанное место. - person grebulon; 15.05.2017
comment
вместо ведения списка - просто используйте правило одной строки для каждого телефона Android - stackoverflow.com/a/45006231/1778421 - person Alex P.; 10.07.2017

Введите следующие команды:

# cd to adb for sudo
cd `which adb | sed -e "s/adb//"`
adb kill-server
sudo ./adb start-server
adb devices

This happens when you are not running adb server as root.  
person iancrowther    schedule 13.08.2012
comment
хотя идея такая же, как и в принятом ответе, этот только помог мне из-за предоставленного примера. Спасибо - person Dmitry Koroliov; 12.06.2014
comment
@ user907860 это на самом деле лучше, чем принятый ответ, потому что он объясняет, почему вы должны писать sudo :) (чего я не сделал, когда увидел принятый ответ) - person stan0; 22.04.2015
comment
Кстати, есть идеи, почему adb должен работать как root? - person stan0; 22.04.2015
comment
извини нет я не помню - person iancrowther; 27.04.2015
comment
adb НЕ должен запускаться от имени пользователя root. Если это необходимо, ваша система неправильно сконфигурирована. Прекратите бросать sudo впереди всего, это имеет огромное значение для безопасности. - person hackel; 02.09.2015

Пробовал все вышеперечисленное, ничего не работало .. наконец-то сработало, когда я переключаю подключенный с MTP на камеру (PTP).

person Sabeer Mohammed    schedule 01.04.2015
comment
Для тех, кто задается вопросом, как это сделать ... Системные настройки ›Хранилище› Правая верхняя кнопка: USB-подключение к компьютеру ›Подключить как Выбрать камеру (PTP) вместо мультимедийного устройства (MTP) - person Thaddeus Albers; 20.06.2015
comment
человек, я искал решение как два часа, это работает для меня на ubuntu 16.04, спасибо - person Jorius; 22.11.2016
comment
это должно быть первое, что нужно проверить. Работает для меня - person m50; 21.05.2020

На этот вопрос опубликовано много плохих ответов, начиная от настаивания на запуске adb как root (что не следует рекламировать как единственное или даже рекомендуемое решение) до решения совершенно не связанных проблем.

Вот самый короткий и универсальный рецепт разрешения для всех _ 3_ и _ 4_ устройств сразу:

echo 'ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:ff420?:*", MODE="0666"' | sudo tee /etc/udev/rules.d/99-android.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --verbose --action=add --subsystem-match=usb

Или вы можете использовать немного более длинную версию, которую я разместил в этой gist.

Что касается конкретной вещи, которую OP сделал неправильно в своем вопросе - это не перезагрузка правил udev после редактирования файла .rules.

Также OP не сказал, какая сборка Android (также известная как ROM) у него на телефоне. Значение idVendor устанавливается программно и, следовательно, зависит от ПЗУ. Таким образом, значение 04E8, которое он использовал в своем первоначальном правиле, сработало бы только для устройств со стандартными ПЗУ Samsung. Но это не проблема для этого udev правила - оно соответствует всем устройствам с adb или fastboot интерфейсами независимо от их VendorID.

person Alex P.    schedule 10.07.2017
comment
Единственный недостающий шаг, чтобы увидеть, как он работает, - это adb kill-server перед устройствами adb. - person mstrange; 02.11.2017
comment
Похоже, это больше не работает на Android 8.1. Как вы узнали, что adb сообщает как идентификатор устройства? - person Cachapa; 03.01.2018
comment
Работал у меня на Android 7.1.2 - person Amerzilla; 16.01.2018
comment
@Cachapa, работает со всеми версиями Android. Даже последняя версия (на момент написания этой статьи) Android P Preview 4 использует те же идентификаторы интерфейса adb - android.googlesource.com/platform/system/core / + / - person Alex P.; 19.07.2018
comment
по-прежнему работает с Android 11 android.googlesource.com/platform/system/core / + / - person Alex P.; 02.06.2020

В Archlinux это может случаться время от времени. Исправление:

$ sudo -s
# adb kill-server
# adb start-server
person Keenan Verbrugge    schedule 24.09.2014
comment
Я не уверен, что это единственное, что заставляет его работать ... Я пробовал то, что описано выше. Но без этой публикации ubuntu на VBox не разрешил мой LG G3. Спасибо Кинан - person lastboy; 17.11.2015
comment
Не знаю почему, но sudo adb kill-server; sudo adb start-server не сработало, а вот этот сработал. - person Hritik; 21.11.2017

Для тех, кто использует debian, руководство по настройке устройства под Ubuntu для создания файла "/etc/udev/rules.d/51-android.rules" не работает. Я выполнил инструкции здесь. Пишу то же самое здесь для справки.

Отредактируйте этот файл как суперпользователь

sudo nano /lib/udev/rules.d/91-permissions.rules

Найдите текст, похожий на этот

# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0664″

Затем измените режим на 0666, как показано ниже.

# usbfs-like devices 
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, \ MODE=”0666″

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

sudo nano /lib/udev/rules.d/99-android.rules

и введите

SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”0bb4″, MODE=”0666″

Вышеупомянутая строка предназначена для HTC, полный список можно найти в публикации @ grebulon.

Сохраните файл и перезапустите udev как суперпользователь.

sudo /etc/init.d/udev restart

Подключите телефон через USB, и он должен быть обнаружен при компиляции и запуске проекта.

person jaga    schedule 19.08.2013

У меня была такая же проблема, решение такое же, как у товарища: (кстати, вам не нужно рутировать свое устройство.)

  1. Введите «su», чтобы переключиться на суперпользователя.
  2. ваш-путь / adb kill-server.
  3. ваш-путь / adb start-server.
  4. Если ошибки не возникает, вы можете увидеть список устройств с «your-path / adb devices» в учетной записи root.
  5. Выйти из суперпользователя.
  6. Теперь вы можете выполнить "adb devices" в своем аккаунте.

Наслаждаться.

person Jeffrey Yang    schedule 12.02.2013
comment
Если вам не удается войти в систему с помощью su, используйте sudo su. Я сделал. А также, если вы не знаете, как выйти из пользователя - используйте exit. - person Pijusn; 14.02.2013

Я знаю, что это может быть немного поздно, но вот очень хорошая статья о том, как вручную добавить Android ADB USB Driver. Добавление USB-драйвера Android ADB вручную в Ubuntu 14.04 LTS

Отредактировано для добавления содержания ссылки

Шаги

Примечание. Убедитесь, что ваше устройство Android подключено в режиме отладки по USB.

Откройте терминал (CTRL + ALT + T) и введите команду: lsusb

Теперь вы можете получить аналогичный ответ на это:
Bus 002 Device 013: ID 283b:1024

Примечание. В связи с этим Bus 002 Device 008: ID 283b:1024
{idVendor}==”283b” {idProduct}==”1024″

Теперь введите следующую команду: sudo gedit /etc/udev/rules.d/51-android.rules
Это создаст файл правил Android (51-android.rules) или откроет существующий в указанном месте (/etc/udev/rules.d)

Добавьте в этот файл новую строку:
SUBSYSTEM==”usb”, ATTRS{idVendor}==”283b”, ATTRS{idProduct}==”1024″, MODE=”0666″

Примечание. Измените значения idVendor и idProduct, используя значения вашего устройства. Сохрани и закрой.

Теперь введите следующую команду:
sudo chmod a+rx /etc/udev/rules.d/51-android.rules - предоставить разрешение на чтение / выполнение
sudo service udev restart - перезапустить службу udev

Теперь нам нужно добавить idVendor к adb_usb.ini. Введите следующие команды:
cd ~/.android
gedit adb_usb.ini

Добавьте следующее значение 0x283b

Это не что иное, как 0x (значение idVendor). Поэтому замените значение на. в соответствии со значением вашего устройства. Сохраните и закройте файл.

Теперь введите следующую команду:
sudo service udev restart

Отключите устройство Android и снова подключите его.
Теперь введите следующую команду:
adb kill-server
adb devices

Вот так! Ваше устройство должно быть в списке.

Скопировано из Ручное добавление USB-драйвера Android ADB в Ubuntu 14.04 LTS

Работал у меня.

person cinfwatd    schedule 02.05.2015

У меня была такая же проблема с моим Galaxy S3. Моя проблема заключалась в том, что значение idVendor 04E8 было неправильным. Чтобы найти нужный, подключите смартфон к компьютеру и запустите lsusb в терминале. Он отобразит ваш смартфон следующим образом:

Bus 002 Device 010: ID 18d1:d002 Google Inc.

Итак, правильное значение idVendor равно 18d1. И строка в /etc/udev/rules.d/51-android.rules должна быть:

SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

Потом запускаю sudo udevadm control --reload-rules и все заработало!

person Ulli    schedule 17.07.2014
comment
Возможно, вы имели в виду: ATTR{idVendor}=="18d1" - person Tanasis; 27.07.2017

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

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

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

person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 21.10.2017
comment
зачем беспокоиться о ведении списка, когда одно правило работает для всех? stackoverflow.com/a/45006231/1778421 - person Alex P.; 22.10.2017
comment
@AlexP. спасибо, я не знал об этом методе. Любая идея, почему официальное руководство не рекомендует это вместо этого? - person Ciro Santilli 新疆再教育营六四事件ۍ 22.10.2017
comment
В основном из-за лени и инертности знаний. Первоначальные разработчики Android использовали устройства с одним и тем же идентификатором производителя, поэтому они выбрали самый простой подход, который они могли придумать. Когда все больше производителей создавали больше устройств, разработчики просто добавляли больше идентификаторов в файл правил. - person Alex P.; 19.07.2018

  1. Следуйте инструкциям на странице https://web.archive.org/web/20130810142221/http://developer.android.com/tools/device.html (ссылка в архиве)
  2. Замените идентификатор поставщика 0bb4 на 18d1 в /etc/udev/rules.d/51-android.rules

    Или добавьте еще одну строку:

    SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
    
  3. Перезагрузите компьютер или просто перезапустите службу udev.
person krishnendu    schedule 26.07.2013

Когда вы перезапускаете udev, завершите работу сервера adb и запустите сервер adb, перейдите по пути установки android sdk и выполните все действия с помощью sudo. затем запустите устройства adb, это решит проблему с разрешением.

person Chinthaka Senanayaka    schedule 16.03.2012

Мое устройство - 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
person luciana    schedule 24.08.2014

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

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

lsusb

Найдите интересующее вас устройство, например:

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

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

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

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

person Christian Fritz    schedule 29.07.2016
comment
чтобы применить новое правило udev без повторного подключения устройства, просто используйте команду udevadm trigger --verbose --action=add --subsystem-match=usb. - person Alex P.; 10.07.2017

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

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

    # udevadm control --reload-rules
    
  3. Add yourself to adbusers group and then logout and login:

    # usermod -aG adbusers $LOGNAME
    

Source: https://wiki.archlinux.org/index.php/android#Configuring_adb

person Babken Vardanyan    schedule 29.03.2018

Только для пользователей Ubuntu / Debian: есть некоторые особые действия, которые нужно сделать для ubuntu, чтобы заставить работать отладку USB: описано здесь: https://developer.android.com/studio/run/device Вот два упомянутых шага. Запустите эти две команды в терминале:

sudo usermod -aG plugdev $LOGNAME
sudo apt-get install android-sdk-platform-tools-common
person princebillyGK    schedule 19.09.2020

Попробуйте вместо GROUP="plugdev" использовать основную группу вашего пользователя.

person Yury    schedule 09.02.2012
comment
Я использую свое имя пользователя, это не помогает - person Leem.fin; 09.02.2012

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

person Alan    schedule 25.09.2013

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

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

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

person Daniele Segato    schedule 03.05.2018

У меня была такая же проблема, и я выполнил следующие действия:

# Clone this repository
git clone https://github.com/M0Rf30/android-udev-rules.git
cd android-udev-rules
# Copy rules file
sudo cp -v 51-android.rules /etc/udev/rules.d/51-android.rules
# OR create a sym-link to the rules file - choose this option if you'd like to update your udev rules using git.
sudo ln -sf "$PWD"/51-android.rules /etc/udev/rules.d/51-android.rules
# Change file permissions
sudo chmod a+r /etc/udev/rules.d/51-android.rules
# If adbusers group already exists remove old adbusers group
groupdel adbusers
# add the adbusers group if it's doesn't already exist
sudo mkdir -p /usr/lib/sysusers.d/ && sudo cp android-udev.conf /usr/lib/sysusers.d/
sudo systemd-sysusers # (1)
# OR on Fedora:
groupadd adbusers
# Add your user to the adbusers group
sudo usermod -a -G adbusers $(whoami)
# Restart UDEV
sudo udevadm control --reload-rules
sudo service udev restart
# OR on Fedora:
sudo systemctl restart systemd-udevd.service
# Restart the ADB server
adb kill-server
# Replug your Android device and verify that USB debugging is enabled in developer options
adb devices
# You should now see your device

Вышеупомянутые шаги описаны в android-udev-rules. У меня это сработало.

Просто не забудьте подтвердить диалоговое окно, которое появится на экране вашего телефона после его повторного подключения.

person leosbrf    schedule 09.03.2020

sudo usermod -aG plugdev $LOGNAME

Эта команда сработала для меня

person Fayaz    schedule 20.06.2020

Когда вы подключаете usb к компьютеру, он спрашивает вас, доверяете ли вы компьютеру отладку приложений на телефоне. Нажатие "да" решило проблему.

person Hemil    schedule 24.03.2021

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

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

person Deepti Kohli    schedule 23.11.2013

Вы также можете попробовать отредактировать файл adb_usb.ini, расположенный по адресу /home/username/.android/. Этот файл содержит список поставщиков идентификаторов устройств, которые вы хотите подключить. Вы просто добавляете поставщика идентификатора вашего устройства в новую строку (по одному идентификатору на строку). Затем перезапустите сервер adb и снова подключите устройство.

У меня это сработало на Ubuntu 12.10.

person 10101101    schedule 20.09.2014

Во всяком случае, что я сделал для решения этой проблемы (на Ubuntu).

  1. Определено, в каких случаях мне нужно запускать эти команды. Для большинства пользователей ubuntu есть домашняя папка (скрытый файл .bashrc).

    В котором вы можете записать запуск этих команд. Но эти команды будут запущены, когда вы введете команду bash в консоли.

  2. Поскольку у меня есть оболочка .zshrc, я сделал следующее:

    открытая консоль: gedit .zshrc

Когда файл откроется, добавьте следующую строку:

./.add_device_permissions.sh

После или раньше нам нужно создать этот файл: .add_device_permissions.sh, в котором мы напишем следующее:

#!/bin/bash
# Add permissions
ADB="/home/vadimm/Android/Sdk/platform-tools/adb"
$ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices
$ADB kill-server
cat .permissions_redmi_note | sudo -S $ADB devices

Также нам нужно создать .permissions_redmi_note, где нам нужно жестко закодировать наш пароль.

  1. Чтобы не добавлять .zshrc в файл лишнего, мы можем указать путь при запуске самой системы: Startup Applications Preferences

Где нажимаем на «Добавить» и пишем нашу команду: /home/vadimm/.add_device_permissions.sh

  1. Также вы можете попробовать использовать в командной строке следующие команды: ./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
person Morozov    schedule 08.11.2018

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

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

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

sudo -s 
adb kill-server
adb start-server

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

person Ismail Iqbal    schedule 28.08.2017