[RK3399] [Android7.1] 驱动设备节点的权限问题

       本节背景:已经编写好驱动,并生成驱动节点,驱动在启动时加载,并且通过串口调试,进入dev目录下,可查看到自己的驱动。

        [RK3399] [Android7.1] 驱动设备节点的权限问题_第1张图片

        Android的APP,通过so库调用驱动时,如果不给驱动节点权限,则在打开设备时,会出现打开失败的情况。

        在串口调试模式下,我们回到根目录,可以看到ueventd.rc文件,cat一下(cat ueventd.rc)

        [RK3399] [Android7.1] 驱动设备节点的权限问题_第2张图片

        查看该文件信息,没有ttysWK2的权限信息。

        若此时,我们调用指令 chmod 777 /dev/ttysWK2,则APP可以调用成功。那么每次都这么获取权限肯定不是长久之计,如何给驱动添加永久权限呢?

 

        我们回到Android的源码环境中,进入目录  system/core/rootdir目录下,打开文件ueventd.rc,在改文件中添加一条指令:

        /dev/ttysWK2                          0666       root                       root

        [RK3399] [Android7.1] 驱动设备节点的权限问题_第3张图片

        添加完成后,回主文件目录进行编译整个工程,具体怎么编译我就不再详细描述了。

        将生成的image镜像,烧写到开发版中,启动完成后,在根目录cat ueventd.rc,可以看到以下信息:

        [RK3399] [Android7.1] 驱动设备节点的权限问题_第4张图片

        该Android系统中得设备节点/dev/ttysWK2也有了权限,再次使用APP调用,即可成功调用。

 

        有没有不编译源码,也能永久获取驱动节点的权限呢,答案是有的,参考一下文章,不过我没整出来,有需求的可以试试。

        参考链接:https://www.cnblogs.com/LoongEmbedded/p/5298388.html

 

 

你可能感兴趣的:(Android)