ADB over WiFi

ADB (Android Debug Bridge) — утилита, входящая в стандартный Android SDK, набор инструментов для разработчика. Она обеспечивает CLI интерфейс для взаимодействия с файловой системой вашего телефона. Так как платформа Android основана на Linux, то command-line is the only way to obtain and manipulate root access часто необходима для выполнения некоторых расширенных операций.

Хотя эти вещи можно сделать непосредственно на самом устройстве, используя какое-либо приложение эмулятора терминала, будет довольно трудно выполнять сложные команды на таком маленьком экране. ADB обеспечивает «мост» между вашим устройством и компьютером. По сути, она предоставляет неограниченный контроль над устройством.

Лично я использую ADB для отладки приложений при разработке. Раньше все делал по старинке: подключал телефон по USB, и понеслось.. но после того, как достаточно освоил adb, теперь все делаю по wifi, жизнь стала проще — никаких проводов 🙂

Android Debugging Bridge — adb

Прежде чем продолжить, хотел бы отметить несколько важный замечаний. Android virtual device (виртуальное устройство) может быть спокойно доступен через adb, нормальный же Android телефон должен быть с root-правами.

Я не буду сейчас детально углубляться, что может делать утилита ADB, но если вкратце, то:

  • Просматривать логи смартфона
  • Устанавливать/Удалять приложения
  • Копировать на телефон или скачивать с него файлы
  • полноценная shell сессия

И еще несколько крутых фишек. Можно даже делать скриншоты, звонки и посылать SMS 🙂 Но это останется за пределами этой статьи.

Итак, по дефолту adb сервис на компьютере слушает порт 5037, а adb демон (фоновый процесс) на телефоне — 5555 порт.

Рассмотрим несколько вариантов для установления TCP сессии.

From your device, if it is rooted

Вы можете включить adb по WiFi с помощью команд в терминале вашего устройства:

su
setprop service.adb.tcp.port 5555
stop adbd
start adbd

su — получение прав root-пользователя

setprop service.adb.tcp.port 5555 — прописываем в настройках adb сервиса порт, который он будет слушать, в данном случае 5555, естественно, можно указать свой, но тогда нужно будет при соединении явно его указывать.

stop adbd, start adbd — перезапускаем adbd (adb daemon) для применения новых настроек.

Для того, чтобы выключить и вернуть adb сервис на телефоне обратно к «прослушиванию» USB, выполните:

setprop service.adb.tcp.port -1
stop adbd
start adbd

From a computer, if you have USB access already

Если у вас есть доступ к устройству по USB, то можно сделать еще проще. В командной строке компьютера, к которому подключено устройство,  выполните:

adb tcpip 5555

Connect, my Dear!

Теперь все готово, чтобы установить соединение. Общий вид команды имеет вид:

adb connect <ip>:<port>

где ipip-адрес вашего смартфона, port — порт, который слушает adb сервис на смартфоне.

Вы можете узнать IP-адрес вашего Android устройства двумя способами:

Manual IP Discovery

Зайдите в настройки Android’s WiFi, нажмите на значок сети, к которой вы подключены, и вы увидите IP-адрес внизу экрана

Screenshot_2015-01-02-15-29-55

Discover IP

Можно также при помощи утилиты nmap просканировать сеть и найти нужные нам устройства, на которых открыт порт 5555. Для этого выполните:

nmap -v 192.168.1.* -p 5555

Screenshot from 2015-01-02 16:23:28

Мы видим два устройства, да, это мои Android планшет и смартфон

Screenshot from 2015-01-02 16:24:14

В итоге в моем случае получилось

adb connect 192.168.1.11:5555

Screenshot from 2015-01-02 16:26:42

Вот и все 🙂 Теперь мы можем, например, открыть терминальную сессию:

adb shell

Screenshot from 2015-01-02 16:27:10

Сейчас мы находимся внутри телефона. Для возвращения к своей локальной сессии выполните

exit

Screenshot from 2015-01-02 16:27:28

Чтобы сказать adb сервису на устройстве опять «слушать» по USB

adb usb

Если мы попытаемся теперь соединиться, то получим ошибку.

Screenshot from 2015-01-02 16:28:36

Для повторного успешного соединения нам нужно заново открыть порт на смартфоне через его терминал.

Изменить стандартный порт (т.е. 5037) adb сервиса на компьютере можно двумя способами:

Во-первых

export ANDROID_ADB_SERVER_PORT = 2339
adb start-server

Или же

adb -P 2339 start-server

Если adb сервер еще не запущен, то данная команда запустит новый adb сервер с заданным портом.

Screenshot from 2015-01-02 16:33:07

Проверить, что сервер действительно запустился на нужном порту, можно, например, командой

netstat -tulpan | grep LISTEN

Screenshot from 2015-01-02 16:33:40

На этом пока все. Если у кого-то возникли какие-либо вопросы или замечания, смело оставляйте свои комментарии. До новых встреч на нашем блоге!

ADB over WiFi: 5 комментариев

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s