停止 SE Linux 在 Android AOSP 上执行

Stop SE Linux from Enforcing on Android AOSP

我需要在 Android 引导序列中尽早停止 SE Linux 执行。

我读到“selinux=0”的内核参数会阻止它。它没有:

smarc_mx8mq:/ # cat /proc/cmdline                                                                                                      
selinux=0 console=ttymxc2,115200 earlycon=imxuart,0x30880000,115200 init=/init video=HDMI-A-1:1080x1920-32@60 androidboot.console=ttymxc0 androidboot.hardware=freescale androidboot.fbTileSupport=enable cma=1280M androidboot.primary_display=imx-drm firmware_class.path=/vendor/firmware transparent_hugepage=never loop.max_part=7 buildvariant=eng ...
smarc_mx8mq:/ # getenforce
Enforcing

我该怎么做才能完全阻止 SE Linux 从启动序列开始就强制执行? (我可以拥有 root shell 访问权限,我可以更改内核配置或 AOSP 构建的任何其他部分。)

解决方案是使用 androidboot.selinux=permissive 而不是 selinux=0

我听说 androidboot.selinux=disabled 也可以。

What can I do to absolutely stop SE Linux from enforcing from the start of the boot sequence? (I can have root shell access and I can change the kernel config or any other part of the AOSP build.)

我通过设置在 BoardConfig.mk 中关闭 selinux:

BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive

然后在构建和目标闪烁后cat /proc/cmdline显示androidboot.selinux=permissive:

hikey960:/ # cat /proc/cmdline
androidboot.hardware=hikey960 firmware_class.path=/vendor/firmware loglevel=15 efi=noruntime
overlay_mgr.overlay_dt_entry=hardware_cfg_enable_android_fstab androidboot.selinux=permissive