如何确定问题是否与selinux相关

一, 如何看问题是否与SELinux 相关?

1. 将SELinux 调整到Permissive 模式测试.
将SELinux 模式调整到Permissive 模式,然后再测试确认是否与SELinux 约束相关.
ENG 版本:
adb shell setenforce 0
如果还能复现问题,则与SELinux 无关, 如果原本很容易复现, 而Permissive mode 不能再复现, 那么就可能关系比较大.

 

2. 查看LOG 中是否有标准的SELinux Policy Exception.
在Kernel LOG / Main Log 中查询关键字 "avc:" 看看是否有SELinux Policy Exception, 并进一步确认这个异常是否与当时的逻辑相关.

二, 如何设置确认SELinux 模式?

1. 如何确认SELinux 模式 ?
在ENG/USER 版本中,都可以使用getenforce 命令进行查询,如:
 root@mt6589_phone_720pv2:/ # getenforce
 getenforce
 Enforcing
 
2. 如何设置SELinux 模式 ?
在ENG/USERDEBUG 版本中, 可以使用setenforce 命令进行设置:
adb shell setenforce 0    //设置成permissive 模式
adb shell setenforce 1    //设置成enforce 模式

在USER 版本中无法设置.

 

3. 如何开机设置SELinux 模式 ?
3.1 更新配置
 bootable/bootloader/lk/platform/mt6xxx/rules.mk
        # choose one of following value -> 1: disabled/ 2: permissive /3: enforcing
         SELINUX_STATUS := 3
     可直接调整这个SELINUX_STATUS这个的值为2或者1
  
3.2 允许USER 版本 disable SELinux (如果你需要在USER Build 上开启)
 修改system/core/init/Android.mk 新增
       ifeq ($(strip $(TARGET_BUILD_VARIANT)),user)
       LOCAL_CFLAGS += -DALLOW_DISABLE_SELINUX=1
       Endif

4, 如何分析SELinux Policy Exception

1. SELinux Policy Exception Log 格式.
SELinux Policy Exception 的LOG 关键字是 "avc: denied" 或者 "avc:  denied", 下面就是一句典型的LOG
<5>[   27.706805] (3)[304:logd.auditd]type=1400 audit(1420041991.22

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值