GNU/Linux >> Znalost Linux >  >> Linux

Android - No-name i.onik android tablet nerozpoznal adb -- zařízení adb prázdné

Izzyina odpověď je zavádějící. Dvě nesouvisející věci byly smíchány (seznam ID dodavatele v adb na jedné straně a nastavení oprávnění v Linuxu na straně druhé).

1) zařízení zvažovaná společností adb:

Adb má pevně zakódovaný seznam ID dodavatelů USB, které zkouší. Např. Mobilní telefony HTC používají 0xbb4, který je uveden (zdrojový soubor usb_vendors.c), zatímco 0x2207 nikoli.

Jediné způsob, jak přidat do tohoto seznamu (bez opravy zdroje), je vložit ID dodavatele do souboru $HOME/.android/adb_usb.ini , řádek po řádku. (HOME je správně nastaven?)

Není potřeba žádný speciální kabel.

2) nastavení oprávnění pro přístup bez oprávnění root:

udev-fiddling je poskytnout uživateli přístup např. /dev/bus/usb/002/009 (změna čísla sběrnice/čísla zařízení; viz lsusb pro aktuální hodnoty).

Podrobnosti o tom nejsou relevantní pro otázku původního plakátu, protože spustil adb jako root.


Jak je popsáno v části Konfigurace ADB pro Nexus 4 na Ubuntu 11.10, pod Linuxem je důležité být uveden buď v ~/.android/adb_usb.ini (na základě uživatele) nebo /etc/udev/rules.d/51-android.rules . Syntaxe pro oba soubory se liší:zatímco v prvním případě stačí jednoduše přidat id dodavatele (echo 0x18d1 >> ~/.android/adb_usb.ini pro Nexus 4) je položka pro pravidlo UDEV o něco složitější. Podrobnosti naleznete v odkazované otázce (nebo spíše jejích odpovědích).

V případě krlmlra to nebylo "buď-anebo", ale zdánlivě byly potřeba obě části (nikdy jsem to předtím neměl a nikdy jsem ani nepoužil adb_usb.ini -- ale to neznamená, že takové výjimky neexistují). Přidáním zařízení na obě místa (což stejně nemůže ublížit) se zařízení konečně ukázalo.

Dvě další poznámky:Po změně pravidel UDEV je třeba restartovat službu UDEV, aby byly změny přijaty. Na Ubuntu to lze provést pomocí sudo service udev restart (Alternativně můžete jednoduše přinutit UDEV, aby znovu načetl svá pravidla pomocí udevadm control --reload-rules ). Pokud vaše zařízení stále není detekováno, s největší pravděpodobností bylo připojeno během provádění změn; poté musíte odpojit a znovu připojit kabel USB. Samozřejmostí je Ladění USB musí být povoleno ve vašem zařízení :)

Příklad

Na základě následujícího výstupu lsusb pro příslušné zařízení Android:

Bus 002 Device 009: ID 2207:0010  

bylo nutné vytvořit /etc/udev/rules.d/51-android.rules jako root s následujícím obsahem:

SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0010", MODE="0660", GROUP="plugdev"

a vytvořit ~/.android/adb_usb.ini s následujícím obsahem:

0x2207

První je vyžadován pro povolení běžných uživatelů (které patří do skupiny plugdev ) pro přístup k zařízení. Všimněte si masky oprávnění 0660 místo často používaného 0666 který je z hlediska bezpečnosti slabší (druhý umožňuje „světový“ přístup, zatímco první umožňuje pouze „uživatelský a skupinový“ přístup). Druhý je povinný, aby adb pokusí mluvit se zařízením na prvním místě. Poté:

sudo chmod a+r /etc/udev/rules.d/51-android.rules
sudo udevadm control --reload-rules
adb kill-server

a odpojte+zapojte své zařízení Android. Potom,

adb devices

konečně ukázal zařízení Android.

Pro můj LG Optimus 4X HD , stačilo přidat jeden řádek do /etc/udev/rules.d/51-android.rules :

SUBSYSTEMS=="usb", ATTRS{idVendor}=="1004", ATTRS{idProduct}=="61a6", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

Možná SYMLINK volba znamená, že jsem nepotřeboval další položku v ~/.android/adb_usb.ini .


Linux
  1. Linux – neplatná konfigurace `x86_64′:Počítač `x86_64′ nebyl rozpoznán?

  2. Linux – Pravidla Udev:Jak spárovat pouze zařízení jádra (ne oddíly) po zařízení #26?

  3. Instalace Grub 2 na Mdadm, jaké zařízení?

  1. losetup:příkaz nenalezen

  2. Android adb nebyl nalezen

  3. Zařízení Android Debug Bridge (adb) – žádná oprávnění

  1. uflash:příkaz nenalezen

  2. sshpass není ve Windows rozpoznán

  3. běžící zařízení adb zobrazující neautorizované zařízení?