Skip to main content
支持对内存和 SEPolicy 进行定制。对于大尺寸的可信应用程序,你可以定制内存区域。

定制内存

内存定制功能仅面向具有授权访问权限的许可用户。如果你拥有访问权限,请参阅 Qualcomm Linux Security Guide - Addendum

定制 SEPolicy

Qualcomm SEPolicy 依赖于上游 SEPolicy。因此,构建和定制 SEPolicy 使用的是上游 SEPolicy 的 make 系统。 对上游 selinux 策略进行定制: 对 ostree selinux 策略进行定制:
  • 在现有 sepolicy 代码基础上创建补丁。
  • 将更改以补丁形式存放在 meta-updater/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted/ 目录中,并在 SRC_URI meta-updater/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted_git.bbappend 中包含该补丁
  • uptane/meta-updater 上创建 Pull Request
对 qualcomm selinux 策略进行定制:
  • 在现有 sepolicy 代码基础上创建补丁。
  • 将更改以补丁形式存放在 meta-qcom/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted/ 目录中,并在 SRC_URI meta-qcom/dynamic-layers/selinux/recipes-security/refpolicy/refpolicy-targeted_git.bbappend 中包含该补丁
  • qualcomm-linux/meta-qcom 上创建 Pull Request
为新服务/模块添加 sepolicy:
  • 在现有 selinux 策略基础上创建新的 <module_name>.fc<module_name>.if<module_name>.te 文件,并添加所需的 selinux 规则。
  • 将新模块上游提交到 SELinuxProject/refpolicy。如果服务/模块是私有的,请跳过此步骤。
  • 确定服务/模块所在的 yocto 层。在该层内,创建 dynamic-layers/.../refpolicy-targeted/ 用于以补丁形式保存 sepolicy,并创建 dynamic-layers/.../refpolicy-targeted_git.bbappend 配方以包含补丁。
Qualcomm 代码被配置为模块化 SEPolicy 模式,SELinux 类型为 targeted。要修改 SEPolicy 模式和 SELinux 类型,请执行以下操作:

编译 SEPolicy

  1. 设置构建环境。有关说明,请参阅 Qualcomm Linux 构建指南
  2. 仅编译 selinux 发行版:
  3. 编译 catchall 发行版(该发行版包含 selinux 以及其他一些发行版特性):

修改和构建

你也可以进行增量修改和构建。 Ubuntu 上的 audit2allow 和相关研究工具不支持 policy version35。你可以通过安装 policycoreutils-python-utils 来运行 audit2allow。
然后在此 shell 中运行 audit2allow。 从目标设备的 /etc/selinux/targeted/policy/policy.35 拉取 policy version35。该策略也可在构建树中获得:build/tmp/sysroots-components/<machine_name>/refpolicy-targeted/etc/selinux/targeted/policy/policy.35

捕获拒绝记录

如果 denials.txt 是捕获拒绝记录的文件,请使用以下命令解决这些拒绝:

配置重放保护内存块

重放保护内存块(RPMB)配置在设备整个生命周期中是一次性过程,且不可逆。
  • 为安全启动设备配置 RPMB:
    • 在安全启动过程中,RPMB 会自动使用生产密钥进行配置。
    • 请勿在启用安全启动之前配置 RPMB。
    • 对于安全启动设备,无需执行任何显式的 RPMB 配置步骤。
  • 为非安全启动设备配置 RPMB:
    • 你可以使用测试密钥配置 RPMB,用于测试和演练某些用例,以观察类似于安全启动设备的功能。示例用例包括:
      • 安全文件系统(SFS)文件版本信息和防回滚保护
      • 可信应用程序防回滚保护
    一旦使用测试密钥配置了 RPMB,就无法再在该设备上启用安全启动。

后续步骤