如何在编译LineageOS 19.1时彻底禁用Android 12的SELinux?
彻底禁用LineageOS 19.1编译时的SELinux
以下是直接彻底关闭SELinux(而非宽容模式)的具体操作步骤,基于Android 12L(LineageOS 19.1底层版本)源码修改:
1. 修改内核SELinux核心配置
进入设备内核源码目录,找到对应架构的defconfig文件(通常路径为arch/arm64/configs/[设备专属defconfig名]或arch/arm/configs/[对应文件名]),修改以下配置项:
- 将
CONFIG_SECURITY_SELINUX=y改为CONFIG_SECURITY_SELINUX=n - 确保
CONFIG_SECURITY_SELINUX_BOOTPARAM=n - 若存在
CONFIG_SECURITY_SELINUX_DISABLE=y可保留,但核心是关闭主开关CONFIG_SECURITY_SELINUX
2. 修改系统编译控制逻辑
在源码根目录编辑build/core/main.mk,找到:
SELINUX_IGNORE_NEVERALLOWS := false
替换为:
SELINUX_IGNORE_NEVERALLOWS := true
接着编辑system/core/init/init.cpp,找到SELinux初始化调用代码(通常是selinux_initialize(true);),直接注释或移除该行,跳过SELinux启动流程。
3. 调整设备编译配置
进入设备专属目录device/[厂商名]/[设备型号],编辑BoardConfig.mk,添加或修改:
BOARD_SEPOLICY_ON_DEVICE := false BOARD_USES_SELINUX := false
4. 清理缓存并重新编译
执行以下命令清理旧编译产物,再启动编译:
make clean make clobber brunch [你的设备代号]
注意
彻底禁用SELinux会严重削弱系统安全防护,仅适合开发测试场景;部分设备的内核或设备配置可能有特殊差异,需根据实际情况调整。
内容的提问来源于stack exchange,提问作者today man
相关产品推荐
相关产品推荐

