android ueventd usb设备如何创建软连接?

android 系统下/dev下的设备节点是通过守护进程ueventd负责。

路径:/system/core/init devices.cpp

static void handle_device(const char *action, const char *devpath,
        const char *path, int block, int major, int minor, char **links)
{
    int i;

    if(!strcmp(action, "add")) {                 //usb出入
        make_device(devpath, path, block, major, minor, (const char **)links);
        if (links) {
            for (i = 0; links[i]; i++)
                make_link_init(devpath, links[i]);    // 创建链接
        }
    }

    if(!strcmp(action, "remove")) {                    //usb拔出,删除链接
        if (links) {
            for (i = 0; links[i]; i++)
                remove_link(devpath, links[i]);
        }
        unlink(devpath);
    }

    if (links) {
        for (i = 0; links[i]; i++)
            free(links[i]);
        free(links);
    }
}

其中函数make_link_init 创建对应节点的软连接。

发布了25 篇原创文章 · 获赞 0 · 访问量 1006

猜你喜欢

转载自blog.csdn.net/jlgcumt/article/details/104005790