1 调试确认SELinux问题
为了澄清是否因为SELinux导致的问题,可先执行:
setenforce 0 (临时禁用掉SELinux)
getenforce (得到结果为Permissive)
如果问题消失了,基本可以确认是SELinux造成的权限问题,需要通过正规的方式来解决权限问题。
遇到权限问题,在logcat或者kernel的log中一定会打印avc denied提示缺少什么权限,可以通过命令过滤出所有的avc denied,再根据这些log各个击破:
cat /proc/kmsg | grep avc
或
dmesg | grep avc
2.报错信息
报错:
avc: denied { execute} for pid=19029 comm="su" path="/system/xbin/su" dev="dm-4" ino=3540 scontext=u:r:system_app:s0 tcontext=u:object_r:su_exec:s0 tclass=file permissive=0
分析:
缺少什么权限: { execute} 权限
谁缺少权限: scontext&#