我将为 Pixel 4a 设备构建 AOSP 13。我嵌入了一些与OTA功能相关的系统应用程序。因此,系统需要在每次启动操作后设置许可。我知道以下规则适用于
userdebug
和 eng
构建。
BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
但是我要将设备交付给第三方用户,并且我需要生成
user
版本。然而,上述方法不适用于 user
构建。我知道我应该为此目的编写特定策略,或者修改系统策略,例如 allow
和 neverallow
规则。有没有已经实现这个流程的经验、解决方案或者工具?
最后,我可以通过破解 AOSP 13 源代码中
selinux.cpp
处的 system/core/init
的两个函数来处理这种情况。根据下面演示的代码,我只是通过返回函数 permissive
的 enforcing
值并返回对于函数 user
为 false。在这些情况下,selinux 只能设置为 SELINUX_PERMISSIVE
。StatusFromProperty()
我已经在运行 Android 13 的 Pixel 4a 设备上测试了上述代码,它确实有效!