Włącz debugowanie USB na urządzeniu
Odbywa się to w Ustawieniach ›Rozwój . Jeśli nie masz tego wpisu w menu ustawień, przejdź do Ustawienia ›Informacje , przewiń do„ Numer kompilacji ”i młotkuj go jak małpa, aż urządzenie pogratuluje Ci zostania programistą. Wróć do strony głównej menu Ustawienia i blisko dołu powinieneś teraz zobaczyć ustawienia „Programowanie” (lub „Programiści”). Wpisz go i włącz tutaj debugowanie USB .
Zidentyfikuj urządzenie
Najpierw musimy wiedzieć, jak urządzenie identyfikuje się na magistrali USB. W tym celu, gdy urządzenie Android NIE jest podłączone, chwyć powłokę i uruchom polecenie lsusb
. Następnie podłącz urządzenie i ponownie uruchom komendę. Znajdź nową linię. W przypadku Wileyfox Swift jest to „urządzenie bezimienne”:
Bus 004 Device 003: ID 2970:2282
Konfigurowanie reguł dla ADB
Musimy teraz numery na końcu powyższej linii: 2970:2282
. Określają one dostawcę (2970) i samo urządzenie (2282). Mając te szczegóły, potrzebujemy powłoki root na naszym komputerze z systemem Linux, aby edytować (lub tworzyć, jeśli jeszcze nie istnieje) /etc/udev/rules.d/51-android.rules
plik. Tam dodaj linię do swojego urządzenia. Poniższy przykładowy wiersz pokazuje, jak wygląda Wileyfox Swift: ¹
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2970", ATTRS{idProduct}=="2282", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
Jeśli masz inne urządzenie, zastąp identyfikatory dostawcy i produktu tymi, które znalazłeś powyżej podczas uruchamiania lsusb
. Krótkie wyjaśnienie linii:
SUBSYSTEMS=="usb"
: oczywiście ta reguła dotyczy tylko USB;)
ATTRS{idVendor}=="2970"
: identyfikator dostawcy urządzenia, którego dotyczy ta reguła
ATTRS{idProduct}=="2282"
: identyfikator urządzenia
MODE="0666"
: uprawnienia, które powinien otrzymać węzeł urządzenia. 0666
jest dość luźny, dając każdemu użytkownikowi w twoim systemie uprawnienia do odczytu i zapisu - więc jeśli się martwisz, możesz spróbować zastąpić to 0660
(dając tylko właścicielowi i grupie do odczytu i zapisu i odmawiając wszystkim innym).
GROUP="androiddev"
: do której grupy powinien należeć węzeł urządzenia. Powinna to być grupa, do której należą użytkownicy zamierzający pracować z urządzeniem.
SYMLINK+="android%n"
: tylko po to, aby nadać węzłu ładną nazwę, abyś mógł łatwiej go znaleźć /dev
(w moim przypadku później pojawił się tam jako /dev/android5
)
Zasada została wprowadzona /etc/udev/rules.d/51-android.rules
, musimy powiedzieć, udev
aby z niej skorzystać. Najbezpieczniejszym sposobem (po ponownym uruchomieniu;) jest ponowne uruchomienie udev
usługi. W zależności od dystrybucji Linuksa można to zrobić za pomocą service udev restart
lub /etc/init.d/udev restart
.
Wykonaj to, pozostaw skorupę roota. Odłącz i ponownie podłącz urządzenie z Androidem, spróbuj adb devices
ponownie. Pojawiło się teraz większość urządzeń, ale nie Wileyfox Swift - który oczywiście potrzebuje dodatkowych przytulanek. Jeśli znajdujesz się w takiej sytuacji, otwórz (lub utwórz, jeśli nie istnieje) plik ~/.android/adb_usb.ini
i dodaj do niego pojedynczy wiersz, podając nazwę dostawcy, o którym wiesz lsusb
powyżej; dla Swift , która byłaby 0x2970
(yupp, tutaj trzeba poprzedzić go 0x
podkreślić, że jest to liczba szesnastkowa). Następnie należy zrestartować serwer ADB: adb kill-server && adb start-server
. Odłącz i ponownie podłącz urządzenie. Teraz adb devices
powinien to zobaczyć.
Podłączanie urządzenia
Być może zauważyłeś adb devices
coś podobnego 0123456789ABCDEF unauthorized
. To jest OK i dla twojego (urządzeń) bezpieczeństwa: twój komputer musi być najpierw autoryzowany, aby mieć dostęp do urządzenia. Więc po prostu wydaj adb shell
teraz - który zostanie zakończony poleceniem error: device unauthorized. Please check the confirmation dialog on your device.
Postępuj zgodnie z tą radą (opcjonalnie zaznacz pole wyboru, aby trwale autoryzować komputer) i gotowe: Teraz możesz użyć adb, aby uzyskać dostęp do urządzenia.
Aktualizacje:
¹ Zauważ, że w późniejszych wersjach systemu Linux składnia reguł UDEV uległa nieznacznej zmianie, jak np. Jcomeau_ictx w swoim komentarzu. Dla wartości, które znaleźliśmy powyżej, będą to:
SUBSYSTEM=="usb", ATTR{idVendor}=="2970", ATTR{idProduct}=="2282", MODE="0666", GROUP="plugdev", SYMLINK+="android%n"
Dwie różnice: teraz SUBSYSTEM
(bez liczby mnogiej), a grupa zmieniła się z androiddev
na plugdev
(pierwsza nie istnieje w najnowszych systemach, druga ma i zwykle jest przypisana przynajmniej pierwszemu użytkownikowi).
Ponadto może być konieczne dodanie identyfikatora vendorID do ~/.android/adb_usb.ini
(jeden identyfikator w wierszu w zapisie szesnastkowym):
# ANDROID 3RD PARTY USB VENDOR ID LIST
# 1 USB VENDOR ID PER LINE.
0x2970