本节背景:已经编写好驱动,并生成驱动节点,驱动在启动时加载,并且通过串口调试,进入dev目录下,可查看到自己的驱动。
Android的APP,通过so库调用驱动时,如果不给驱动节点权限,则在打开设备时,会出现打开失败的情况。
在串口调试模式下,我们回到根目录,可以看到ueventd.rc文件,cat一下(cat ueventd.rc)
查看该文件信息,没有ttysWK2的权限信息。
若此时,我们调用指令 chmod 777 /dev/ttysWK2,则APP可以调用成功。那么每次都这么获取权限肯定不是长久之计,如何给驱动添加永久权限呢?
我们回到Android的源码环境中,进入目录 system/core/rootdir目录下,打开文件ueventd.rc,在改文件中添加一条指令:
/dev/ttysWK2 0666 root root
添加完成后,回主文件目录进行编译整个工程,具体怎么编译我就不再详细描述了。
将生成的image镜像,烧写到开发版中,启动完成后,在根目录cat ueventd.rc,可以看到以下信息:
该Android系统中得设备节点/dev/ttysWK2也有了权限,再次使用APP调用,即可成功调用。
有没有不编译源码,也能永久获取驱动节点的权限呢,答案是有的,参考一下文章,不过我没整出来,有需求的可以试试。
参考链接:https://www.cnblogs.com/LoongEmbedded/p/5298388.html