SELinux 是Google从Android5.0开始,强制引入的一套非常严格的权限管理机制,主要用于增强系统的安全性。在开发中,我们经常会遇到由于SELinux造成的各种权限不足,例如下面:
avc: denied { mounton} for pid=2046 comm="mount" path="/factory" dev="mmcblk0p17" ino=1 scontext=u:r:uncrypt:s0 tcontext=u:object_r:vfat:s0tclass=dir permissive=0
由上面可知缺少mounton的权限,解决权限问题有下面的公式,
scontext tcontext:tclass avc:denied
allow uncrypt vfat:dir mounton
加入到以下文件里面:
external/sepolicy/
这里面有很多权限相关的操作,有时间可以去研究研究。