Увімкніть налагодження USB на пристрої
Це робиться в Налаштуваннях ›Розробка . Якщо у меню налаштувань у вас немає цього пункту, перейдіть у меню Налаштування ›Про , перейдіть до“ Номер збірки ”та забийте його, як мавпа, доки ваш пристрій не привітає вас з тим, що ви стали розробником. Поверніться на головну сторінку меню " Налаштування" , а внизу ви побачите налаштування "Розробка" (або "Розробники"). Введіть його та увімкніть налагодження USB тут.
Визначте пристрій
Спочатку ми повинні знати, як пристрій ідентифікує на шині USB. Для цього, якщо Android-пристрій НЕ підключений, візьміть оболонку та запустіть команду lsusb
. Потім підключіть пристрій і знову запустіть команду. Знайдіть новий рядок. Для Wileyfox Swift це "безіменний пристрій":
Bus 004 Device 003: ID 2970:2282
Встановлення правил для АБР
Тепер нам потрібно число в кінці попереднього рядка: 2970:2282
. Вони вказують постачальника (2970) та самого пристрою (2282). Маючи ці подробиці, нам потрібна коренева оболонка на нашій машині Linux для редагування (або створення, якщо він ще не існує) /etc/udev/rules.d/51-android.rules
файлу. Там додайте рядок для свого пристрою. Наступний приклад показує, як виглядає Wileyfox Swift: ¹
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
спробу. Більшість пристроїв з'явилися зараз, але не Wileyfox Swift - який, очевидно, бажає додаткових частувань. Якщо ви знаходитесь в такій ситуації, відкритої (або створити , якщо він не існує) файл ~/.android/adb_usb.ini
і додайте один рядок до нього, називаючи постачальника ви знайшли з lsusb
вище; для Swift, який би був 0x2970
(yupp, тут вам потрібно встановити префікс, 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.
дотриманням цієї поради (необов’язково позначте прапорець, щоб остаточно авторизувати ваш комп'ютер), і ви закінчили: Тепер ви можете використовувати adb для доступу до свого пристрою.
Оновлення:
¹ Зауважте, що в пізніших версіях Linux синтаксис правил UDEV трохи змінився, як, наприклад, jcomeau_ictx зазначив у своєму коментарі. Для значень, які ми знайшли вище, було б:
SUBSYSTEM=="usb", ATTR{idVendor}=="2970", ATTR{idProduct}=="2282", MODE="0666", GROUP="plugdev", SYMLINK+="android%n"
Дві відмінності: це зараз SUBSYSTEM
(немає множини), і група змінилася з androiddev
на plugdev
(першої не існує в останніх системах, остання є і зазвичай призначається принаймні першому користувачеві).
Крім того, вам може знадобитися додати vendorID до свого ~/.android/adb_usb.ini
(один ідентифікатор на рядок, у шістнадцятковій нотації):
# ANDROID 3RD PARTY USB VENDOR ID LIST
# 1 USB VENDOR ID PER LINE.
0x2970