问题描述:
debug版本可以正常开机,user版本无法正常开机,进入fastboot模式
原因:
关闭了SE权限 即Selinux.cpp
办法:
添加宏控:CONFIG_SECURITY_SELINUX_DEVELOP=y
到
config文件下
============经验证有效!!!!根据谷歌要求如此
有些时候我们添加的外设和接口太多或者我们添加访问了一些系统规则不允许我们访问的资源,我们需要关闭selinux以达到可以正常访问系统资源。
例如解决扫码头和外挂北斗定位,以及节点权限问题。我们需要直接关闭SE,减少添加不少的权限的工作量,作为临时使用。
系统默认关闭SE权限
system\core\init\selinux.cpp
bool IsEnforcing() {
return false;//直接返回false,即设置为 permissive 模式
if (ALLOW_PERMISSIVE_SELINUX) {
return StatusFromProperty() == SELINUX_ENFORCING;
}
return true;
}如果是user版本还需要再kernel的config文件添加以下的配置,否则无法开机,直接进入FastBoot模式!!!!
adb 授予临时操作:
adb shell setenforce 0 //设置成permissive 模式
adb shell setenforce 1 //设置成enforce 模式
CONFIG_SECURITY_SELINUX_DEVELOP=y
软件路径:
项目下的两个config文件立马添加此宏控:
debug_defconfig 这个对应debug版本,即默认不需要,所以debug可以正常开机
defconfig 这个对应的user版本软件,默认未打开,需要进行添加或打开才可以正常开机
这样子selinux访问权限才可以关闭掉了
反而,编译debug版本则无所谓,可以正常开机!
标签:SELINUX,巨坑,debug,添加,user,版本,开机,Android,权限 From: https://blog.csdn.net/qq_46687516/article/details/143576065