Netd 中的 “netd” 套接字
SocketListener::startListener 在启动监听的过程中需要查询到套接字,调用了 android_get_control_socket,传入了参数 “netd”,其查询细节如下面讲解分析。
startListener 的调用发生在 main.cpp 中 main 函数里面的 CommandListener 的启动:
/*
* Now that we're up, we can respond to commands. Starting the listener also tells
* NetworkManagementService that we are up and that our binder interface is ready.
*/
if (cl.startListener()) {
ALOGE("Unable to start CommandListener (%s)", strerror(errno));
exit(1);
}
而其域套接字何时创建的呢?
猜测是在 service 创建的时候,后面在分析
Android get control socket
/hardware/ril/libril/ril.cpp下有如下代码:
s_fdListen = android_get_control_socket(SOCKET_NAME_RIL);
if (s_fdListen < 0) {
LOGE("Failed to get socket '" SOCKET_NAME_RIL "'");
exit(-1);
}
if (listen(s_fdListen, 4)) {
exit(1);
}
s_fdComman