You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

构建带宽容SELinux策略的AOSP User版:Pixel 4a适配方案咨询

AOSP 13 User构建默认开启SELinux宽容模式的解决办法

方法1:修改init进程的SELinux初始化逻辑

Android启动时由init进程负责加载SELinux策略,直接修改它的源码就能强制开启宽容模式:

  • 找到system/core/init/selinux.cpp文件,定位到SelinuxInitialize函数
  • 注释掉原本根据构建类型设置enforcing的代码,直接添加一行selinux_setenforce(0)
  • 注意user构建存在SELINUX_ENFORCING宏定义,要确保修改后的代码不受该宏限制

方法2:调整SELinux全局策略规则

不想改动init源码的话,可通过修改策略文件实现:

  • 找到Pixel 4a对应的策略目录device/google/sunfish/sepolicy
  • 在sepolicy/common/global_sepolicy.te中添加permissive *;,这条规则会让所有域都进入宽容模式
  • 若编译时出现neverallow冲突,需逐一排查并注释掉对应的neverallow规则(比如禁止设置permissive的相关规则)

方法3:让内核cmdline参数在user构建中生效

user构建下系统会重置androidboot.selinux参数,修改init的cmdline处理逻辑即可:

  • 打开system/core/init/selinux.cpp,找到解析selinux cmdline参数的代码段
  • 删除对user构建的判断分支,直接保留参数生效的逻辑
  • 这样即使是user构建,也会读取androidboot.selinux=permissive参数来开启宽容模式

注意事项

  • 以上修改都会破坏user构建的原生安全性,仅适合有特殊需求的场景使用
  • 修改后要确保所有文件都在AOSP源码树内,避免编译失败
  • 刷入镜像后可通过getenforce命令验证SELinux状态是否为Permissive

内容的提问来源于stack exchange,提问作者Mehran Alidoost Nia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:09:59