Я использую телефон Samsung Galaxy Nexus ( платформа Android 4.0 ).
Я занимаюсь разработкой приложения для Android на ОС Ubuntu Linux. Я хотел бы запустить свое приложение непосредственно на мобильном телефоне Samsung, поэтому я выполнил следующие шаги установки:
в моем
AndroidManifest.xml
файле проекта , добавленandroid:debuggable="true"
к<application>
элементуНа устройстве в Настройках> Безопасность включена Неизвестные источники
На устройстве в Настройках> Параметры разработчика включена отладка по USB
На моем компьютере создан
/etc/udev/rules.d/51-android.rules
файл со следующим содержимым:SUBSYSTEM=="usb", ATTR{idVendor}=="04E8", MODE="0666", GROUP="plugdev"
На моем компьютере запустите
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
Зачем? Чего мне не хватает?
plugdev
группе.Ответы:
Что работает для меня, это убить и запустить сервер ADB снова. На Linux:
sudo adb kill-server
и тогдаsudo adb start-server
. Затем он обнаружит практически каждое устройство из коробки.источник
-rwxrwxr-x 1 martin martin 156K 2011-11-09 15:40 adb
. Попробуйте перейти в каталог напрямую и начать с «sudo ./adb devices». Если вы можете запустить это без sudo, вы сможете запустить его с sudo ... Я не уверен, что ваша проблема может быть ...adb kill-server
sudo adb start-server
проверить:adb devices
У меня ничего не получалось, пока я наконец не нашел ответ здесь: http://ptspts.blogspot.co.il/2011/10/how-to-fix-adb-no-permissions-error-on.html
Я копирую текст здесь на случай, если он исчезнет в будущем.
Создайте файл с именем /tmp/android.rules со следующим содержимым (шестнадцатеричные номера поставщиков взяты со страницы списка поставщиков):
Запустите следующие команды:
Отсоедините USB-кабель между телефоном и компьютером.
Переподключите телефон.
Бегать
adb devices
чтобы подтвердить, что теперь у него есть разрешение на доступ к телефону.Пожалуйста , обратите внимание , что это можно использовать
, USER="$LOGINNAME"
вместо, MODE="0666"
в.rules
файле, подставляя$LOGINNAME
для имени пользователя, то есть то , чтоid -nu
печатает.В некоторых случаях может потребоваться дать файлу правил udev имя, близкое к концу, например
z51-android.rules
.источник
70-android.rules
соответствует этому сообщению: esausilva.com/2010/05/13/… . Также спасибо за сообщение о том, что вам нужно перезапуститьudev
и убить все процессы ADB. Работал как шарм!sudo udevadm control --reload-rules
чтобы обновить правила udev, если перезапуска сервера недостаточно.Введите следующие команды:
adb kill-server
sudo ./adb start-server
adb devices
Проблема в том, что вы не используете сервер ADB от имени пользователя root.
источник
Перепробовал все выше, ни один не работал .. наконец-то сработало, когда я переключаюсь как с MTP на Camera (PTP).
источник
На этот вопрос выложено много плохих ответов, от настойчивых требований (
adb
какroot
не единственное или даже рекомендуемое решение) до решения совершенно не связанных между собой проблем.Вот самый короткий и универсальный рецепт для заботы о разрешениях для всех
adb
иfastboot
устройств одновременно:Или вы можете использовать немного более длинную версию, которую я разместил в этой сути .
Что касается конкретной вещи, которую OP сделал неправильно в своем вопросе - это не перезагрузка
udev
правил после редактирования.rules
файла.Также ОП не сообщил, какая сборка Android (он же ROM) у него на телефоне.
idVendor
Значение устанавливается в программном обеспечении и , следовательно, зависит от ROM. Таким образом, значение, которое04E8
он использовал в своем первоначальном правиле, работало бы только для устройств со стандартными ПЗУ Samsung. Но это не проблема для этогоudev
правила - оно соответствует всем устройствамadb
илиfastboot
интерфейсам независимо от их VendorID .источник
В Archlinux это может происходить иногда. Исправление:
источник
sudo adb kill-server; sudo adb start-server
не сработало, но этот сработал.Для тех, кто использует debian, руководство по настройке устройства под Ubuntu для создания файла "/etc/udev/rules.d/51-android.rules" не работает. Я следовал инструкциям отсюда . Выкладывать то же самое здесь для справки.
Изменить этот файл как суперпользователь
Найти текст, похожий на этот
Затем измените режим на 0666, как показано ниже
Это позволяет adb работать, однако нам все еще нужно настроить устройство, чтобы его можно было распознать. Нам нужно создать этот файл как суперпользователь,
и введите
вышеприведенная строка для HTC, следуйте сообщению @ grebulon для получения полного списка.
Сохраните файл, а затем перезапустите udev с правами суперпользователя.
Подключите телефон через USB, и он должен быть обнаружен при компиляции и запуске проекта.
источник
У меня была такая же проблема, решение как у товарища: (кстати, вам не нужно рутировать ваше устройство.)
Наслаждаться.
источник
su
, используйтеsudo su
. Я сделал. А также, если вы не знаете, как выйти из системы - используйтеexit
.Я знаю, что это может быть немного поздно, но вот очень хорошая статья о том, как вручную добавить 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
Вот и вы! Ваше устройство должно быть в списке.
Скопировано вручную Добавление драйвера Android ADB USB в Ubuntu 14.04 LTS
Работал на меня.
источник
У меня была такая же проблема с моей Galaxy S3. Моя проблема заключалась в том, что
idVendor
значение04E8
не было правильным. Чтобы найти подходящий, подключите свой смартфон к компьютеру и запуститеlsusb
в терминале. Он отобразит ваш смартфон следующим образом:Таким образом, правильное
idVendor
значение18d1
. И строка в/etc/udev/rules.d/51-android.rules
должна быть:Потом бегаю
sudo udevadm control --reload-rules
и все работает!источник
ATTR{idVendor}=="18d1"
Используйте
M0Rf30/android-udev-rules
сообщество GitHub, поддерживаемое udev-ruleshttps://github.com/M0Rf30/android-udev-rules/blob/master/51-android.rules
Это самый полный список правил udev, который я когда-либо видел, даже больше, чем рекомендуемый в настоящее время
sudo apt-get install android-tools-adb
в официальной документации , и он решил эту проблему для меня.источник
Заменить поставщик идентификатор
0bb4
с18d1
в/etc/udev/rules.d/51-android.rules
Или добавьте еще одну строку, которая гласит:
источник
Когда вы перезапустите udev, убейте сервер adb и запустите путь установки adb server goto android sdk и сделайте все на sudo. затем запустите устройства adb, это решит проблему с правами доступа.
источник
Мое устройство POSITIVO и моя операционная система
Ubuntu 14.04 LTS
Итак, моя проблема была в имени переменнойЯ создаю файл /etc/udev/rules.d/51-android.rules и ставлю
SUBSYSTEM=="usb", SYSFS{idVendor}=="1662", MODE="0666"
Я отключил устройство и выполнил:
после этого я снова подключил устройство Android в режиме разработчика и
источник
Без отключения
Все предоставленные ответы предполагают, что вы можете отключить и снова подключить USB-кабель. В ситуациях, когда это невозможно (например, когда вы находитесь на расстоянии), вы можете сделать следующее, чтобы сделать то, что предложенные правила udev будут делать при повторном подключении:
Найдите устройство, которое вам небезразлично, например:
Запишите номер шины, на которой он включен, а затем выполните, например, для шины
003
:Очевидно, что это может быть более допустимым, чем вы хотите (может быть подключено больше устройств, чем только это), но вы поняли идею.
источник
udev
правило без повторного подключения устройства, просто используйтеudevadm trigger --verbose --action=add --subsystem-match=usb
команду.Вы не должны запускать
adb
сервер как root, как предлагают другие ответы. Вместо этого, если вы используете Arch Linux, сделайте следующее:android-udev
пакет с PacmanПерезагрузить правила Udev:
Добавьте себя в
adbusers
группу, а затем выйдите и войдите:Источник: https://wiki.archlinux.org/index.php/android#Configuring_adb
источник
Попробуйте вместо
GROUP="plugdev"
использования основной группы вашего пользователя.источник
В моем случае на Ubuntu 12.04 LTS мне пришлось сменить свой режим HTC Incredible usb с зарядки на Media, и затем устройство появилось под adb. Конечно, отладка уже была включена в обоих случаях.
источник
Пожалуйста, НЕ следуйте решениям, предлагающим использовать
sudo
(sudo adb start-server
)! Это запустить ADB как root (администратор), и он не должен работать так !!! Это плохой обходной путь !Все, что работает с правами root, может делать что-либо в вашей системе, если он создает или изменяет файл, может изменить свое разрешение на использование только пользователем root. Опять не надо!
Что нужно сделать это настроить вашу систему , чтобы пользователь имеет разрешения, проверить это руководство я написал о том , как сделать это правильно.
источник
У меня была та же проблема, и я выполнил следующие действия:
Вышеуказанные шаги описаны в android-udev-rules . Это сработало для меня.
Просто убедитесь, что подтвердили диалоговое окно, которое появится на экране вашего телефона после его подключения.
источник
У меня эта команда сработала
источник
Я использовал su, и он начал работать. Когда я использую Jetbrains с обычным пользователем, я вижу эту проблему, но после перезапуска Jetbrains в режиме su, я вижу свое устройство, ничего не делая.
Я использую Ubuntu 13.04 и Jetbrains 12.1.4
источник
Вы также можете попробовать отредактировать файл adb_usb.ini , расположенный по адресу /home/username/.android/ . Этот файл содержит список поставщиков устройств, к которым вы хотите подключиться. Вы просто добавляете идентификатор вашего устройства в новую строку (это один идентификатор на строку). Затем перезапустите сервер ADB и подключите ваше устройство заново.
У меня это работало на Ubuntu 12.10.
источник
Во всяком случае, что я сделал, чтобы решить эту проблему (на Ubuntu ).
Определено, в каких случаях мне нужно запускать эти команды. Для большинства пользователей Ubuntu есть домашняя папка (скрытый файл
.bashrc
).В котором вы можете записать запуск этих команд. Но эти команды будут запущены при вводе
bash
команды в консоли.Так как у меня есть оболочка .zshrc, я сделал следующее:
открыть консоль:
gedit .zshrc
Когда файл откроется, добавьте следующую строку:
После или до этого нам нужно создать этот файл:
.add_device_permissions.sh
в котором мы напишем следующее:Также нам нужно создать .permissions_redmi_note, где нам нужно жестко закодировать наш пароль.
.zshrc
ненужные, мы можем указать путь при запуске самой системы:Startup Applications Preferences
Где мы нажимаем на «Добавить» и пишем нашу команду:
/home/vadimm/.add_device_permissions.sh
./adb devices ./adb kill-server sudo ./adb devices ./adb kill-server ./adb devices
источник
Если кто-то сталкивается со следующим сообщением об ошибке при использовании
adb devices
Выполните следующее
Это исправило проблему для меня на пользовательском устройстве Android сборки
источник