selinux 許可權修改
阿新 • • 發佈:2018-12-27
方法1: adb線上修改seLinux
Enforcing
(表示已開啟),Permissive
(表示已關閉)
getenforce; //獲取當前seLinux狀態
setenforce 1; //開啟seLinux
setenforce 0; //關閉seLinux
方法2: 從kernel中徹底關閉
修改LINUX/android/kernel/arch/arm64/configs/xxx_defconfig
檔案(xxx一般為手機產品名), 去掉CONFIG_SECURITY_SELINUX=y
的配置項
方法3: sepolicy中新增許可權
-
修改依據,通過指令
cat /proc/kmsg | grep denied
,或者kernel的Log中定位到標誌性log。 - 修改步驟
-
找相應的源型別.te檔案,此檔案可能的存放路徑 (其中源型別見下方的標誌性log格式) :
LINUX/android/external/sepolicy LINUX/android/device/qcom/sepolicy/common
-
標誌性log 格式
avc: denied { 操作許可權 } for pid=7201 comm=“程序名” scontext=u:
-
在相應源型別.te檔案,新增如下格式的一行語句:(結尾別忘了分號)
格式:allow 源型別 目標型別:訪問型別 {操作許可權};
-
-
例項
-
Kernel Log
avc: denied {getattr read} for pid=7201 comm="xxx.xxx" scontext=u:r:system_app:s0 tcontext=u:r:shell_data_file:s
-
修改方案
在system_app.te檔案中,新增下面語句: allow system_app shell_data_file:dir{getattr read};
-