Android SELinux——常见问题处理思路(十四)

一、问题处理思路

1、定位SELinux权限问题

        当遇到问题时,想判断是不是 SELinux 权限导致的,在 userdebug 或 eng 版本,通过 adb  命令让 selinux 处于宽容模式,命令如下:

adb root
adb remount
adb shell setenforce 1

        然后再通过 adb logcat 或 logger manager 抓取 Log,最好先执行下清空 Log 的操作(adb logcat -c), 便于排查问题再看问题是否还存在。如果问题不存在,可以确认是 SELinux 权限不足导致。(注意,特殊情况下可能还需要验证重启过程,上面命令重启失效,这个时候可以考虑修改 init 的代码来设置关闭模式)

2、抓取SELinux问题日志

        SELinux 在 permissive 模式下运行时,会检查当前运行的应用是否存在错误,错误会以事件日志的形式传给 dmesg 和 logcat,并可在设备上从本地查看。SELinux 日志消息中包含 avc: 字样,因此可使用 grep 轻松找到。

adb shell dmesg |grep avc > dmesg.log

adb log

猜你喜欢

转载自blog.csdn.net/c19344881x/article/details/142387617