Включите отладку по USB на устройстве
Это делается в Настройки " Разработка. Если у вас нет этой записи в меню настроек, перейдите к Настройки " О, перейдите к "Номеру сборки" и нажимайте на него, как обезьяна, пока ваше устройство не поздравит вас с тем, что вы стали разработчиком. Вернитесь на главную страницу сайта Настройки меню, и близко к нижней части вы должны увидеть настройки "Разработка" (или "Разработчики"). Введите его и включите Отладка по USB здесь.
Идентифицировать устройство
Сначала нам нужно знать, как устройство идентифицируется по шине USB. Для этого с помощью устройства Android НЕ подключившись, возьмите оболочку и запустите команду lsusb. Затем подключите устройство и снова запустите команду. Найдите новую строку. Для Уайлиф Свифт это "безымянное устройство";:
Bus 004 Device 003: ID 2970:2282
Настройка правил для АБР
Теперь нам нужны цифры в конце приведенной выше строки: 2970:2282. В них указывается поставщик (2970) и само устройство (2282). Имея эти детали, нам нужен корень оболочку на нашей машине Linux для редактирования (или создания, если она еще не существует) /etc/udev/rules.d/51-android.rules файл. Там добавьте строку для вашего устройства. Следующая строка примера показывает, как она выглядит для Уайлиф Свифт:1
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2970", ATTRS{idProduct}=="2282", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
Если у вас другое устройство, замените идентификаторы поставщика и продукта на те, которые вы нашли выше при запуске lsusb. Краткое объяснение строки:
-
SUBSYSTEMS=="usb": очевидно, что это правило предназначено только для USB ;)
-
ATTRS{idVendor}=="2970": идентификатор поставщика устройства, для которого предназначено это правило.
-
ATTRS{idProduct}=="2282": идентификатор устройства
-
MODE="0666": разрешения, которые должен получить узел устройства. 0666 является довольно слабым, предоставляя каждому пользователю в вашей системе разрешение на чтение и запись, поэтому, если вы обеспокоены, вы можете попробовать заменить это на 0660 (предоставляя только владельцу и группе чтение-запись и запрещая все другим).
-
GROUP="androiddev": к какой группе должен принадлежать узел устройства. Это должна быть группа, к которой принадлежат пользователи, предназначенные для работы с устройством.
-
SYMLINK+="android%n": просто чтобы дать узлу красивое имя, чтобы вам было легче найти его в /dev (в моем случае это позже появилось там как /dev/android5)
Это правило, введенное в /etc/udev/rules.d/51-android.rules, мы должны сказать udev чтобы использовать его. Самый безопасный способ (рядом с перезагрузкой ;) - это перезапуск udev обслуживание. В зависимости от вашего дистрибутива Linux это можно сделать либо с помощью service udev restart или /etc/init.d/udev restart.
Сделав это, оставьте корневую оболочку. Отключите и снова подключите свое Android-устройство, попробуйте adb devices снова. Сейчас появилось большинство устройств, но не Уайлиф Свифт – который, очевидно, хочет дополнительных объятий. Если вы находитесь в такой ситуации, откройте (или создайте, если он не существует) файл ~/.android/adb_usb.ini и добавьте к нему одну строку, указав поставщика, с которым вы познакомились lsusb выше; для Быстрый это было бы 0x2970 (да, здесь вам нужно добавить к нему префикс 0x чтобы указать, что это шестнадцатеричное число). Затем перезапустите сервер ADB: adb kill-server && adb start-server. Отключите и снова подключите устройство. Сейчас adb devices должен это увидеть.
Подключение устройства
Возможно, вы заметили adb devices сказал тебе что-то вроде 0123456789ABCDEF unauthorized. Это нормально и для вашей (устройств) безопасности: сначала ваш компьютер должен быть авторизован, чтобы иметь возможность получить доступ к устройству. Так просто выдать adb shell теперь – который будет завершен с помощью error: device unauthorized. Please check the confirmation dialog on your device. Следуйте этому совету (при необходимости установите флажок для постоянной авторизации вашего компьютера), и все готово: теперь вы можете использовать абр чтобы получить доступ к вашему устройству.
Обновления:
1 Обратите внимание, что в более поздних версиях Linux синтаксис правил UDEV немного изменился, например jcomeau_ictx указано в его комментарии. Для значений, которые мы нашли выше, это было бы:
SUBSYSTEM=="usb", ATTR{idVendor}=="2970", ATTR{idProduct}=="2282", MODE="0666", GROUP="plugdev", SYMLINK+="android%n"
Два отличия: теперь это SUBSYSTEM (без множественного числа), и группа изменилась с androiddev к plugdev (первое не существует в последних системах, второе существует и обычно назначается по крайней мере первому пользователю).
Кроме того, вам может потребоваться добавить идентификатор поставщика в свой ~/.android/adb_usb.ini (один идентификатор на строку в шестнадцатеричной системе счисления):
# ANDROID 3RD PARTY USB VENDOR ID LIST# 1 USB VENDOR ID PER LINE.0x2970
Источник