android驱动 无法打开设备文件 解决

由于设备文件是在内核驱动里面通过device_create创建的,而device_create创建的设备文件默认只有root用户可读写,而hello_device_open一般是由上层APP来调用的,这些APP一般不具有root权限,这时候就导致打开设备文件失败:Hello Stub: failed to open /dev/hello -- Permission denied. 解决办法是类似于Linux的udev规则,打开Android源代码工程目录下,进入到system/core/rootdir目录,里面有一个名为ueventd.rc文件(由ueventd_parse_config_file解析成内存中的相应数据结构,解析时并不创建设备节点,而是提供数据库,当有设备节点需要ueventd生成的时候,ueventd会参考这个数据库的信息去设置设备节点的权限),往里面添加一行: /dev/hello 0666 root root,然后重新打包ramdisk.img后烧入手机中运行即可。 

你可能感兴趣的:(android)