How to connect multiple Android devices with ADB over TCP · GitHub

adbwireless Обзоры

From your device, if it is rooted

According to a post on xda-developers, you can enable ADB over Wi-Fi from the device with the commands:

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

And you can disable it and return ADB to listening on USB with

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

Old answer

This would appear to be a bug within ADB, introduced in December 2022 or January 2022. I believe this relates to recent changes to this else statement in socket_spec.cpp.

} else {
    std::string addr(spec.substr(4));
    port_value = -1;

    // FIXME: ParseNetAddress rejects port 0. This currently doesn't hurt, because listening
    //        on an address that isn't 'localhost' is unsupported.
    if (!android::base::ParseNetAddress(addr, &hostname_value, &port_value, serial, error)) {
        return false;
    }

    if (port_value == -1) {
        *error = "missing port in specification: ";
        *error  = spec;
        return false;
    }
}

If a port value is not specified, the variable port_value is initialised at -1 and does not change. This value is not altered by android::base::ParseNetAddress either. If the ParseNetAddress check passes then we will always fall into the error-catching statement immediately afterwards.

Step 1:

Enable Developer options in your Android phone using this way.

  • Open Settings> About> Software Information> More.
  • Then tap “Build number” seven times to enable Developer options.
  • Go back to Settings menu and now you’ll be able to see “Developer options” there.
  • Tap it and turn on USB Debugging from the menu on the next screen.

Step 2:

Open your cmd and type adb.
If you find that the adb is not a valid command then you have to add a path to the environment variable.

  • First go to you SDK installed folder. Follow this path as an example.
    ““
    D:softwaresDevelopmentAndoirdSDKsdkplatform-tools; D:softwaresDevelopmentAndoirdSDKsdktools;
    “`
  • Now search on windows system advanced setting
  • Open the Environment variable.
  • Then open the “PATH” variable and paste the previous example path to its variable value.
  • NOTE: You SDK path is different from mine please use yours.
    Now you can connect your android phone to PC.

Step 3:

Using the device name listed above, get the IP of your Android device (if you know you can skip this step)

$ adb -s LGV498b9cacc1 shell ip -f inet addr show wlan0

22: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    inet 192.168.1.185/24 brd 192.168.1.255 scope global wlan0

Step 5:

Connect to your Android device IP address.

$ adb -s LGV498b9cacc1 connect 192.168.1.185:5559

connected to 192.168.1.185:5559

Step 6:

Verify if the device was added to the list:

$ adb devices

List of devices attached
192.168.1.185:5559      device
LGV498b9cacc1   device
192.168.1.187:5558      device
192.168.1.184:5557      device
192.168.1.186:5556      device
192.168.1.143:5555      device

Now you can remove your phone.

Step 7:

Verify if the device was added to the list:

$ adb devices

List of devices attached
192.168.1.185:5559      device
LGV498b9cacc1   device
192.168.1.187:5558      device
192.168.1.184:5557      device
192.168.1.186:5556      device
192.168.1.143:5555      device

Now you can remove your device and run your Android project.

Update

This bug has now been fixed as of ADB version 1.0.41, which is part of Platform Tools version 29.0.4. The fix for the bug was committed on 31st July 2022:

Необходимые условия

Устройство должно быть доступно по сети с компьютера. В простейшем
случае – устройство и компьютер должны быть подключены к одной WiFi
точке.

Ответ 1

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

Ответ 12

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

Затем подключите свое устройство к WIFI и получите IP-адрес.
Пока все еще подключайтесь через usb-тип в командной строке или через терминал Android Studio

adb tcpip 5555
adb connect <device IP>:5555

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

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

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

Готово. Наслаждайтесь

Ответ 13

Если вы хотите легко подключить свое устройство для запуска, отладки или развертывания приложений Android через Wi-Fi, вы можете использовать плагин IntelliJ с открытым исходным кодом, который я разработал. Здесь – код и здесь плагин готов к использованию.

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

Ответ 16

Чтобы переключиться между режимами 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 вручную.

Ответ 18

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

function adb-connect-to-wifi {
    ip="$(adb shell ip route | awk '{print $9}')"
    port=5555
    adb tcpip ${port}
    adb connect ${ip}:${port}
}

Ответ 19

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

plink -L 5037:localhost:5037 <host_IP_address>

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

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

Ответ 20

Я нахожу, что другие ответы сбивают с толку. Намного проще использовать adbWireless:

Ответ 21

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

Ответ 22

Здесь расширение для Брайана отвечает с помощью Bluetooth:

  • В 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
    
  • Используйте сеть 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 Мбит/с.

Ответ 23

Шаги:

  • su – Чтобы переключиться на суперпользователя.
  • setprop service.adb.tcp.port 5555 – Чтобы указать порт tcp – 5555 – номер порта здесь
  • stop adbd – Чтобы остановить службу adbd.
  • start adbd – Запустить службу adbd.

это отлично работает с ssh с моего ПК на ПК

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

Спасибо

Ответ 24

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

Ответ 25

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

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

Ответ 26

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

  • приложение adb wireless.
  • Запустите его. Это установит ip и порт; Затем в dos

    cd C:Program FilesAndroidandroid-sdkplatform-tools adb connect "192.168.2.22:8000 "enter"
    

Connected.

Ответ 27

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

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

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

Ответ 28

В моей системе это было так:

На моем устройстве Android в моей Linux-оболочке простой “ifconfig” не дал мне мой IP-адрес. Мне пришлось набирать:

ifconfig eth0

-или –

netcfg

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

setprop service.adb.tcp.port -1

остановить adbd

начать adbd

Затем на моем ящике Win7 (тот, который запускает Eclipse 3.7.1). Я открыл командную строку для

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

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

adb connect 12.345.678.90

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

adb tcpip 5555

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

Я могу сделать “оболочку adb” и запутаться с моим Android-устройством. Но мое Android-устройство не отображается на моей вкладке Run- > Run Configurations- > Target прямо сейчас. С другой стороны, если я держу вкладку “Цель” настроенной на автоматическую.

Ответ 3

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

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

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

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

Ответ 30

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

Для Windows

Наличие USB-доступа после

Не требуется root

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

Получите ip телефона, как предписано brian (не нужно, если вы делаете горячую точку со своего телефона)

adb shell ip -f inet addr show wlan0

Открыть блокнот

Напишите эти

Ответ 6

От adb –help:

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

Это опция командной строки.

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

Порт 5554.

Ответ 8

Мне нужно было работать как USB и TCPIP для ADB (не спрашивайте), поэтому я сделал следующее (используя указания другие отправили от 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

Ответ 9

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

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

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

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

как:

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

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

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

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

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

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

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

D:

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

D:/sdk/path/here/platform-tools

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

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

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

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

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

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

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

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

adb shell ip -f inet addr show wlan0

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

Во-первых, вам нужен доступ к оболочке. Вы либо подключаете устройство с помощью 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

С компьютера, если у вас уже есть usb-доступ (не требуется root)

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

adb tcpip 5555 adb connect 192.168.0.101:5555

Обязательно замените 192.168.0.101 на IP-адрес, который фактически назначен вашему устройству.

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

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

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

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

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

adb shell ip -f inet addr show wlan0

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

adb usb

Шаг 2. определение ip адреса

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

На самом устройстве в эмуляторе терминала можно выполнить:

Либо можно в настройках WiFi выбрать пункт “Advanced” и посмотреть IP в самом низу страницы.

Шаг 4.

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

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

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

$ 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

Оцените статью
Huawei Devices
Добавить комментарий