问题:
我在远程位置拥有一台 Android 设备,用于运行各种测试和操作。我需要能够发送 ADB 命令,同时将手机连接到有线互联网连接。由于各种原因,我的设备无法连接WiFi,也无法root设备。由于 USB 枚举结构,如果我将 USB 集线器连接到带有以太网端口的手机,并通过 USB 连接到 PC,则选项是主机 + 互联网中的电话但无 ADB,或带有 ADB 但无以太网的外设模式的电话连接。
我尝试过的:
adb tcpip 5555
以通过网络连接(TCP 模式)启用 ADB。这意味着通过 USB 连接手机,设置 adb tcpip 5555
以通过网络启用 ADB,然后断开 USB 并在主机模式下替换为以太网适配器的连接。这工作正常直到手机重新启动,然后需要手动干预。我想做的事: 我想知道是否可以购买 Raspberry Pi 或其他一些微控制器,并使用 On-The-Go (OTG) 中描述的 会话请求协议 (SRP) 和/或 主机协商协议 (HNP) 实施解决方案如下:
adb tcpip 5555
。getprop
)会检查手机是否通过网络接受 ADB,并重新协商 USB 连接,以便 Android 现在成为主机,并接受配套设备作为以太网适配器,并且互联网流量到设备。这样,即使设备重置后,与设备的网络连接(包括发送 ADB 命令)也能保持稳定。还有功率方面的考虑,但它们是次要的。
听起来是一个很大的挑战.. 据我所知,PI 0 既可以充当 USB 主机,也可以充当 USB 以太网小工具。您也许可以利用它发送“adb tcpip 5555”,然后切换模式,并共享 PI 与 android 的连接。但是,如果您也无法在 PI 上使用 wifi,则需要通过 GPIO 为其提供以太网,而不是确定它在零上是如何完成的。 另一种方法是使用 root 的 android,并设置 adb 命令的本地等效项。
附注:我已经尝试了您的第一种方法,即通过 USB 向我的电脑发出 adb 命令,然后切换电缆,除了无法重新启动之外,scrcpy(我的远程调试用例)的性能也无法接受。我最终使用了 USB,以及 gnirehtet 和 scrcpy 通过 USB 的组合,具有出色的性能,除了基本的手机服务之外,我的手机没有发出电磁辐射,而其余的通信都是通过 USB 处理的,唯一需要注意的是每次都必须在手机上接受 VPN 连接。