常用selinux debug方法

1.关闭Selinux方法:

在uboot中执行

setenv EnableSelinux permissive

save

reset

2.设置selinux模式

setenforce 0/1 //0为permissive,1为enforcing

getenforce //查看当前selinux模式

3.常用selinux debug方法

make sepolicy -j32 //编译sepolicy,编译完后,再全编译刷机验证

cat /dev/kmsg | grep avc  //查看kernel中的SELinux权限报错

dmesg | grep avc  //查看kernel中的SELinux权限报错

cat /proc/kmsg | grep avc  //查看kernel中的SELinux权限报错

logcat | grep -i -e avc -e selinux

setenforce 0/1 //0为permissive,1为enforcing

可以先dmesg -C,清空kernel log,然后执行相应的操作,接着再看dmesg,查看是否有selinux报错信息

4.对avc: denied log,缺啥补啥添加相应权限

avc: denied { find } for interface=android.system.suspend::ISystemSuspend sid=u:r:hal_power_default:s0 pid=3654 scontext=u:r:hal_power_default:s0 tcontext=u:object_r:system_suspend_hwservice:s0 tclass=hwservice_manager permissive=0

allow hal_power_default system_suspend_hwservice:hwservice_manager { find };

5.neverallow类型

一些selinux权限被neverallow的情况,可以通过以下的一些思路去解决:

(1)调用的安全上下文改成有权限调用的安全上下文

(2)通过有权限的安全上下文的进程去调用,并通过跨进程反馈出来

(3)被调用文件的路径不同,权限也会不同。如U盘/mnt/media_rw/xxxx-xxxx和/stroage/xxxx-xxxx的上下文权限是不同的

    ls -lZ /mnt/media_rw/

    drwxrwx--- 34 media_rw media_rw u:object_r:vfat:s0 16384 1970-01-01 08:00 95DB-8186

    ls -lZ /storage

    drwxrwx--x 34 root sdcard_rw u:object_r:sdcardfs:s0 16384 1970-01-01 08:00 95DB-8186

    有时A被neverallow,但是B是可以调用到的,因此只需要将文件路径修改一下就可以正常使用了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值