用Selinux遇到的限制
Posted
(一停手就是若干年啊。。。)
在做一个有趣的小功能,具体什么就不说了。中途遇到了一个问题,media进程直接写文件的时候无权限:
fopen后strerrno(errno)是:permission denied.
翻了翻,应该是sepolicy(selinux)的限制导致的。
找到篇文章大概介绍了selinux和sepolicy设置(android L开始是建议厂商强制使用的)
还有一篇更偏实用。
打开/external/sepolicy/mediaserver.te
(其实还有一个device/qcom/sepolicy/common/mediaserver.te,暂未确认是用哪个,还是做了一个交集)
但可以确认的是camera_data_file
应该是可写的:
allow mediaserver camera_data_file:dir rw_dir_perms; allow mediaserver camera_data_file:file create_file_perms;
那具体camera_data_file
是哪里那?继续翻:
在/external/sepolicy/file_contexts里面:
/data/misc/camera(/.*)? u:object_r:camera_data_file:s0
既然这样,那就直接往这个目录下面写吧~
改完测试,一切OK~