之前提到過 SELINUX for Android,
Android 5 之後引入了selinux機制,
在遇到權限問題時候,
系統都會有log 描述問題,
基本上就是缺什麼補什麼,
直到沒有avc denied為止,
當然,
系統預設的never allow建議不要修改,
底下列了幾個
avc: denied解決範例
1.type=1400 audit(4.840:7): avc: denied { getattr } for pid=204 comm="cameraserver" path="/vendor" dev="rootfs" ino=7096 scontext=u:r:cameraserver:s0 tcontext=u:object_r:rootfs:s0 tclass=lnk_file permissive=0
重點在於紅字,
這個範例簡單的講,
cameraserver 對 rootfs 的 lnk_file 缺少了 { getattr } 的權限 ,
只需要在cameraserver.te中
新增
allow cameraserver rootfs:lnk_file { getattr };
即可
2.
type=1400 audit(28.360:14): avc: denied { execute } for pid=704 comm="sh" name="toybox" dev="mmcblk3p5" ino=368 scontext=u:r:demo:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=0
#type=1400 audit(28.130:14): avc: denied { read open } for pid=718 comm="sh" path="/system/bin/toybox" dev="mmcblk3p5" ino=368 scontext=u:r:demo:s0 tcontext=u:object_r:toolbox_exec:s0 tclass=file permissive=0
在這個範例中
demo 對 toolbox_exec 的 file 缺少了 { execute read open } 的權限 ,
(多個權限設定,
只需要以大括號框住 ,
空格隔開即可)
找到demo.te
加入
allow demo toolbox_exec:file { execute read open };
權限問題不會一次全部顯示出來,出現一個加一個直到沒有為止.
沒有留言:
張貼留言