SEAndroid 是將SELinux 移植到Android 上的產物,可以看成SELinux 輔以一套適用于Android 的策略。
那么在android系統中那些文件是與SELinux(SEAndroid)相關的呢?
- 在android源碼中有哪些
- 在android rom中有哪些?
android源碼中
android源碼提供的所有Android策略文件在路徑external/sepolicy目錄下面,
external/sepolicy //通用的
device/lge/mako/sepolicy //某款設備特有的,此為舉例
這里面主要包含如下幾類文件:
- File contexts (*.fc)
- Type enforcement rules (*.te)
- M4 macros, "interfaces" (*.if)
然后是一些特殊的配置文件:
- external/sepolicy/attributes -> 所有定義的attributes都在這個文件
- external/sepolicy/access_vectors -> 對應了每一個class可以被允許執行的命令
- external/sepolicy/roles -> Android中只定義了一個role,名字就是r,將r和attribute domain關聯起來
- external/sepolicy/users -> 其實是將user與roles進行了關聯,設置了user的安全級別,s0為最低級是默認的級別,mls_systemHigh是最高的級別
- external/sepolicy/security_classes -> 指的是上文命令中的class,個人認為這個class的內容是指在android運行過程中,程序或者系統可能用到的操作的模塊
- external/sepolicy/te_macros -> 系統定義的宏全在te_macros文件
- 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