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