提问人:JDM 提问时间:4/9/2010 最后编辑:Peter MortensenJDM 更新时间:5/3/2020 访问量:1571773
如何通过 TCP 使用 ADB 连接到 Android?[关闭]
How can I connect to Android with ADB over TCP? [closed]
问:
我正在尝试在摩托罗拉 Droid 上调试应用程序,但我在通过 USB 连接到设备时遇到了一些困难。我的开发服务器是在 Hyper-V 中运行的 Windows 7 64 位 VM,因此我无法通过来宾中的 USB 或主机直接连接。
我安装了几个不同的 USB-over-TCP 解决方案,但由于 ADB 监视器反复报告“devicemonitor 无法启动监控”,因此连接似乎存在问题。有没有办法使用网络而不是 USB 连接或其他可行的选项直接从开发计算机上的客户端连接到设备上的守护程序?
答:
从:adb --help
connect <host>:<port> - Connect to a device via TCP/IP
顺便说一句,这是一个命令行选项。
您应该尝试将手机连接到Wi-Fi,然后从路由器获取其IP地址。它不会在蜂窝网络上工作。
端口为 5554。
评论
adb tcpip port
connect host:port
在最终放弃了通过TCP直接连接到设备的可能性之后,我最终让Eltima USB转以太网软件正常工作。我几乎已经决定不可能通过网络连接到设备,只能连接到模拟器。
评论
我不知道如何在没有任何 USB 连接的情况下连接设备,但如果您设法在另一台计算机上连接它,您可以通过发出将 adbd 切换到 TCP 模式
adb tcpip <port>
从终端,然后通过以下方式从网络上的任何 PC 通过 wifi 连接到您的设备:
adb connect <ip>:<port>
也许也可以从设备上的终端切换到TCP模式。
评论
手动流程
从您的设备,如果它已植根
根据 xda-developers 上的一篇文章,您可以使用以下命令从设备启用 ADB over 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访问(无需root)
如果您已经拥有 USB,则切换到使用 Wi-Fi 会更容易。从通过 USB 连接设备的计算机上的命令行,发出以下命令
adb tcpip 5555
adb connect 192.168.0.101:5555
请务必替换为实际分配给设备的 IP 地址。完成后,您可以通过运行以下命令断开与 adb tcp 会话的连接:192.168.0.101
adb disconnect 192.168.0.101:5555
您可以通过两种方式查找平板电脑的 IP 地址:
手动 IP 发现:
进入 Android 的 WiFi 设置,单击操作栏中的菜单按钮(垂直省略号),点击高级并查看屏幕底部的 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需要较少的权限。
评论
adb tcipip 5555
adb connect ...
adb tcpip <port>
仍然需要将任一属性设置为(在模拟器模式下运行)、设置为 0(即 root 设备)或设置为 1。 如果上述任何一项都不满足,则根本不会打开 TCP/IP 连接。请参阅有关变量的 netmite.com/android/mydroid/system/core/adb/adb.c 部分。 在我的无根 2.3.7 Android 上根本没有进入 TCP/IP 模式。ro.kernel.qemu
ro.secure
ro.debuggable
service.adb.root
adbd
adb_main
secure
adbd
如果您的手机已扎根,这非常简单。
从 Google Play 下载终端模拟器(有很多免费的)。确保您的 Android 设备已连接到您的 Wi-Fi 并获取 Wi-Fi IP 地址。打开终端程序并键入:
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)
adb 现在应该说您已连接。
注意:如果速度太快而无法发出连接命令,则可能会失败。因此,在你说这不起作用之前,至少尝试两次,间隔五秒钟。
评论
adb tcpip 5555
adb connect myIP:5555
waiting for debugger
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 over usb 不起作用,我敢打赌我也无法通过 WiFi 启用 ADB。
正如布莱恩所说:
根据 xda-developers 上的一篇文章,您可以使用以下命令从设备启用 ADB over WiFi
setprop service.adb.tcp.port 5555
停止 adbd
启动 adbd
您可以禁用它并返回 ADB 以在 USB 上收听
setprop service.adb.tcp.port -1
停止 adbd
启动 adbd
如果您已经有 USB 访问权限,则切换到使用 WiFi 会更容易。从通过 USB 连接设备的计算机上的命令行,发出以下命令
亚行 TCPIP 5555
adb 连接 192.168.0.101:5555
告诉 ADB 守护程序返回到通过 USB 侦听
adb usb 接口
Android Market 上也有几个应用程序可以自动执行此过程。
它有效。您只需要访问 android shell 并键入这些命令......
市场上还有另一种(更简单的)解决方案:adbWireless,它会自动设置您的手机。
Root是必需的!对于两者...
评论
您还可以使用 SSH 本地端口转发。但它仍然涉及 USB 电缆。使用 USB 将手机连接到运行 sshd 的计算机(主机)。在远程(来宾)PC 上,启动能够进行端口转发/隧道的 SSH 客户端。例:
plink -L 5037:localhost:5037 <host_IP_address>
我使用此结构将我的设备连接到虚拟机。Eltima USB转以太网不够稳定(调试期间超时)。
SSH 隧道免费工作,更可靠。
我确实做到了这一点。没有使用任何USB电缆。
- 应用程序 adb 无线。
运行它。这将设置 ip 和 port;然后在dos中
cd C:\Program Files\Android\android-sdk\platform-tools adb connect "192.168.2.22:8000 "enter"
连接。
使用 adbwireless 应用程序启用手机,然后从 Windows 计算机使用 adb connect 与其通话。手机上的 adbwireless 应用程序会告诉您如何连接到它,并提供 IP 地址和所有内容。
不太有趣的选择是通过 USB 连接,通过 adb tcpip 5555 告诉手机使用 tcip,然后断开 USB,然后使用 adb connect。这要困难得多,因为这样你必须自己找出手机的IP地址(adbwireless告诉你IP),你必须通过USB连接,你必须运行adb tcpip(adbwireless也会处理这个问题)。
所以:在手机上安装adbwireless。使用它。这是可能的,我经常在 Linux 和 Windows 上这样做。
我需要让 USB 和 TCPIP 都为 ADB 工作(不要问),所以我做了以下操作(使用其他人从 xda-developers 发布的说明)
用: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
评论
/sbin/adbd
在我的系统上,它是这样的:
在我的 Linux shell 中的 Android 设备上,一个简单的“ifconfig”没有给我 IP 地址。我不得不输入:
ifconfig eth0
-或-
网CFG
获取我的 IP 地址。(我知道 eth0 是配置的,因为我在我的 dmesg 中看到了它。然后我做了:
setprop service.adb.tcp.port -1
停止 adbd
启动 adbd
然后在我的 Win7 机器(运行 Eclipse 3.7.1 的机器)上。我打开了命令提示符
\android-sdk\platform-tools>
无需以管理员身份运行。然后我做了一个
adb 连接 12.345.678.90
我从来没有放过端口。如果我做了一个
亚行 TCPIP 5555
它说它找不到该设备,然后我的“adb 设备”列表中没有出现任何内容。即,它仅在我不执行上面的 tcpip 命令时才有效。
我可以做一个“adb shell”并弄乱我的Android设备。但是我的Android设备现在没有出现在我的“运行->运行配置->目标”选项卡中。另一方面,如果我将“目标选项卡”设置为“自动”。然后,当我通过 Run->Run 运行我的应用程序时,它确实在我的 Android 设备上运行,即使我的 Android 设备甚至没有被列为我的目标之一。
要仅使用一个命令在 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
现在,您可以使用 property 来启用或禁用对端口 5555 的侦听。运行以检查它是否正在侦听。如您所见,如果您确实希望手动更改,它也会触发。service.adb.tcp.enable
netstat
service.adb.tcp.port
我发现其他答案令人困惑。adbWireless 的使用要简单得多:
http://ppareit.github.com/AdbConnect/
只需在手机上安装一个应用程序,即可通过 wifi 切换调试,安装一个 eclipse 插件,即可完成。
评论
我整理了一个批处理文件,用于通过TCP自动启用ADB并将其连接到通过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
使用 TCP 端口连接平板电脑。 确保您的系统和设备连接到同一网络。
- 打开控制台 cmd.exe
- 类型
adb tcpip 5555
- 转到系统 -> 开发选项 -> USB调试 --> 取消选中TCPIP连接
- 键入这是您的设备 IP 地址
adb connect 192.168.1.2
- 连接到 192.168.1.2
使用端口转发进行连接尝试做端口转发,
adb 正向 tcp: tcp:<PC port>
<device port>
喜欢:
adb forward tcp:5555 tcp:5555。
C:\Users\abc>adb 转发 tcp:7612 tcp:7612
C:\Users\abc>adb tcpip 7612 在 TCP 模式下重新启动端口:7612
C:\Users\abc>adb 连接 10.0.0.1:7612
连接到 10.0.0.1:7612
如果您收到消息错误:找不到设备,请将 USB 设备连接到系统,然后按照相同的步骤操作。
对于已取得 root 权限的设备
setprop service.adb.tcp.port 5555
stop adbd
start adbd
评论
su
假设您已将 adb 路径保存到 Windows 环境路径中
在 Android 中激活调试模式
通过USB连接到PC
打开命令提示符类型:
adb tcpip 5555
断开平板电脑或智能手机与电脑的连接
打开命令提示符类型:(IPADDRESS 是平板电脑或智能手机的 DHCP/IP 地址,您可以通过 Wi-Fi 找到该地址 - >当前连接的网络)
adb connect IPADDRESS
现在在命令提示符下,您应该看到如下结果:已连接到 xxx.xxx.xxx.xxx:5555
评论
我只是按照以下步骤操作,它开始工作,这样我就可以连接到我的Android设备。
步骤1:在Android设备中打开终端窗口并执行以下命令。
- su -- 切换到超级用户。
- setprop service.adb.tcp.port 5555 - 指定 tcp 端口 - 5555 是此处的端口号
- stop adbd - 停止 adbb 服务。
- start adbd - 启动 adbd 服务。
第 2 步:通过 ADB,执行以下命令。(从配置ADB的路径)
adb connect 10.10.10.50:5555 - 这里 10.10.10.50 是 android 设备的 IP 地址,5555 是端口号。
以下是 Brian 使用蓝牙回答的扩展:
在 Linux 上,使用 Blueman 通过蓝牙与您的设备共享 PC 互联网:
$ 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
将蓝牙网络用于 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
注意:蓝牙 3.0 和 4.0 最高可达 24 Mbit/s。
步骤:
su
-- 切换到超级用户。setprop service.adb.tcp.port 5555
- 指定 tcp 端口 - 此处的端口号为 5555stop adbd
- 停止 adbd 服务。start adbd
- 启动 adbd 服务。
这与我的 Windows PC 完美配合ssh
我尝试在我的 cyanogen 手机上启动时执行此操作或使用 plink 启动它。使用 plink 我无法使用 su 启动 shell,对吧......sudo 或 su 命令不起作用。在启动时,我不知道它是如何工作的!
我的 shell 程序使用 ssh 与最后 3 个命令(没有 su --)一起工作su -c "sh /storage/sdcard1/start_adb.sh"
谢谢
通过 USB 连接设备并确保调试正常工作,然后运行:
adb tcpip 5555 adb connect <DEVICE_IP_ADDRESS>:5555
断开 USB 并继续无线调试。
完成后,想要切换回USB调试时,请运行:
adb -s <DEVICE_IP_ADDRESS>:5555
要查找设备的 IP 地址,请转到 在您的设备上或运行 。Settings > Wi-Fi > Advanced > IP Address
adb shell netcfg
无需root。一次只能调试一个设备。
请参阅此XDA帖子。
该命令位于 Android SDK 的文件夹中。adb
platform-tools
评论
adb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
我找到了一种方便的方法,我想分享。
对于 Windows
拥有一次 USB 访问权限
无需root
将手机和电脑连接到热点,或从手机运行便携式热点并将电脑连接到热点。
按照布莱恩的规定获取手机的ip(如果您从手机制作热点,则不需要)
adb shell ip -f inet addr show wlan0
打开记事本
写下这些
@echo off
cd C:\android\android-sdk\platform-tools
adb tcpip 5555
adb connect 192.168.43.1:5555
将上面给出的位置更改为您的 PC 包含 abd.exe 文件的位置
将 ip 更改为您的手机 ip。
注意:上面给出的IP是android设备在制作热点时的基本IP。如果您要连接到 wifi 网络,并且您设备的 IP 在每次连接到热点时都在不断变化,您可以通过在 wifi 设置中进行配置来使其静态。用谷歌搜索一下。
现在将文件另存为ABD_Connect.bat(MS-DOS 批处理文件)。
将其保存在某个位置,然后引用“桌面”或“开始”按钮的快捷方式。
通过 USB 连接一次,然后尝试运行一些应用程序。之后,每当您想无线连接时,双击快捷方式。
注意:有时每次调试应用程序时都需要打开快捷方式。因此,在桌面上为快捷方式制作快捷键会更方便。我做了一个快捷键,比如.因此,每当我想调试时,我都会按 和Ctrl+Alt+S
Shift+F9
Ctrl+Alt+S
注意:如果您在cmd窗口中发现device=null错误,请检查您的IP,它可能已更改。
如果您想轻松连接设备以通过 WiFi 运行、调试或部署您的 Android 应用程序,您可以使用我开发的开源 IntelliJ 插件。这是代码,这里是可供使用的插件。
用法非常简单。这里有一个 gif:
评论
对于Windows用户:
步骤1:
您必须在Android手机中启用开发人员选项。
您可以使用这种方式启用开发人员选项。
• 打开设置>关于>软件信息>更多。
• 然后点击“内部版本号”七次以启用开发人员选项。
•返回“设置”菜单,现在您将能够在那里看到“开发人员选项”。
•点击它并从下一个屏幕上的菜单中打开USB调试。
步骤2:
打开 cmd 并键入 adb。
如果发现 adb is not valid 命令,则必须添加环境变量的路径。
•首先进入你的SDK安装文件夹
按照此路径,此路径仅供参考。
D:\softwares\Development\Andoird\SDK\sdk\platform-tools\;
D:\softwares\Development\Andoird\SDK\sdk\tools;
•现在在Windows系统高级设置上搜索
打开 Environment 变量。
然后打开路径并粘贴以下路径
这是一个示例。
您的SDK路径与我的不同,请使用您的SDK。D:\softwares\Development\Andoird\SDK\sdk\platform-tools\;
D:\softwares\Development\Andoird\SDK\sdk\tools;
步骤3:
打开 cmd 并键入 adb。如果您仍然看到 adb is not valid 命令,则您的路径未正确设置,请按照上述步骤操作。
现在您可以将Android手机连接到PC。
打开 cmd 并键入 adb devices,您可以看到您的设备。找到您的手机 IP 地址。
类型:- adb tcpip 5555
获取手机的 IP 地址
adb shell netcfg
现在
adb connect "IP address of your phone"
现在运行您的 android 项目,如果没有看到您的设备,请再次输入手机的 adb connect IP 地址
对于 Linux 和 macOS 用户:
第 1 步:打开终端并使用
sudo apt-get 安装 android-tools-adb android-tools-fastboot
通过USB线将手机连接到PC。
在终端中键入以下命令
adb tcpip 5555
使用 adb 连接您的 Android 手机 IP 地址。
取下手机。
adb 可以通过 tcp 套接字与 adb server 进行通信。 您可以通过 Telnet 进行验证。
$ telnet 127.0.0.1 5037
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
000chost:version
OKAY00040020
通常,命令的格式如下 ruby 命令 witch 针对 tcp 套接字发送 adb 命令%04x%s with <message.length><msg>
cmd
socket
def send_to_adb(socket, cmd)
socket.printf("%04x%s", cmd.length, cmd)
end
第一个示例发送长度为 12(十六进制)的命令。
您可以享受更令人兴奋的命令,例如从FrameBuffer中截取屏幕截图,因为您可以从其名称中猜到。host:version
000c
framebuffer:
评论
步骤 1。
确保您的 adb 主机和 Android 设备都在同一个 Wifi 网络上。
第2步。
使用 USB 数据线将 Android 设备与计算机连接。执行此操作后,您的主机将检测到您的设备,并且 adb 将开始在计算机上以 USB 模式运行。您可以通过执行 来检查连接的设备,而确保 adb 在 USB 模式下运行。adb devices
adb usb
$ adb usb
restarting in USB mode
$ adb devices
List of devices attached
ZX1D63HX9R device
第 3 步。
使用以下命令在 tcpip 模式下重新启动 adb:
$ adb tcpip 5556
restarting in TCP mode port: 5556
第 4 步。
找出 Android 设备的 IP 地址。有几种方法可以做到这一点:
- 方式: 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
希望对您有所帮助!
参考:
- http://developer.android.com/tools/help/adb.html#wireless
- http://codetheory.in/android-debug-bridge-adb-wireless-debugging-over-wi-fi/
评论
另外一点(从艰难的经历中学到的):您不应该同时激活公司的 VPN 连接......
您需要做以下事情:
- 首先,将 ADB 添加到您的环境路径。
- 在 CLI 中,键入以下命令 adb connect YOUR_DEVICE_IP:PORT_NUMBER(例如:adb connect 192.168.100.100:5555 )
首先,您必须通过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 电缆,您仍然会像往常一样看到您的 logcat
做。享受
评论
如果您希望能够在按钮上执行此操作,请单击:
- 在 Android Studio 中,>设置/首选项 ->插件 ->浏览代码库
- 搜索“ADB wifi”
- 安装并重启 android studio
- 使用USB将设备(启用USB调试)连接到计算机(每个会话只需执行此操作一次)
- 工具 -> Android -> ADB WIFI -> ADB USB TO WIFI(或使用提到的组合键。对于 MacOS:ctrl + shift + w)
注意:如果它不起作用:
- 您的 wifi 路由器防火墙可能阻止了连接。
- 您的计算机上可能未安装 ABD。
从非 root 设备上的计算机
(请注意,这也可以使用有根设备来完成,但您可以在不需要 USB 连接的有根设备上使用 shell)
首先,打开命令提示符(CMD)。如果您使用 Android Studio 或 IntelliJ,则可以使用其中包含一个控制台。
如果您已将 adb 添加到路径中,则可以跳过 cd 部分。
如果可能,请打开 SDK 位置,右键单击,然后按“在此处启动命令提示符”。并非所有人都有此选项,因此您还必须执行以下 (/these) 命令:
Windows:更改驱动器(如果适用)
D:
并访问 sdk 和平台工具。将此路径替换为 SDK 位置:
cd /sdk/path/here/platform-tools
现在,您可以访问 Android 调试桥。
将设备连接到计算机后,执行以下操作:
adb tcpip <port>
adb connect <ip>:<port>
要连接到的端口在哪里(默认为 ),并且是要连接到的设备的 IP。<port>
5555
<ip>
请注意:是默认端口,只需写入 IP 地址即可连接它。如果您使用自定义端口,您至少可以稍微提高安全性。通过Wi-Fi进行USB调试可能会被滥用,但前提是设备连接到想要滥用设备的计算机。使用非默认端口至少会使连接变得有点困难。5555
如果使用自定义端口,请确保将其添加到 IP 之后。写入没有端口连接到,如果不使用该端口,连接将失败。5555
您可以通过两种方式查找设备的 IP 地址:
根据您的设备,确切的名称可能会有所不同。打开设置并转到关于设备 -> 状态 -> IP 地址
使用 ADB 获取 IP
在控制台中,执行以下操作:
adb shell ip -f inet addr show wlan0
完成连接后,您可以通过以下方式断开设备与计算机的连接:
adb disconnect <ip>:<port>
或者没有 IP 来断开所有设备的连接。如果使用了自定义端口,则必须指定要断开连接的端口。此处的默认值也是 5555。
要禁用端口(如果要执行此操作),请在连接设备的情况下执行以下命令:
adb usb
或者,您可以重新启动设备以删除 tcpip 连接
从已取得 root 权限的设备上的计算机
首先,您需要访问 shell。您可以使用 USB 数据线连接设备,然后使用 Google Play、FDroid 或其他来源或下载应用程序。adb shell
然后你做:
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 连接)。
某些手机在开发者选项中有一个设置(这适用于一些无根手机,尽管可能也有一些有根手机),允许从设备本身通过Wi-Fi切换ADB,而无需root或计算机连接来启动它。虽然很少有手机有这个功能
评论
adb shell ip -f inet addr show wlan0
IP 地址和端口支持是否要在某个位置替换?
Bash util 函数:
function adb-connect-to-wifi {
ip="$(adb shell ip route | awk '{print $9}')"
port=5555
adb tcpip ${port}
adb connect ${ip}:${port}
}
有两种方法可以将您的Android设备与ADB通过TCP连接?
第一种方式
请按照下列步骤操作
首先使用以下命令获取设备 IP 地址
adb shell ifconfig
上述命令的 OUTPUT
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 插件Android device with ADB
Android WiFi ADB - IntelliJ/Android Studio 插件
IntelliJ 和 Android Studio 插件旨在通过 WiFi 快速连接您的 Android 设备,以便在不连接 USB 的情况下安装、运行和调试您的应用程序。只需按一个按钮,即可忘记 USB 数据线
请查看此文章以获取更多信息
在Android Studio中将Android设备与Wifi连接
为了以防万一它对任何人有帮助,我写了一个 .bat 文件来为我完成这项工作。
我正在使用 Visual Studio / Xamarin - 只需将手机连接到 USB,运行批处理文件,选择“C”进行连接,完成后,断开手机与 USB 电缆的连接。您将从那里通过Wifi连接。
注意:将脚本中的目录更改为 PC 上存在 adb.exe 的任何位置,并编辑手机的 IP 地址。
@echo off
cls
c:
cd\
cd C:\Program Files (x86)\Android\android-sdk\platform-tools\
:choice
set /P c=Do you want to connect or disconnect[C/D]?
if /I "%c%" EQU "C" goto :connect
if /I "%c%" EQU "D" goto :disconnect
goto :choice
:connect
echo plug phone in via USB. Make sure emulator is switched off
pause
adb tcpip 5555
adb connect 192.168.0.32:5555
echo finished - unplug USB
pause
exit
:disconnect
adb usb
echo finished - ADB is reset to USB mode
pause
希望它对某人有所帮助!
我在同一个问题上有结构,但是
一个简单的技巧对我有用。它允许系统接受 tcp 请求。adb reverse tcp:<PORT> tcp:<PORT>
感谢您的阅读
这些是我遵循的步骤,它对我有用,
adb shell ifconfig(从此处获取设备的 IP 地址)
adb tcpip 7777(将 adb 连接到某个端口)
adb 连接“ipaddress”:7777
这是 Mac/Linux 通过 Wi-Fi 连接到 Android 设备的一句话,但首先您必须通过 USB 连接到设备。
# sleep 5 is to wait for the device to restart listening.
adb kill-server && adb tcpip 5555 && sleep 5 && adb shell ip route | awk '{print $9}' | xargs adb connect
评论
adb tcpip 5555
Settings > About Phone > Status
adb connect 192.168.x.x