open ps failed. errno: Permission denied

来源:互联网 发布:vr需要学什么编程语言 编辑:程序博客网 时间:2024/06/08 13:27

    一、关于权限的描述:

     首先linux下文件权限分为所属用户权限、所属组权限和其他权限。每一个又分为r(读)、w(写)、x(可执行)。如果你在Linux中运行ls -l 就会显示权限。如:

    第一个 rw- 是所属用户的权限,表示所属用户(root)对文本件可读(r)、可写(w)。第二个,第三个类推。

    二、Android利用JNI打开设备失败

    利用下面的C代码打开设备失败,代码如下:  

    fd = open(PS_DEV, O_RDONLY, 0);//PS_DEV代表设备名称if (fd == -1) {ALOGE("[Ps test mode] [%s] open ps failed. errno: %s", __func__, strerror(errno));        return 0;}

    发现访问设备失败,打印的主要日志日下:

E ION_DEBUG: [add_system_map_entry]so libfile_op.so address 0x61cf3000 size 53248 has been load into memory ion_debug_lock 0x404b001c
01-01 01:33:26.891  2871  2871 E ION_DEBUG: [add_system_map_entry]so libhwm.so address 0x61cea000 size 36864 has been load into memory ion_debug_lock 0x404b001c
01-01 01:33:26.891  2871  2871 E ION_DEBUG: [add_system_map_entry]so libfactory_jni.so address 0x61ce4000 size 20480 has been load into memory ion_debug_lock 0x404b001c
01-01 01:33:26.892  2871  2871 E         : [Ps test mode] [jboolean openPsDev()] open ps failed. errno: Permission denied 

      发现是访问权限的问题,使用命令chmod 666 +设备名,如下图:

 

发现问题解决,可以正确的访问设备了。

        三、MTK权限问题

        源码目录mediatek/config/平台/init.rc文件里将该设备权限改成666即可。如下所示:

chmod 0666 /dev/gsensor

 

 

0 0