Как я могу подключиться к Android с ADB через TCP? [закрыто]

879

Я пытаюсь отладить приложение на Motorola Droid , но у меня возникают трудности с подключением к устройству через USB. Мой сервер разработки - это 64-разрядная виртуальная машина Windows 7, работающая в Hyper-V , поэтому я не могу подключиться напрямую через USB в гостевой системе или с хоста.

Я установил несколько различных решений USB-over-TCP, но, похоже, возникли проблемы с подключением, поскольку монитор ADB неоднократно сообщает «Монитор устройств не может начать мониторинг». Есть ли способ подключиться напрямую с клиента на компьютере разработчика к демону на устройстве, используя сеть вместо USB-подключения или, возможно, другие жизнеспособные варианты?

JDM
источник
75
При подключении через USB: adb tcpip 5555. Отключите USB, просмотрите IP телефона с Settings > About Phone > Status. Теперь adb connect 192.168.x.xи все. Нет инструментов, нет программного обеспечения. Просто работает.
andreszs
1
То, что сказал Эндрю, - это официальные инструкции с сайта Google для разработчиков Android , рут не нужен. Только что работал на моем нерутированном HTC One m8 (конечно, нужно включить опции разработчика).
Джефф Уорд
Если служба adb работает на порту 5037, то почему она находит устройства в диапазоне от 5555 до 5585?
Шивам Аггарвал
@ Андрей Можно ли использовать приложение , например , как это , чтобы открыть и закрыть порт без компьютера на Nexus 6, без корневого доступа? Я обеспокоен проблемами безопасности, которые могут возникнуть, если оставить порт 5555 открытым, когда я нахожусь в сети общего пользования и не использую свой телефон для разработки.
DaveTheMinion

Ответы:

1205

Ручной процесс

С вашего устройства, если он рутирован

Согласно сообщению на xda-developers , вы можете включить ADB через Wi-Fi с устройства с помощью команд:

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

И вы можете отключить его и вернуть ADB для прослушивания по USB с

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

С компьютера, если у вас уже есть доступ к USB (без рута)

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

adb tcpip 5555
adb connect 192.168.0.101:5555

Обязательно замените 192.168.0.101IP-адресом, который фактически назначен вашему устройству. Когда вы закончите, вы можете отключиться от сеанса adb tcp, выполнив:

adb disconnect 192.168.0.101:5555

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

Ручное обнаружение IP:

Зайдите в настройки WiFi Android, нажмите кнопку меню на панели действий (вертикальный многоточие), нажмите « Дополнительно» и увидите IP-адрес в нижней части экрана.

Используйте ADB для обнаружения IP:

Выполните следующую команду через adb:

adb shell ip -f inet addr show wlan0

Чтобы сказать ADB демон вернуться к прослушиванию через USB

adb usb

Приложения для автоматизации процесса

В Google Play также есть несколько приложений, которые автоматизируют этот процесс. Быстрый поиск предлагает adbWireless , WiFi ADB и ADB WiFi . Все они требуют root-доступа, но adbWireless требует меньше разрешений.

Брайан
источник
3
Вам нужен root-доступ для этого? Кажется, я могу запускать команды с помощью терминала, но на самом деле это не работает ...
JJ
6
@ JJ - К сожалению, да. Рут требуется.
Кингсолмн
178
Для второго решения ( adb tcipip 5555и adb connect ...нет необходимости в корне.
Ridcully
11
adb tcpip <port>по- прежнему требует либо ro.kernel.qemuсвойства быть установлено (работает в режиме эмулятора), ro.secureчтобы быть 0 (то есть корневое устройство), или ro.debuggableи service.adb.rootдолжны быть установлены в 1. adbdпросто не открывает соединение TCP / IP , если ни один из вышеперечисленного не будет выполнен. См. Netmite.com/android/mydroid/system/core/adb/adb.c adb_main части о secureпеременной. adbdна моем рутированном 2.3.7 Android вообще не входит в режим TCP / IP.
soulseekah
2
Большой! Второе решение действительно не требует root!
Гжегож Д.
132

Это действительно просто, если ваш телефон рутирован.

Загрузите эмулятор терминала из Google Play (есть много бесплатных). Убедитесь, что ваше устройство Android подключено к Wi-Fi и получите IP-адрес Wi-Fi . Откройте программу терминала и введите:

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

Теперь перейдите на свой компьютер (при условии, что вы используете Windows) и создайте на рабочем столе ярлык для «cmd.exe» (без цитат).

Щелкните правой кнопкой мыши на ярлыке cmd и выберите "Run as Administrator"

Перейдите в вашу android-sdk-windows\toolsпапку

Тип:

adb connect ***wifi.ip.address***:5555

(example: adb connect 192.168.0.105:5555)

АДБ должен теперь сказать, что вы связаны.

Примечание: если вы слишком быстры, чтобы дать команду подключения, это может дать сбой. Поэтому попробуйте по крайней мере два раза по пять секунд, прежде чем сказать, что это не работает.

нормандский
источник
6
Этот ответ был лучше для меня, потому что он объяснил, какая часть должна быть выполнена на устройстве, а какая на компьютере.
Эдуардо
5
ДО "adb tcpip 5555" ДО "adb kill-server". ПОСЛЕ «adb connect 192.168.0.101:5555« DO »adb devices» ИЛИ «adb shell» (connect не запускает оболочку).
Самис
Я попытался, adb tcpip 5555а затем другой человек казнил adb connect myIP:5555на своем ПК. Он мог установить приложение на мой телефон, но не смог отладить его удаленно. Можно ли отлаживать удаленно? На моем телефоне был диалог waiting for debuggerнавсегда.
Анджелина
Делает ли это настройки постоянными при перезагрузках?
Hritik
Работает ли это с адресом ipv6 через мобильный интернет?
CaptainFreedom
94
  1. Подключите устройство через USB и убедитесь, что отладка работает, затем запустите:

    adb tcpip 5555
    adb connect <DEVICE_IP_ADDRESS>:5555
  2. Отключите USB и продолжите беспроводную отладку.

  3. Когда вы закончите и захотите вернуться к отладке через USB, запустите:

    adb -s <DEVICE_IP_ADDRESS>:5555

Чтобы узнать IP-адрес вашего устройства, зайдите Settings > Wi-Fi > Advanced > IP Addressна ваше устройство или запустите adb shell netcfg.

Корень не требуется. Только одно устройство может быть отлажено за один раз.

Смотрите этот пост XDA .

Команда adbнаходится в platform-toolsпапке Android SDK.

Рибин Харидас
источник
2
На самом деле, вы можете подключить несколько устройств одновременно, если вы следуете правильному порядку. Просто установите tcpip на 5555 индивидуально для каждого телефона, затем выполните команду подключения для каждого телефона и вуаля, они все подключены к adb.
andreszs
Отладка происходит немного медленнее, если мой телефон подключен таким образом. Кроме того, иногда он засыпает, и это вызывает немедленное отключение.
Арон Лоринц
На некоторых устройствах задержка между командой adb tcpip и командой adb connect должна быть очень низкой, иначе она не работает. Кроме того, для меня это сработалоadb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
vhamon
61

Предположим, вы сохранили путь ADB в путь к среде Windows

  1. Активировать режим отладки в Android

  2. Подключите к ПК через USB

  3. Откройте тип командной строки: adb tcpip 5555

  4. Отключите планшет или смартфон от ПК

  5. Откройте тип командной строки: adb connect IPADDRESS(IPADDRESS - это DHCP / IP-адрес вашего планшета или смартфона, который вы можете найти по Wi-Fi -> текущая подключенная сеть)

Теперь в командной строке вы должны увидеть результат как: подключен к xxx.xxx.xxx.xxx:5555

MapleLover
источник
Спасибо за последовательность шагов и упоминание, когда именно нужно отключить компьютер.
Манджу
53

От adb --help:

connect <host>:<port>         - Connect to a device via TCP/IP

Кстати, это опция командной строки.

Попробуйте подключить телефон к Wi-Fi, а затем получить его IP-адрес от маршрутизатора. Это не будет работать в сотовой сети.

Порт 5554.

Натан
источник
1
Я пробовал это с 5555-5558 и теперь 5554, и это почему-то не работает. В основном из командной строки: adb kill-server adb connect 10.10.10.100:5554 с результатом * демон не работает. запуская его сейчас * * демон успешно запущен * не может подключиться к 10.10.10.100:5554 Я могу пропинговать ip устройства с рабочей станции dev. Когда выходные данные заявляют, что «демон запущен успешно», не должен ли он ссылаться на демона на устройстве? Возможно, он пытается использовать эмулятор? Как я могу убедиться, что демон работает на устройстве? спасибо
JDM
2
Вы должны сначала, adb tcpip portпоскольку по умолчанию отладка по usb. После последнего вы можете подключиться, connect host:portи это должно сработать
Эйден Стридом
буквально "adb tcpip port"? это просто возвращает строку «ошибка: устройство не найдено» - есть опечатка? Или я должен заменить что-то здесь?
BrainSlugs83
3
AHHH !! Разобрался, номер порта по умолчанию для CyanogenMod - 5555! ОТЛИЧНО. : D
BrainSlugs83
@ Майкл, он может работать в некоторых сотовых сетях, но их сетевые конфигурации в основном являются черными ящиками - вы не знаете, когда / если вы находитесь за брандмауэром, блокируются ли порты, происходит ли трансляция NAT и т. Д.
BrainSlugs83
45

Для пользователей Windows:

Шаг 1:
Вы должны включить опции разработчика в вашем телефоне Android.
Вы можете включить параметры разработчика, используя этот способ.
• Откройте «Настройки»> «О программе»> «Информация о программном обеспечении»> «Дополнительно».
• Затем нажмите «Номер сборки» семь раз, чтобы включить параметры разработчика.
• Вернитесь в меню «Настройки», и теперь вы сможете увидеть «Опции разработчика» там.
• Коснитесь его и включите USB-отладку из меню на следующем экране.

Шаг 2:

Откройте cmd и введите adb.
если вы обнаружите, что команда adb является недопустимой, вам нужно добавить путь к переменной среды.

• Сначала перейдите к папке с установленным SDK.
Следуйте по этому пути, и этот путь только для примера. D: \ Softwares \ Разработка \ Andoird \ SDK \ SDK \ платформенные инструменты \; D: \ Softwares \ Разработка \ Andoird \ SDK \ SDK \ инструменты;
• Теперь поиск в системе Windows расширенные настройки

введите описание изображения здесь

Откройте переменную среды.

введите описание изображения здесь

затем откройте путь и вставьте следующий путь, это пример.
Ваш путь SDK отличается от моего, пожалуйста, используйте ваш. D: \ Softwares \ Разработка \ Andoird \ SDK \ SDK \ платформенные инструменты \;
D: \ Softwares \ Разработка \ Andoird \ SDK \ SDK \ инструменты;

введите описание изображения здесь

Шаг 3:

Откройте cmd и введите adb. если вы по-прежнему видите, что команда adb является недопустимой, значит, ваш путь не задан правильно, следуйте инструкциям выше

введите описание изображения здесь

Теперь вы можете подключить свой телефон Android к ПК.

Откройте cmd и введите adb devices, и вы увидите свое устройство. Найти ваш телефон IP-адрес.

введите описание изображения здесь

Тип: - ADB TCP 5555

введите описание изображения здесь

Получить IP-адрес вашего телефона

adb shell netcfg

Сейчас же,

adb connect "IP address of your phone"

Теперь запустите ваш проект Android и, если вы не видите ваше устройство, введите еще раз adb connect IP адрес вашего телефона

введите описание изображения здесь

введите описание изображения здесь

Для пользователей Linux и macOS :

Шаг 1: откройте терминал и установите adb используя

sudo apt-get установить android-tools-adb android-tools-fastboot

Подключите телефон через USB-кабель к ПК. Введите следующую команду в терминале

adb tcpip 5555

Используя ADB, подключите свой IP-адрес телефона Android.

Убери свой телефон.

Рагхав Таккар
источник
36

С компьютера на некорневом устройстве

(Обратите внимание, что это также можно сделать с помощью рутированного устройства, но вы можете использовать оболочку на рутированном устройстве, которое не требует подключения USB)

Во-первых, откройте командную строку (CMD). Если вы используете Android Studio или IntelliJ, там есть консоль, которую вы можете использовать.

Если к пути добавлен adb, вы можете пропустить часть cd.


Если возможно, откройте местоположение SDK, щелкните правой кнопкой мыши и нажмите «Запустить командную строку здесь». Не у всех есть эта опция, поэтому вы должны также выполнять следующие команды:

Windows: измените диск (если применимо)

D: 

И получить доступ к инструментам SDK и платформы. Замените этот путь своим местоположением SDK:

cd /sdk/path/here/platform-tools

Теперь у вас есть доступ к мосту отладки Android.


Когда устройство подключено к компьютеру, выполните:

adb tcpip <port> 
adb connect <ip>:<port>

Где <port>находится порт, к которому вы хотите подключиться (по умолчанию это 5555), и <ip>IP-адрес устройства, к которому вы хотите подключиться.

Пожалуйста, обратите внимание: 5555порт по умолчанию, и просто запись IP-адреса соединяет его. Если вы используете собственный порт, вы можете хотя бы немного улучшить безопасность. Отладкой USB через Wi-Fi можно злоупотреблять, но только если устройство подключено к компьютеру, который хочет злоупотребить устройством. Использование порта не по умолчанию, по крайней мере, затрудняет подключение.

Если вы используете нестандартный порт, обязательно добавьте его после IP. Запись без порта соединяется с, 5555и если вы не использовали это соединение не будет установлено.

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

  • В зависимости от вашего устройства точные имена могут отличаться. Откройте настройки и перейдите в Об устройстве -> Статус -> IP-адрес

  • Используйте АБР, чтобы получить IP

Из консоли выполните:

adb shell ip -f inet addr show wlan0

И когда вы закончите с подключением, вы можете отключить устройство от компьютера, выполнив:

adb disconnect <ip>:<port>

Или нет IP, чтобы отключить все устройства. Если вы использовали пользовательский порт, вы должны указать, к какому порту подключаться . По умолчанию здесь также 5555.

Чтобы отключить порт (если это то, что вы хотите сделать), выполните эту команду с подключенным устройством:

adb usb

Или вы можете перезагрузить устройство, чтобы удалить подключение TCP

С компьютера на рутированном устройстве

Во-первых, вам нужен доступ к оболочке. Вы либо подключаете устройство с помощью USB-кабеля и используете, adb shellлибо загружаете приложение из Google Play, FDroid или другого источника.

Тогда вы делаете:

su
setprop service.adb.tcp.port <port>
stop adbd
start adbd

А чтобы подключить устройство, вы делаете как в нерутованной версии, делая adb connect <ip>:<port>.

И если вы хотите отключить порт и вернуться к прослушиванию USB:

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

Вы также можете использовать плагин для Android Studio, чтобы сделать это для вас (не помню название сейчас), а для пользователей с правами root также есть возможность загрузить приложение для Android, чтобы установить телефонное соединение (adb connect, вероятно, все еще требуется ).

Некоторые телефоны имеют настройку в параметрах разработчика (это относится к некоторым телефонам без рутирования, хотя, возможно, и к некоторым рутованным телефонам), что позволяет переключать ADB через Wi-Fi с самого устройства без рута или подключения к компьютеру для его запуска. Хотя есть несколько телефонов, которые имеют это

Zoe
источник
adb shell ip -f inet addr show wlan0 Нужно ли заменить IP-адрес и поддержку порта в другом месте?
Майкл
не в этой линии. Это оболочка для получения IP. Ничто там не должно быть заменено в этой строке
Zoe
33

Мне нужно было получить как USB и TCPIP работает для АБР (не спрашивайте), так что я сделал следующее ( с использованием направлений других выложили из XDA-разработчиков)

Использование adb shell:

su
#Set the port number for adbd
setprop service.adb.tcp.port 5555

#Run the adbd daemon *again* instead of doing stop/start, so there
#are two instances of adbd running.
adbd &

#Set the port back to USB, so the next time ADB is started it's
#on USB again.
setprop service.adb.tcp.port -1

exit
transistor1
источник
Не работает: adbd не найден. adbd обычно запускается через start adbd. Но, может быть, в какой-то папке есть скрипт / исполняемый файл?
KrisWebDev
1
На моем gnex, это так /sbin/adbd. Это может варьироваться в зависимости от телефона. Конечно, вы должны быть рутированы ... Если вы не рутированы, вы не сможете получить доступ к / sbin.
транзистор1
32

Для подключения планшета используйте TCP-порт. Убедитесь, что ваша система и устройство подключены к одной сети.

  1. Откройте консоль cmd.exe
  2. Тип adb tcpip 5555
  3. Перейдите в Система -> Вариант разработки -> Отладка USB -> Снимите флажок для соединения TCPIP
  4. Введите adb connect 192.168.1.2это IP-адрес вашего устройства
  5. Подключено к 192.168.1.2

Подключен с использованием переадресации портов Попробуйте выполнить переадресацию портов,

adb forward tcp: <PC port>tcp:<device port>

подобно:

ADB вперед TCP: 5555 TCP: 5555.

C: \ Users \ abc> adb forward tcp: 7612 tcp: 7612

C: \ Users \ abc> adb tcpip 7612 перезапускается в режиме TCP порт: 7612

C: \ Users \ abc> adb connect 10.0.0.1:7612

подключен к 10.0.0.1:7612

Если вы получили сообщение об ошибке: устройство не найдено, подключите USB-устройство к системе, затем выполните ту же процедуру.
для корневого устройства

setprop service.adb.tcp.port 5555
stop adbd
start adbd
rinkesh
источник
2
В консоли напишите suсначала, чтобы получить root-консоль.
Мрачное
30

Я вообще не знаю, как подключить устройство без USB-подключения, но если вам удастся подключить его, возможно, на другом компьютере, вы можете переключить adbd в режим TCP, выполнив команду

adb tcpip <port>

с терминала и подключиться к вашему устройству через Wi-Fi с любого компьютера в сети:

adb connect <ip>:<port>

Возможно также возможно переключиться в режим TCP с терминала на устройстве.

Christoph
источник
Из всех сложных ответов, которые получили массовые отклики, этот восьмилетний ответ является самым простым и работает. Просто введите «adb connect <ip>: 5555», и он будет доступен для развертывания.
RogerW
29

Сначала вы должны подключить устройство через USB

Затем подключите ваше устройство к WIFI и получите IP-адрес. В то время как по-прежнему подключаться через USB введите это в командной строке или через Android Studio Terminal

adb tcpip 5555
adb connect <device IP>:5555

Вы увидите эти сообщения:

restarting in TCP mode port: 5555
connected to 172.11.0.16:5555

Теперь отсоедините USB-кабель, и вы по-прежнему будете видеть ваш logcat как обычно.

Выполнено. наслаждаться

Joolah
источник
Это сработало. Однако. После выполнения этих шагов я больше не могу переключиться обратно на эмулятор. Предложения?
Тим Скотт
Вам нужно перезапустить свой adb с помощью: <adb kill-server>, а затем <adb start-server>
Joolah
21

Если вы хотите легко подключить ваше устройство для запуска, отладки или развертывания приложений Android через WiFi, вы можете использовать разработанный мной плагин IntelliJ с открытым исходным кодом. Вот код и вот плагин готов к использованию.

Использование довольно просто. Здесь у вас есть подарок:

введите описание изображения здесь

Педро Висенте Гомес Санчес
источник
Эта ошибка возникает: "команда adb не найдена. Проверьте установку Android SDK.
rostamiani
1
Вы должны объявить переменную среды с именем ANDROID_HOME. Но у меня есть PR, ожидающий рассмотрения, чтобы избежать этого. С версией 1.2 я собираюсь опубликовать на следующей неделе плагин будет работать только с установленным IntelliJ :)
Педро Висенте Гомес Санчес
Я использую Mac, не видите значок в AS? Нужно ли сначала что-то делать вручную?
powder366
1
Я уже опубликовал новую версию, где переменная окружения ANDROID_HOME больше не нужна. @ powder366 вам нужно установить плагин из магазина плагинов IntelliJ, чтобы установить его вручную. Все инструкции, необходимые для установки и использования плагина, находятся в файле readme проекта, посмотрите github.com/pedrovgs/AndroidWiFiADB
Педро Висенте Гомес Санчес
@ PedroVicenteGómezSánchez Спасибо. Я выбрал неправильный плагин, существует еще один плагин с похожим названием ...
powder366
11

Как сказал Брайан:

Согласно посту на xda-developers, вы можете включить ADB через WiFi с устройства с помощью команд

setprop service.adb.tcp.port 5555

остановить adbd

начать adbd

И вы можете отключить его и вернуть ADB для прослушивания по USB с

setprop service.adb.tcp.port -1

остановить adbd

начать adbd

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

adb tcpip 5555

adb connect 192.168.0.101:5555

Чтобы сказать ADB демон вернуться к прослушиванию через USB

ADB USB

На Android Market также есть несколько приложений, которые автоматизируют этот процесс.

Это работает. Вам просто нужно получить доступ к оболочке Android и введите эти команды ...

На Маркете есть еще одно (более простое) решение: adbWireless автоматически настроит ваш телефон.

Рут необходим! для обоих...

конечно
источник
2
... но только если телефон рутирован.
android.weasel
Asus Transformer 301 - Работа без рута не требуется
Эйден Стридом
9
adb tcpip 5555

Странно, но это работает только для меня, если у меня подключен USB-кабель, тогда я могу отключить USB и пойти на это со всем остальным ADB.

и то же самое при возвращении на USB,

adb usb

будет работать только если USB подключен.

Неважно, если я выпущу

setprop service.adb.tcp.port 5555

или

setprop service.adb.tcp.port -1

затем остановите и запустите adbd, мне все еще нужен USB-кабель или он не работает.

Так что, если бы мой ADB через USB не работал, держу пари, что я не смог бы включить ADB и через WiFi.

Крис
источник
8

Чтобы переключаться между режимами TCP и USB с помощью одной команды, вы можете добавить это к /init.rc:

on property:service.adb.tcp.port=*
    restart adbd

on property:service.adb.tcp.enable=1
    setprop service.adb.tcp.port 5555

on property:service.adb.tcp.enable=0
    setprop service.adb.tcp.port -1

И теперь вы можете использовать свойство service.adb.tcp.enableдля включения или отключения прослушивания на порту 5555. Запустите, netstatчтобы проверить, прослушивает ли он. Как вы можете видеть, это также сработает, если вы захотите изменить service.adb.tcp.portвручную.

errordeveloper
источник
8

Функция утилиты Bash:

function adb-connect-to-wifi {
    ip="$(adb shell ip route | awk '{print $9}')"
    port=5555
    adb tcpip ${port}
    adb connect ${ip}:${port}
}
11
источник
7

ШАГ 1.

Убедитесь в том , как ваш ADB хост - компьютер и Android устройства находятся на одной и той же Wi - Fi сети.

ШАГ 2.

Подключите устройство Android к компьютеру с помощью USB-кабеля. Как только вы это сделаете, ваш хост-компьютер обнаружит ваше устройство, и ADB начнет работать в режиме USB на компьютере. Вы можете проверить подключенные устройства, в adb devicesто время как убедитесь, что adb работает в режиме USB, выполнив adb usb.

$ adb usb
restarting in USB mode
$ adb devices
List of devices attached
ZX1D63HX9R  device


ШАГ 3.

Перезапустите adb в режиме tcpip с помощью этой команды:

$ adb tcpip 5556
restarting in TCP mode port: 5556


ШАГ 4.

Узнайте IP-адрес устройства Android. Есть несколько способов сделать это:

  • ПУТЬ: 1 Перейдите в Настройки -> О телефоне / планшете -> Состояние -> IP-адрес.
  • ПУТЬ: 2 Перейти к списку доступных сетей Wi-Fi. Тот, к которому вы подключены, нажмите на него и узнайте свой IP.
  • ПУТЬ: 3 Попробуйте $ adb shell netcfg.

Теперь, когда вы знаете IP-адрес вашего устройства, подключите к нему хост adb.

$ adb connect 192.168.0.102:5556
already connected to 192.168.0.102:5556
$ adb devices
List of devices attached
ZX1D63HX9R  device
192.168.0.102:5556  device


ШАГ 5.

Отключите USB-кабель, и вы должны быть подключены к вашему устройству. Если вы не видите его, adb devicesпросто переподключитесь, используя команду предыдущего шага:

$ adb connect 192.168.0.102:5556
connected to 192.168.0.102:5556
$ adb devices
List of devices attached
192.168.0.102:5556  device

Либо вам сейчас пора, либо вам нужно убить свой сервер ADB, выполнив adb kill-server и повторив все шаги еще раз.

Надеюсь, это поможет!


Ссылка:

Эдди
источник
Кроме того, вы можете получить IP-адрес вашего устройства с помощью этого сценария в Unix: adb shell ip -f inet addr show wlan0 | grep inet | echo -n $ (grep -Eo '[0-9 \. \ /]') | echo -n $ (grep -Eo '^ [^ \ /] *') | sed 's / // g'
ahsan.dev
@ Eddy Одно сомнение, что и система, и мобильный телефон / планшет должны быть подключены через Wi-Fi, либо система, подключенная через локальную сеть, и планшет, подключенный с помощью маршрутизатора WIFi той же сети. Пожалуйста, уточните это
iSrinivasan27
@ i-Droid Я не знаю, почему оба должны соединяться в одной сети. может быть, АБР использует специальный сетевой протокол маршрутизации. Я понятия не имею и не имею глубоких исследований об этом. Если у вас есть интерес к нему, добро пожаловать, чтобы уточнить это и поделиться со мной, спасибо!
Эдди
6

Вот шаги, которые я выполнил, и это сработало для меня,

  1. Оболочка adb ifconfig (отсюда можно получить IP-адрес устройства)

  2. adb tcpip 7777 (подключите adb к какому-либо порту)

  3. adb connect "ipaddress": 7777

Том Тейлор
источник
5

Вы также можете использовать переадресацию локального порта SSH. Но это все еще вовлекает кабель USB. Подключите телефон с помощью USB к компьютеру (хосту) с запущенным sshd. На удаленном (гостевом) компьютере запустите клиент SSH, способный к переадресации / туннелированию портов. Пример:

plink -L 5037:localhost:5037 <host_IP_address>

Я использую эту конструкцию для подключения моего устройства к виртуальной машине. Eltima USB to Ethernet не была достаточно стабильной (таймауты во время отладки).

SSH туннелирование работает бесплатно и является более надежным.

Рон
источник
4

Я нахожу другие ответы запутанными. Гораздо проще использовать adbWireless:

http://ppareit.github.com/AdbConnect/

Просто установите приложение на свой телефон, чтобы переключить отладку по Wi-Fi, установите плагин Eclipse, и все готово.


источник
Какой плагин Eclipse вы имеете в виду? Редактировать: фигу. Нашел по ссылке в вашем ответе.
ArtOfWarfare
Это только root, хотя
Зои
3

Я собрал пакетный файл для автоматического включения и подключения ADB через TCP к устройству, подключенному через USB. При этом вам не нужно вводить IP вручную.

@echo off
setlocal

REM Use a default env variable to find adb if possible
if NOT "%AndroidSDK%" == "" set PATH=%PATH%;%AndroidSDK%\platform-tools

REM If off is first parameter then we turn off the tcp connection.
if "%1%" == "off" goto off

REM Set vars
set port=%1
set int=%2
if "%port%" == "" set port=5557
if "%int%" == "" set int=wlan0

REM Enable TCP
adb -d wait-for-device tcpip %port%

REM Get IP Address from device
set shellCmd="ip addr show %int% | grep 'inet [0-9]{1,3}(\.[0-9]{1,3}){3}' -oE | grep '[0-9]{1,3}(\.[0-9]{1,3}){3}' -oE"
for /f %%i in ('adb wait-for-device shell %shellCmd%') do set IP=%%i

REM Connect ADB to device
adb connect %IP%:%port%

goto end

:fail
echo adbWifi [port] [interface]
echo adbWifi off
goto end

:off
adb wait-for-device usb

:end
Felizk
источник
3

Вот расширение ответа Брайана с помощью Bluetooth:

  1. В Linux используйте Blueman для совместного использования ПК через Интернет с вашего устройства через Bluetooth:

    $ sudo apt-get install blueman
    $ blueman-manager
    Pair them: Search devices after enabling Bluetooth
    on your phone and making it visible
    $ blueman-services
    Network > [X] Network Access Point (NAP)
    Your Phone > Settings > Bluetooth > Paired Device > [X] Internet access
  2. Используйте сеть Bluetooth для команд ADB:

    $ adb tcpip 5555
    $ adb connect $(adb shell ip -f inet addr show bt-pan | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n1):5555

После того, как вы вернулись в режим USB:

$ adb disconnect
$ adb usb

Примечание. Bluetooth 3.0 и 4.0 могут развивать скорость до 24 Мбит / с .

Wernight
источник
3

Шаги:

  1. su - Переключиться на супер пользователя.
  2. setprop service.adb.tcp.port 5555 - Чтобы указать порт TCP - 5555 номер порта здесь
  3. stop adbd - Чтобы остановить сервис ADBD.
  4. start adbd - запустить сервис adbd.

это прекрасно работает с sshмоего компьютера с Windows

Я пытаюсь сделать это при загрузке на моем мобильном Cyanogen или запустить это с Plink. С plink я не могу запустить оболочку с правами su ... Команда sudo или su не работает. При загрузке я не знаю, как это работает! Моя оболочка работает из ssh с su -c "sh /storage/sdcard1/start_adb.sh"последними 3 командами (без su -)

Спасибо

beguinner
источник
2

Еще одно замечание (выучил нелегкий путь): вам не нужно одновременно активировать VPN-соединение вашей компании ...

TuomasG
источник
2

Вам нужно сделать следующие вещи:

  • Сначала добавьте ADB в путь вашей среды.
  • От вашего типа CLI эта команда adb connect YOUR_DEVICE_IP: PORT_NUMBER (пример adb connect 192.168.100.100:5555 )
noman404
источник
2

Есть два способа подключения устройства Android с ADB через TCP?

Первый способ

Следуйте этим шагам

Сначала используйте команду ниже, чтобы получить IP-адрес вашего устройства

adb shell ifconfig

ВЫХОД вышеуказанной команды

wlan0     Link encap:UNSPEC    Driver icnss
          inet addr:XXX.XXX.X.XX  Bcast:XXX.XXX.X.XXX

С помощью указанной выше команды вы найдете IP-адрес подключенного устройства.

Теперь используйте команду ниже

adb tcpip 5555

Приведенная выше команда перезапустит этот порт TCP: 5555

Теперь используйте команду ниже для подключения вашего устройства

adb connect XXX.XXX.X.XXX:5555
            ^^^ ^^^ ^ ^^^
        IP Address of device

Второй способ

Вы можете использовать Android Studio Plugin Android device with ADB

Android WiFi ADB - плагин IntelliJ / Android Studio

Плагин IntelliJ и Android Studio создан для быстрого подключения вашего Android-устройства через WiFi для установки, запуска и отладки ваших приложений без подключения к USB. Нажмите одну кнопку и забудьте о своем USB-кабеле

Пожалуйста, проверьте эту статью для получения дополнительной информации

Подключите Android-устройство к Wi-Fi в Android Studio

Нилеш Ратод
источник
2

Я структурирован в том же вопросе, но простой взлом adb reverse tcp:<PORT> tcp:<PORT> у меня сработал . Это позволяет системе принимать запросы TCP.

Спасибо за чтение

Радха Манохар
источник
1

Используйте приложение adbwireless, чтобы включить телефон, затем используйте adb connect с компьютера Windows, чтобы поговорить с ним. Приложение adbwireless на телефоне расскажет вам, как к нему подключиться, предоставив IP-адрес и все.

Гораздо менее забавная альтернатива - подключиться через USB, указать телефону использовать TCPIP через adb tcpip 5555, затем отключить USB, а затем использовать adb connect. Это гораздо сложнее, потому что таким образом вы сами должны определить IP-адрес телефона (adbwireless сообщает вам IP), вам нужно подключиться через USB и запустить adb tcpip (adbwireless об этом тоже позаботится).

Итак: установите adbwireless на свой телефон. Используй это. Возможно, я делаю это обычно на Linux и на Windows.

ConcernedParty
источник
1

В моей системе это выглядело так:

На моем Android-устройстве в моей оболочке Linux простой «ifconfig» не дал мне мой IP-адрес. Я должен был напечатать:

ifconfig eth0

-или-

netcfg

чтобы получить мой IP-адрес. (Я знал, что eth0 был настроен, потому что я видел это в моем dmesg.) Затем я сделал:

setprop service.adb.tcp.port -1

остановить adbd

начать adbd

Затем на моем Win7 box (тот, на котором работает Eclipse 3.7.1). Я открыл командную строку для

\ Android-SDK \ платформенные инструменты>

без запуска в качестве администратора. Тогда я сделал

ADB Connect 12.345.678.90

Я никогда не ставил порт. Если бы я сделал

adb tcpip 5555

он сказал, что не может найти устройство, тогда ничего не появилось в моем списке "adb devices". Т.е. это работает, только если я НЕ делаю команду tcpip выше.

Я могу сделать «оболочку adb» и связываться с моим устройством Android. Но мое Android-устройство сейчас не отображается на вкладке «Выполнить» - «Выполнить настройки» -> «Цель». С другой стороны, если я оставлю Target Tab установленным автоматически. Затем, когда я запускаю свое приложение через Run-> Run, оно работает на моем устройстве Android, даже если мое устройство Android даже не указано в качестве одной из моих целей.

Джо Си
источник
1

Я получил это работает. Не использовал USB-кабель.

  • Приложение AdB Wireless.
  • Запустить его. Это установит IP и порт; Тогда в дос

    cd C:\Program Files\Android\android-sdk\platform-tools adb connect "192.168.2.22:8000 "enter"

Связаны.

подветренный
источник