S005SELinux(SEAndroid)的實際文件組成無標題文章

SEAndroid 是將SELinux 移植到Android 上的產物,可以看成SELinux 輔以一套適用于Android 的策略。

那么在android系統中那些文件是與SELinux(SEAndroid)相關的呢?

  1. 在android源碼中有哪些
  2. 在android rom中有哪些?

android源碼中

android源碼提供的所有Android策略文件在路徑external/sepolicy目錄下面,

external/sepolicy   //通用的
device/lge/mako/sepolicy   //某款設備特有的,此為舉例

這里面主要包含如下幾類文件:

  • File contexts (*.fc)
  • Type enforcement rules (*.te)
  • M4 macros, "interfaces" (*.if)

然后是一些特殊的配置文件:

  1. external/sepolicy/attributes -> 所有定義的attributes都在這個文件
  2. external/sepolicy/access_vectors -> 對應了每一個class可以被允許執行的命令
  3. external/sepolicy/roles -> Android中只定義了一個role,名字就是r,將r和attribute domain關聯起來
  4. external/sepolicy/users -> 其實是將user與roles進行了關聯,設置了user的安全級別,s0為最低級是默認的級別,mls_systemHigh是最高的級別
  5. external/sepolicy/security_classes -> 指的是上文命令中的class,個人認為這個class的內容是指在android運行過程中,程序或者系統可能用到的操作的模塊
  6. external/sepolicy/te_macros -> 系統定義的宏全在te_macros文件
  7. external/sepolicy/***.te -> 一些配置的文件,包含了各種運行的規則

上下文

  • file_contexts
    file_contexts文件保存的是系統中所有文件的安全上下文定義。file_contexts文件的格式比較簡單,每行的前半部分是文件的路徑,后面是它的安全上下文的定義。支持通配符。

  • genfs_contexts
    文件保存android proc虛擬分區內文件的上下文。

  • initial_sid_contexts

  • port_contexts

  • property_contexts
    property_contexts文件中保存的是系統中所有Android屬性的安全上下文定義。

  • seapp_contexts
    和Android中的應用程序打標簽有關

  • service_contexts

android系統相關的文件

在rom中

/data/security

使用命令

setprop selinux.reload_policy 1

可以重新加載新的sepolicy,由于/data目錄下有了sepolicy,所以它將使用這個新的。

在根目錄下有如下文件

  • file_contexts
  • property_contexts
  • seapp_contexts
  • sepolicy
  • selinux_version
  • service_contexts
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容