RK3326 修改 selinux 属性为Permissive

本文介绍了三种在瑞芯微RK3326设备上设置SELinux为宽容模式的方法,包括修改参数文件、init初始化脚本及设备树配置。最终采用设备树配置方法成功实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般有三种方法

方法一

  • 文件:device\rockchip\rk3326\rk3326_evb\parameter.txt
  • 添加代码(红色部分

CMDLINE:androidboot.selinux=permissive mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),

方法二

  • 文件:system\core\init\init.cpp
  • 添加代码(is_enforcing = 0;
 bool kernel_enforcing = (security_getenforce() == 1);
        bool is_enforcing = selinux_is_enforcing();
        is_enforcing = 0;
        if (kernel_enforcing != is_enforcing) {

方法三

  • 文件:kernel\arch\arm64\boot\dts\rockchip\px30-android.dtsi
  • 添加代码
--- a/arch/arm64/boot/dts/rockchip/px30-android.dtsi
+++ b/arch/arm64/boot/dts/rockchip/px30-android.dtsi
@@ -6,7 +6,7 @@
 
 / {
        chosen: chosen {
-               bootargs = "earlyprintk=uart8250,mmio32,0xff160000 swiotlb=1 console=ttyFIQ0 androidboot.baseband=N/A androidboot.veritymode=enforcing androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init kpti=0";
+               bootargs = "earlyprintk=uart8250,mmio32,0xff160000 swiotlb=1 console=ttyFIQ0 androidboot.baseband=N/A androidboot.selinux=permissive androidboot.veritymode=enforcing androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init kpti=0";
        };
 
        fiq-debugger {

 

小结

  • 方法二和方法三都可用,瑞芯微以前的工程都是用的方法一,在本项目上没有作用,最后使用的是方法三(感觉更合理)
### 如何在RK3588设备上运行Android 13时禁用SELinux 为了在RK3588设备上运行Android 13并成功禁用SELinux,可以采取以下方法: #### 修改init.rc文件 通过编辑`init.rc`文件来设置SELinux模式为permissive而非enforcing。具体操作是在`init.rc`中添加或修改如下行: ```bash setprop selinux.plat_sepolicy_version 30.0 set enforcing 0 ``` 这一步骤确保了SELinux不会强制执行其安全策略[^1]。 #### 编辑Zygote源码 如果仅更改`init.rc`不足以完全解决问题,则可能还需要调整Zygote的相关实现。可以通过修改`core/jni/com_android_internal_os_Zygote.cpp`以及`cmds/app_process/app_main.cpp`中的逻辑来解决无法正确设置UID的问题。此过程涉及深入理解Zygote进程初始化阶段的行为及其与SELinux交互的方式[^2]。 #### 调整ADB守护程序行为 对于某些特定场景下(例如调试环境中),还需注意调整ADB服务的行为以适应新的SELinux状态。可以在`system/core/adb/daemon/main.cpp`里找到函数定义部分,并将其返回值改为固定形式从而避免因SELinux引起的能力集丢弃问题: ```cpp static bool should_drop_capabilities_bounding_set() { return false; } ``` 上述改动使得即使处于permissive模式下的SELinux也不会影响到ADB功能正常运作[^3]。 #### 关于工具链配置注意事项 无论采用何种方式构建目标平台镜像,在实际开发过程中都应保持一致性的编译环境设定。即忽略掉不同版本之间可能存在差异性因素干扰最终效果评估标准——只要确认host等于arm-linux即可满足基本需求[^4]。 综上所述,以上措施能够有效帮助开发者实现在基于RK3588硬件架构之上部署支持permissive SELinux特性的Android 13操作系统实例的目标。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值