Selinux相关问题解决

因为selinux权限问题一般会在user版本出现,但我们在userdebug版本通过以下方式可以验证

1、第一步先确定问题是否由selinux权限问题引起   通过命令: adb shell getenforce //查看当前SePolicy权限状态(Enforcing 表示打开 Permissive表示关闭)userdebug版本处于permissive关闭状态   settenforce 1 //更改状态到Enforcing,0表示Permissive   进行测试,如果此时问题会出现,那么就是selinux权限问题

2、解决方法   输入图片说明   这是一个selinux权限问题,我们只关注denied{} 、scontext 、tcontext 和 tclass 四个关键字就可以

  denied{}括号内的内容表示被拒的权限动作

  scontext的值表示需要在哪个te文件添加

  tcontext 表示需要赋予权限的目标

  tclass 表示权限问题的类型

  这个问题的修改方式是在system_app.te文件添加如下代码:allow system_app sysfs_thermal:dir search;    

注意:有时在Enforcing模式时不能看到所有缺少的权限日志,例如: 输入图片说明 这个日志由于FileNotFoundException问题导致程序不会继续执行到代码终点,所以没有执行的代码所缺少的权限日志就不能得到,但是在Permissive模式所有权限问题会打印出来,所以建议抓log在Permissive模式下或者两种模式都抓

猜你喜欢

转载自my.oschina.net/u/3336230/blog/873556