1. 程式人生 > >如何設定確認selinux 模式

如何設定確認selinux 模式

[Description]
linux SELinux 分成Enforce 以及 Permissive 兩種模式,如何進行設定與確認當前SELinux模式?
 
[Keyword]
android, SELinux, Enforce, Permissive
 
[Solution]
在Android KK 4.4 版本後,Google 有正式有限制的啟用SELinux, 來增強android 的安全保護。
在ENG 版本中, 可以使用setenforce 命令進行設定:
adb shell setenforce 0    //設定成permissive 模式
adb shell setenforce 1    //設定成enforce 模式
 
在ENG/USER 版本中,都可以使用getenforce 命令進行查詢,如:
[email protected]_phone_720pv2:/ # getenforce
getenforce
Enforcing
 
如果想開機一啟動就設定模式,你可以用下面方式:
KK 版本:更新mediatek/custom/{platform}/lk/rules_platform.mk
L  版本: 更新bootable/bootloader/lk/platform/mt6xxx/rules.mk
# choose one of following value -> 1: disabled/ 2: permissive /3: enforcing
SELINUX_STATUS := 3
可直接調整這個SELINUX_STATUS這個的值為2, 嚴禁直接設定成1:disabled, 此會造成生成的檔案無法正確的打上標籤,造成在再次設定成enforcing時,難以預料的情況發生。
注意的是, 在L 版本上, Google 要求強制性開啟enforcing mode, 前面的設定只針對userdebug, eng 版本有效, 如果要對user 版本有效, 需要修改system/core/init/Android.mk 新增
ifeq ($(strip $(TARGET_BUILD_VARIANT)),user)
LOCAL_CFLAGS += -DALLOW_DISABLE_SELINUX=1
endif
 
 
需要注意的是, Google 要求強制性開啟SELinux Enforcing Mode, 如果您關閉,將無法通過Google CTS. 
 
 
[相關FAQ]
[FAQ11486] [SELinux Policy] 如何設定SELinux 策略規則 ? 在Kernel Log 中出現"avc: denied" 要如何處理