在RK3399 Android7.1.2上面,进行网络ADB调试时,如果多台电脑连接同一台Android设备,第一台连接上的能正常操作,之后连接的看到设备状态为OFFLINE,分析了下ADBD相关代码,发现在ACCEPT Client的时候没有区分别名处理,故对相关代码做了修改处理:
修改system/core/adb/transport_local.cpp文件如下内容:
在static void server_socket_thread(void* arg)函数里,将如下内容:
register_socket_transport(fd, "host", port, 1);
修改为:
std::string serial = android::base::StringPrintf("host-%d", fd);
if (register_socket_transport(fd, serial.c_str(), port, 1) != 0) {
adb_close(fd);
}
完整的git diff信息如下截图:
Allow multiple tcp adb connection to same device修改完后,重新编译就可以正常使用了。
网友评论