在Android的底层开发过程中经常会遇到SEAndroid的avc权限问题:
首先是avc log:
avc: denied { search } forpid=8329 comm="memmst" name="lowmemorykiller"dev="sysfs" ino=13013scontext=u:r:memmst:s0tcontext=u:object_r:sysfs_lowmemorykiller:s0 tclass=dir permissive=0
allow scontext tcontext:tclass {do what};
允许scontext对tcontext的tclass进行某项操作(read, write, open, search等);
因此上面log得出的解决方案:需要在相应的te文件中加入如下代码:
allow memmst sysfs_lowmemorykiller:dir {search};
ps:若想看avc权限问题的kernel log可以使用特定的环境,用脚本控制循环的抓dmesg log:
while true;do adb shell dmesg | grep avc ;sleep 2;done
init.rc中启动相关service无法启动的log也可以从kernel log中看到。