Включите отладку по 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
Источник