Povolte v zařízení ladění USB
To se provádí v Nastavení › Vývoj . Pokud tuto položku v nabídce nastavení nemáte, přejděte na Nastavení › O aplikaci , přejděte na „Číslo sestavení“ a tlučte do něj jako opice, dokud vám vaše zařízení nepogratuluje, že jste se stali vývojářem. Vraťte se na hlavní stránku Nastavení a v dolní části byste nyní měli vidět nastavení "Vývoj" (nebo "Vývojáři"). Zadejte jej a povolte Ladění USB zde.
Identifikujte zařízení
Nejprve potřebujeme vědět, jak se zařízení identifikuje na sběrnici USB. Za to se zařízením Android NE připojeno, uchopte shell a spusťte příkaz lsusb . Poté připojte zařízení a spusťte příkaz znovu. Objevte nový řádek. Pro Wileyfox Swift toto je "bezejmenné zařízení":
Bus 004 Device 003: ID 2970:2282
Nastavení pravidel pro ADB
Nyní potřebujeme čísla na konci výše uvedeného řádku:2970:2282 . Ty specifikují dodavatele (2970) a samotné zařízení (2282). Máme-li tyto podrobnosti, potřebujeme kořen shell na našem linuxovém počítači upravit (nebo vytvořit, pokud ještě neexistuje) /etc/udev/rules.d/51-android.rules soubor. Tam přidejte řádek pro vaše zařízení. Následující ukázkový řádek ukazuje, jak to vypadá pro Wileyfox Swift:¹
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2970", ATTRS{idProduct}=="2282", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"
Pokud máte jiné zařízení, nahraďte při spuštění lsusb ID dodavatele a produktu tím, co jste našli výše . Krátké vysvětlení řádku:
SUBSYSTEMS=="usb":toto pravidlo samozřejmě platí pouze pro USB;)ATTRS{idVendor}=="2970":ID dodavatele zařízení, pro které je toto pravidlo určenoATTRS{idProduct}=="2282":ID zařízeníMODE="0666":oprávnění, která má uzel zařízení získat.0666je docela laxní a dává každému uživateli ve vašem systému oprávnění ke čtení a zápisu – takže pokud máte obavy, můžete to zkusit nahradit0660(umožňuje čtení a zápis pouze vlastníkovi a skupině a ostatním vše odepře).GROUP="androiddev":do které skupiny by měl patřit uzel zařízení. Měla by to být skupina, do které patří uživatelé, kteří mají se zařízením pracovat.SYMLINK+="android%n":stačí dát uzlu pěkné jméno, abyste ho snadněji našli v/dev(v mém případě se to tam později ukázalo jako/dev/android5)
Toto pravidlo bylo zadáno v /etc/udev/rules.d/51-android.rules , musíme říct udev využít toho. Nejbezpečnějším způsobem (vedle restartu;) je restartování udev servis. V závislosti na vaší distribuci Linuxu to lze provést buď pomocí service udev restart nebo /etc/init.d/udev restart .
Hotovo, ponechte kořenový obal. Odpojte a znovu připojte zařízení Android, zkuste adb devices znovu. Většina zařízení se nyní zobrazila, ale ne Wileyfox Swift – což očividně chce nějaké mazlení navíc. Pokud jste v takové situaci, otevřete (nebo vytvořte, pokud neexistuje) soubor ~/.android/adb_usb.ini a přidejte k němu jeden řádek a pojmenujte dodavatele, kterého jste zjistili, pomocí lsusb výše; pro Swift to by bylo 0x2970 (yupp, zde musíte předponu 0x abych poukázal na to, že jde o hexadecimální číslo). Poté restartujte server ADB:adb kill-server && adb start-server . Odpojte a znovu připojte zařízení. Nyní adb devices měli byste to vidět.
Připojení zařízení
Možná jste si všimli adb devices vám řekl něco jako 0123456789ABCDEF unauthorized . To je v pořádku a pro vaši bezpečnost (zařízení):váš počítač musí být nejprve autorizován, aby měl k zařízení přístup. Jednoduše zadejte adb shell now – který bude ukončen s error: device unauthorized. Please check the confirmation dialog on your device. Postupujte podle této rady (volitelně zaškrtněte políčko pro trvalou autorizaci počítače) a je hotovo:Nyní můžete pro přístup ke svému zařízení použít adb.
Aktualizace:
¹ Všimněte si, že v pozdějších verzích Linuxu se syntaxe pravidel UDEV mírně změnila, např. jcomeau_ictx poukázal ve svém komentáři. Pro hodnoty, které jsme našli výše, by to bylo:
SUBSYSTEM=="usb", ATTR{idVendor}=="2970", ATTR{idProduct}=="2282", MODE="0666", GROUP="plugdev", SYMLINK+="android%n"
Dva rozdíly:nyní je to SUBSYSTEM (bez množného čísla) a skupina se změnila z androiddev na plugdev (první na novějších systémech neexistuje, druhý ano a obvykle je přiřazen alespoň prvnímu uživateli).
Navíc může být nutné přidat vendorID do vašeho ~/.android/adb_usb.ini (jedno ID na řádek, v hexadecimálním zápisu):
# ANDROID 3RD PARTY USB VENDOR ID LIST
# 1 USB VENDOR ID PER LINE.
0x2970
Pár komentářů z novější distribuce Linuxu. Fedora 29 s telefonem Nexus 5X nebo Nokia 7.1 (Android One).
Nejprve odpojte telefon, pokud je již připojen.
- Nainstalujte si nástroje pro Android, které dodají ADB (
sudo dnf install android-tools) - Zkopírujte pravidla udev (
sudo cp /usr/share/doc/android-tools/51-android.rules /etc/udev/rules.d) - Znovu načíst pravidla udev (
sudo udevadm control --reload-rules) - Pro jistotu restartujte ADB (
sudo systemctl restart adb)
Nyní připojte telefon a spusťte adb devices z příkazového řádku. Pravděpodobně uvidíte zařízení v seznamu bez oprávnění. Toto je v pořádku.
KDYŽ není uveden, budete muset své zařízení přidat do souboru pravidel udev, ale pro mě testovaná zařízení fungovala pouze s předdefinovanými pravidly.
Spusťte adb shell a doufejme, že na telefonu dostanete bezpečnostní upozornění s dotazem, zda chcete počítači důvěřovat, vyberte ano.
KDYŽ místo toho váš počítač říká „chyba:nedostatečná oprávnění pro zařízení“, musíte se ujistit, že v telefonu máte port USB nastaven na režim „Přenos souborů“ a ne „Nabít toto zařízení“. V systému Android 8.1 se toto nachází v nastavení v části „Připojená zařízení“> „USB“.
Všiml jsem si, že i když dnes všechno funguje, zítra se to může náhle rozbít bez zjevného důvodu. Pokud k tomu dojde, nejprve zkontrolujte nastavení portu USB na zařízení, které se mohlo změnit zpět do režimu nabíjení, a pokud se to nezdaří, zrušte oprávnění k ladění USB na zařízení (v nastavení v části Možnosti vývojáře) a doufejme, že by se vám mělo objevit pop. -up znovu, když spustíte adb shell .
Díky tomu mohu spustit Android Studio a spustit jej na připojeném zařízení.