我们有测试套件,其中 adb 客户端连接到多个 android 设备。我们的测试套件提出了这些连接请求、获取设备状态并在其中运行应用程序。
我想模拟一个 adb 服务器挂起的场景。我尝试发出“adb kill-server”,但来自客户端的任何 adb 请求都会启动 adb 服务器。无论如何我们可以阻止 adb 服务器监听 adb 客户端请求吗?
当然,我们自己编译 adb 服务和修改代码还有很长的路要走。但是有什么简单的方法可以完成这项工作吗?
您是否仍然需要连接(不响应命令),或者完全终止连接是否可以?听起来像终止连接会很好,因为你说你试过了adb kill-server
。
在这种情况下,尝试以 TCP/IP 模式连接到设备而不设置 adb 服务器以侦听网络端口怎么样?即类似的东西:
adb tcpip 12345
另一个建议是在设备中完全禁用 adb 接口。虽然这可能会也可能不会停止 adb 服务器,但您仍然会得到您想要的结果,即 adb 客户端没有连接。可以做到这一点的方法是在 ROOTED 设备上,执行
adb shell
su
echo 1 > /sys/class/android_usb/f_adb/on
这是我可以在手头的 HTC Vivid 上做的。对于其他设备,路径可能不同,但它们都应该相似。重新启动手机后,adb 将再次开始工作。