# 定制安全服务

支持内存和 SEPolicy 的自定义。关于大型可信应用程序，您可以自定义内存区域。

## 定制内存

要自定义内存，此功能仅向拥有授权访问权限的许可用户开放。如果您拥有访问权限，请参阅 [Qualcomm Linux Security Guide - Addendum](https://docs.qualcomm.com/bundle/resource/topics/80-70020-11A/customize-fru.html)。

## 定制 SEPolicy

Qualcomm SEPolicy 依赖于上游 SEPolicy。因此，上游 SEPolicy 的生成系统用于编译和定制 SEPolicy。

对上游代码的任何定制都必须存储在 [patches](https://github.com/quic-yocto/meta-qcom-hwe/tree/kirkstone/dynamic-layers/selinux/recipes-security/sepolicy/patches) 目录下，作为指向上游代码的路径。您可以在 [SELinuxProject/refpolicy](https://github.com/SELinuxProject/refpolicy/) 中找到上游代码。

Qualcomm 代码按照目标配置为整体 SEPolicy 模式和 SELinux 类型。要修改 SEPolicy 模式和 SELinux 类型，请执行以下操作：

> 
> 
> - 要更改 SELinux 类型和模式，用户可以编辑 [Qualcomm 基础文件](https://github.com/quic-yocto/meta-qcom-distro/blob/kirkstone/conf/distro/include/qcom-base.inc)。
> - 要添加 SEPolicy 补丁，请将其添加到[补丁文件夹](https://github.com/quic-yocto/meta-qcom-hwe/tree/kirkstone/dynamic-layers/selinux/recipes-security/sepolicy/patches)并更新相应的 selinux\_type bbappend 文件（refpolicy-targeted.bbappend 或 refpolicy-mls.bbappend），默认情况下未设置。在 distro 中添加 selinux 启用代码，然后编辑 PREFERRED\_PROVIDER\_virtual/refpolicy。

**编译 SEPolicy**

1. 要编译 SEPolicy，请运行以下命令：

export SHELL=/bin/bash
        Copy to clipboard
2. 搭建编译环境。有关说明，请参阅 [Qualcomm Linux 编译指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/github_workflow_unregistered_users.html)。
3. 根据 SELinux 类型，仅编译带有 `bitbake  refpolicy-mls` 或 `bitbake  refpolicy-targeted` 的 SEPolicy。

bitbake <recipe_file_name>
        Copy to clipboard

**修改和编译**

您还可以采用增量方式进行修改和编译。

Ubuntu 18 或 20 上的 audit2allow 和 research 工具不支持策略版本 33。从 Ubuntu 23 起支持策略版本 33。如果您使用的不是 Ubuntu 23，则可以使用 docker 设备或虚拟机来运行 audit2allow。

**安装 docker**

以下命令用于在较低版本的 Ubuntu 上安装 docker。

sudo docker pull ubuntu:23.04
    sudo docker run -ti --rm ubuntu /bin/bash
    apt-get update
    apt-get -y install policycoreutils
    apt-get install -y policycoreutils-python-utils
    Copy to clipboard

然后在此 shell 上运行 audit2allow。

从目标 `/etc/selinux/mls/policy/policy.33` 拉取策略版本 33。此策略也可在编译树中使用。使用 mountbind 或 docker copy 命令与 docker 共享策略。

**采集拒绝**

如果从 `target /build` 中提取 `policy.33` 时命令提示符没有更改，并且如果 `denials.txt` 是采集拒绝的文件，请使用以下命令：

audit2allow -i denails.txt -p policy.33
    Copy to clipboard

**未找到命令**

如果未找到此命令，请使用以下命令安装所需的软件包：

sudo apt install policycoreutils-python-utils
    Copy to clipboard

## 后续步骤

- 有关常见的日志记录和调试技术，请参阅[调试 Qualcomm TEE 和安全设备](https://docs.qualcomm.com/doc/80-70020-11SC/topic/debug.html#debug)。
- 要了解如何开发和运行受信任的客户端应用程序以及示例代码和示例，请参阅[开发受信任的客户端应用程序](https://docs.qualcomm.com/doc/80-70020-11SC/topic/develop_lru.html#develop-lru)。

Last Published: Apr 14, 2026

[Previous Topic
安装或升级 SoftSKU 功能包](https://docs.qualcomm.com/bundle/publicresource/80-70020-11SC/topics/upgrade-qualcomm-wes-feature-pack.md) [Next Topic
调试 Qualcomm TEE 和安全设备](https://docs.qualcomm.com/bundle/publicresource/80-70020-11SC/topics/debug.md)