[RK3288][Android6.0] 调试笔记 --- Netd测试工具ndc

来源:互联网 发布:淘宝的鹰眼系统 编辑:程序博客网 时间:2024/06/10 19:19

Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

目的:
Netd中的命令在命令行可以通过ndc工具来执行.

功能:
1.监控Netd
2.发送命令给Netd 

源代码路径:
system/netd/server/ndc.c

原理:
ndc的原理其实就是通过socket连接上netd进行交互, 这部分可以从源代码体现:

ndc.c

int main(int argc, char **argv) {    //argv[1]可以是socket name.    if ((sock = socket_local_client(argv[1],                                     ANDROID_SOCKET_NAMESPACE_RESERVED,                                     SOCK_STREAM)) < 0) {        //如果不传,那么默认就是name为"netd"socket                           if ((sock = socket_local_client("netd",                                         ANDROID_SOCKET_NAMESPACE_RESERVED,                                         SOCK_STREAM)) < 0) {            fprintf(stderr, "Error connecting (%s)\n", strerror(errno));            exit(4);        }    }    exit(do_cmd(sock, argc-cmdOffset, &(argv[cmdOffset])));} 
static int do_cmd(int sock, int argc, char **argv) {   //命令参数最终通过socket发送给netd服务进程处理   if (write(sock, final_cmd, strlen(final_cmd) + 1) < 0) {        int res = errno;        perror("write");        free(final_cmd);        return res;    }}

测试:

  • 监听:
    这里写图片描述
  • 命令发送:
    这里写图片描述

支持命令:
对应的命令以及参数可以在system/netd/server/CommandListener.cpp查看。

阅读全文
1 0
原创粉丝点击