以编程方式获取无线调试端口号

3
我需要从Android应用程序的无线调试选项中获取IP地址和端口。 我发现IP地址可以从applicationContext.getSystemService(Context.WIFI_SERVICE).connectionInfo获得。 但是,似乎没有办法从connectionInfo获取端口号。
是否可能以编程方式获取无线调试端口号?
1个回答

0

发现了这个。希望能有所帮助。

https://forum.xda-developers.com/t/adb-wifi-how-to-specify-port-and-have-it-fix.4321669/

解决方案: 在使用快速瓷砖启用无线调试后,您可以在调试工作站上使用nmap(和awk)来发现打开的端口,并运行“adb connect:”:
  1. 将Android 11/12等设置为静态IP。如果您使用DHCP...您还必须发现设备的DHCP IP。如果您必须依赖于特定网络的DHCP,则静态DHCP租约也足以使您的工作变得容易。无论如何,您必须能够知道或发现设备的IP地址才能使其正常工作。

  2. 打开无线调试-您会注意到每次切换无线调试时端口都会改变。

  3. 端口据说始终在30000到49999的范围内。

  4. 由于我们有了IP和端口范围,因此我们可以使用nmap获取监听端口。因此,此步骤是安装nmap和awk(如果您没有这些命令,请单独运行“nmap”和“awk”以查看它们是否在您的路径中)

  5. 运行此代码-将PHONE =设置为设备的静态IP。我的设置为192.168.19.19,因此: PHONE = 192.168.19.19 adb connect $ {PHONE}:$(nmap-sT $ {PHONE} -p30000-49999 | awk-F / '/ tcp open / {print $1}')

  6. 它应该连接并显示类似于以下消息: connected to 192.168.19.19:42699

如果你恰好有其他应用程序在这些范围内打开了一个监听的TCP端口,那么这并不是一个完美的解决方案...但你也可以使用nmap范围来过滤掉这些特定的端口。大多数人不会遇到这种情况,但为了某些人的利益,可能值得一提。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接