android開發基礎(五)- avc: denied解決範例

首頁 >> >> android開發基礎(五)- avc: denied解決範例

之前提到過 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  };

權限問題不會一次全部顯示出來,

出現一個加一個直到沒有為止.



================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================

guangyaw

重點主題: 程式設計: Python , Django,Android 工具與軟體: Open edX,Linux工具,Blender教學 分享各地美景與產品使用心得,遊戲實況,甚至影視戲劇等, 您的訂閱就是頻道成長的原動力。 YouTube 頻道: https://youtube.com/xyawli

You may also like...

5 Responses

  1. Mars Yeh表示:

    hi~請教如果添加了某項allow, 發現又與其他的原生.te檔衝突(neverallow),像這類的問題通常要怎麼解決呢??

  2. guangyaw表示:

    不建議修改
    否則在將來CTS測試項目會有問題
    (android.cts.security.SELinuxNeverallowRulesTest)
    但如果只是個人使用的話,
    那就放心改吧

  3. Mars Yeh表示:

    感謝您的回覆,再請教網路上有蒐到利用自訂domain, 或是自訂file_type的方式去避開neverallow。就您的經驗來看我該如何快速知道遇到什麼樣的denied訊息去分辨下一步該自訂domain還是新增一個file_type?謝謝!

  4. Mars Yeh表示:

    OK, 謝謝!

發表迴響