adb 客户端能自动发现局域网中的 adb 服务端,当我手机开启 wireless adb 后,总能收到局域网内其他客户端发出的连接请求,开始以为是通过探测默认端口 5555 实现的,但我把服务端端口改成其他后,仍然能收到连接请求,不知道这是如何实现的,难道是服务端主动向局域网内广播自己的配置?
1
learningman 2021-07-29 14:03:26 +08:00
我知道有个叫 SSDP 的协议,估计是差不多的东西吧
|
2
yukiww233 2021-07-29 14:05:14 +08:00
问下局域网内其他人(adb client)是怎么发送请求连接的呗
没准人家写了个工具遍历局域网内端口 |
3
wjploop 2021-07-29 14:46:58 +08:00
有趣的问题
我也认为不是服务端自己广播自己的配置,手机不该浪费自己电量来做这事,而是客户端主动探测出来的。 客户端如何探测? 使用 nmap 工具查询当前局域网活跃的主机以及开放的端口 /服务,我下载玩了会,当手机开放无线 adbd 时确实可以检测到,且手机开放的端口很少,根据手机开放端口很少这点,客户端只要尝试连接就行了。 不知道现实中你指的客户端是谁,可能是公司的测试人员?由于 IP 动态分配的原因连上了你手机? |
4
jim9606 2021-07-29 15:18:08 +08:00 5
Android 的 adbd 激活无线调试后会通过 mDNS 发布一个_adb-tls-connect._tcp 服务。
adb v30 开始设置环境变量 ADB_MDNS_OPENSCREEN=1 后,adb devices 会利用 mDNS 自动发现设备。 |
5
andyskaura 2021-07-29 16:33:37 +08:00
@jim9606 感谢 涨姿势了 通过 mdns 发现设备
|
6
MLawliet OP |
7
xingstar 2021-07-30 12:35:01 +08:00
真是学习了,感谢(⊙o⊙)…
|
8
aabbcc112233 2021-07-31 22:35:15 +08:00
@MLawliet AS 怎么能够向已开启无限调试的设备发起连接呢?没看到入口
|
9
MLawliet OP @aabbcc112233 自动的啊,AS 会自动执行 adb devices 命令查找局域网内开启调试的设备然后连接
|