SELinux是Linux系统一个访问控制策略,android中称之为SEAndroid,做系统开发大都会遇到SEAndroid权限问题,之前一直都有在解决相关问题,但是都没有形成文字记录。今天在帮同事调试程序的时候又遇到类似问题,借此机会做以记录,方便以后查询,也给受此问题困扰的朋友以指导。
一、SELinux的攻
andorid5.x后就引入了非常严格的selinux权限管理机制,我们经常会遇到“avc denied”问题。下面就结合实际问题来探讨如何解决。
遇到这类问题,一般在logcat或kmsg都会出现avc denied字样。我们可以用如下command输出日志。
cat proc/kmsg |grep -irn "avc" 或 dmesg |grep -irn "avc"
type=1400 audit(7585.579:118): avc: denied { search } for pid=8290 comm="prvlogcat" name="user" dev="tmpfs" ino=2475 scontext=u:r:dtlog:s0 tcontext=u:object_r:mnt_user_file:s0 tcl