ADB přes TCP (Wifi)

14 views
Skip to first unread message

Adam Hořčica

unread,
Oct 28, 2011, 7:42:23 PM10/28/11
to ctu...@googlegroups.com

Možná o tom ani nevíte, ale ADB (Android Debug Bridge) je klient-server rozhraní přes které komunikuje počítač s Android zařízením při vývoji. Jako výchozí stav je komunikace přes USB, prostě kabelem mezi počítačem a tabletem. ADB ale podporuje i komunikaci přes TCP (tu používá emulátor).

No a, ADB přes TCP jede zapnout i na fyzickém HW!

Jako nejjednodušší mi přišel následující postup (přečtěte si tento návod až do konce než začnete experimentovat!):

1) Připojte tablet standardně přes USB

2) Otevřete si konzoli s cestou <sdk>/platform-tools (v tomto adresáři se nachází konzolový adb client)

3) Ujistěte se, že máte k PC připojeno jen jedno zařízení (zabijte spuštěný emulátor). Pokud spustíte:

C:\android\android-sdk\platform-tools>adb devices

vypíše vám jen jedno zařízení (tento krok sice není nutný, ale ušetří vám opisování sériového čísla zařízení v dalších krocích)

4)      Nyní donutíme tablet poslouchat na TCP portu (třeba 5555):

C:\java\Android\android-sdk\platform-tools>adb tcpip 5555
restarting in TCP mode port: 5555

Právě jste restartovali ADBD démon na tabletu a přišli o připojení přes USB. Musíte se spojit přes TCP. V zásadě jsou 2 možnosti.

5) Pokud jste s PC i tabletem v nějaké rozumné síti tzn., budete se schopni z PC připojit k tabletu (budete znát IP adresu tabletu) a bude fungovat komunikace na portu 5555. Stačí ADB říct s kým má navázat komunikaci (10.0.0.2 je adresa, kterou dostal tablet od wifi routeru, který mám doma):

C:\android\android-sdk\platform-tools>adb connect 10.0.0.2:5555
connected to 10.0.0.2:5555

Od této chvíle vidíte zařízení úplně stejně jako, kdyby bylo připojeno přes USB, můžete na něm debugovat a dělat ostatní zajímavý věci…

Nejsem si jistý jestli eduroam ve škole je takto rozumnou sítí, takže je tu druhá možnost:

Pustit si v tabletu tethering přes Wifi. Tím se tablet začne chovat jako Wifi AP, na které se připojte. Nyní stačí zjistit jeho IP adresu (ve Windows např. pomocí ipconfig najít adresu výchozí brány) a připojit se na ni:

C:\android\android-sdk\platform-tools>adb connect 192.168.43.1:5555
connected to 192.168.43.1:5555

7) Až se budete chtít opět připojit přes USB, spusťte adb s parametrem usb (musíte být připojeni k zařízení přes TCP):

C:\java\Android\android-sdk\platform-tools>adb usb
restarting in USB mode


Pár tipů:

Co bezpečnost?

ADB není nijak zabezpečené, takže pokud budete mít povolené debugovaní přes TCP ve veřejné síti, kdokoli se na váš tablet může připojit a dělat tam věci, které by se vám asi nelíbili ;)

Jak zjistit mojí IP

Podržte prst v nastavení Wifi na názvu sítě, ke které jste připojeni. Popř. v Nastavení/Informace o tabletu/Stav.

Jak se vrátit k USB bez připojení přes TCP

U mého Asus EEE Pad je toto nastavení po vypnutí/zapnutí. Jinou cestu jsem nenašel. Změna tohoto nastavení přímo na androidu zřejmě vyžaduje restart ADBD démona a na to potřebujete root práva… Pokud se vám podaří najít jinou metodu, určitě se o ni podělte. Mně vyhovuje tento postup, takže se v tom už dál pitvat nebudu ;)


PS: Uvedený návod jsem bez problému vyzkoušel na Asus EEE Pad Tranformer (honeycomb 3.2), budu rád, když to někdo vyzkoušíte na Samsubg Galaxy Tab 10.1 (ten školní tablet).

PPS: Možná se někdo ptáte proč, by toto někdo dělal, když je tu USB, ne? No třeba proto, že USB potřebujete k něčemu jinému - http://www.svetandroida.cz/android-open-accessory-vyrobte-si-vlastni-hardware-201110


--
Hezký víkend,
Adam

Reply all
Reply to author
Forward
0 new messages