diff options
Diffstat (limited to 'zh-cn/security/selinux/compatibility.html')
-rw-r--r-- | zh-cn/security/selinux/compatibility.html | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/zh-cn/security/selinux/compatibility.html b/zh-cn/security/selinux/compatibility.html index 97bf87bc..98a66e16 100644 --- a/zh-cn/security/selinux/compatibility.html +++ b/zh-cn/security/selinux/compatibility.html @@ -24,7 +24,7 @@ 本文介绍 Android 如何处理与平台 OTA 相关的政策兼容性问题,其中新平台 SELinux 设置可能与旧供应商 SELinux 设置有所不同。 </p> <p> -<em></em><em></em>基于 Treble 的 SELinux 政策设计考虑到平台和供应商政策之间的二进制文件区别;如果供应商分区生成依赖项(例如 <code>platform</code> < <code>vendor</code> < <code>oem</code>),则该方案会变得更加复杂。 +基于 Treble 的 SELinux 政策设计考虑到平台和供应商政策之间的二进制文件区别;如果供应商分区生成依赖项(例如 <code>platform</code> < <code>vendor</code> < <code>oem</code>),则该方案会变得更加复杂。<em></em><em></em> </p> <p> 在 Android 8.0 及更高版本中,SELinux 全局政策划分为私有和公共组件。公共组件包含政策和相关基础架构,保证可用于平台版本。 @@ -140,7 +140,9 @@ AOSP SELinux 政策已经为平台与之交互的 <code>vendor</code> 分区部 </tr> </tbody></table> <aside class="note"> - <strong>*</strong> 有关更多示例,请参阅 <a href="https://android.googlesource.com/platform/system/sepolicy/+/master/private/file_contexts" class="external"><code>system/sepolicy/private/file_contexts</code></a>。</aside> + <strong>*</strong> 有关更多示例,请参阅 +<a href="https://android.googlesource.com/platform/system/sepolicy/+/master/private/file_contexts" class="external"> + <code>system/sepolicy/private/file_contexts</code></a>。</aside> <p> 因此,您在 <code>vendor</code> 分区中标记额外的文件时,必须遵循特定规则(通过 <code>neverallows</code> 强制执行): @@ -163,21 +165,21 @@ AOSP SELinux 政策已经为平台与之交互的 <code>vendor</code> 分区部 <code>Debugfs</code> 可以在 <code>file_contexts</code> 和 <code>genfscon</code> 中进行标记。在 Android 7.0 中,平台和供应商都会标记 <code>debugfs</code>。 </p> <p> -<strong>建议</strong>:在短期内,只有供应商政策标记 <code>debugfs</code>。从长远来看,请移除 <code>debugfs</code>。 +<strong>建议</strong>:在短期内,只有供应商政策可以标记 <code>debugfs</code>。从长远来看,请移除 <code>debugfs</code>。 </p> <h4 id="tracefs">Tracefs (/sys/kernel/debug/tracing)</h4> <p> <code>Tracefs</code> 可以在 <code>file_contexts</code> 和 <code>genfscon</code> 中进行标记。在 Android 7.0 中,只有平台标记 <code>tracefs</code>。 </p> <p> -<strong>建议</strong>:只有平台标记 <code>tracefs</code>。 +<strong>建议</strong>:只有平台可以标记 <code>tracefs</code>。 </p> <h4 id="sysfs">Sysfs (/sys)</h4> <p> <code>/sys</code> 中的文件可以使用 <code>file_contexts</code> 和 <code>genfscon</code> 进行标记。在 Android 7.0 中,平台和供应商都使用 <code>file_contexts</code> 和 <code>genfscon</code> 来标记 <code>sysfs</code> 中的文件。 </p> <p> -<strong>建议</strong>:平台可以标记非设备特定的 <code>sysfs</code> 节点。否则,只有供应商可以标记文件。 +<strong>建议</strong>:平台可以标记非特定于设备的 <code>sysfs</code> 节点。否则,只有供应商可以标记文件。 </p> <h4 id="tmpfs">tmpfs (/dev)</h4> <p> @@ -248,7 +250,7 @@ Vendor: allow v_domain sysfs:class perm;</pre> </p> <p> 以 <code>allow source_foo target_bar:<em>class -perm</em>;</code> 形式导出的平台公共政策包含在供应商政策中。在<a href="/security/selinux/build">编译</a>(包括相应的版本)期间,它将转换为将放入设备供应商部分的政策(显示在转换后的通用中间语言 (CIL) 中): +perm</em>;</code> 形式导出的平台公共政策包含在供应商政策中。在<a href="/security/selinux/build">编译</a>(包括相应的版本)期间,它将转换为将放入设备供应商部分的政策(以转换后的通用中间语言 (CIL) 显示): </p> <pre class="prettyprint"> (allow source_foo_vN target_bar_vN (class (perm)))</pre> <p> @@ -257,7 +259,7 @@ perm</em>;</code> 形式导出的平台公共政策包含在供应商政策中 <h3 id="policy-diffs">政策差异</h3> <p> -如果不在各版本差异中将属性映射到类型,那么通过向每种类型的末尾处添加 <code>_v<em>N</em></code> 来自动创建属性不起任何作用。Android 维护着属性版本之间的映射以及类型到这些属性的映射。这是在前面提到的包含语句的映射文件(例如 (CIL))中完成的: +如果不在各版本差异中将属性映射到类型,那么通过向每种类型的末尾添加 <code>_v<em>N</em></code> 来自动创建属性不起任何作用。Android 维护着属性版本之间的映射以及类型到这些属性的映射。这是在前面提到的包含语句的映射文件(例如 (CIL))中完成的: </p> <pre class="prettyprint">(typeattributeset foo_vN (foo))</pre> @@ -505,7 +507,7 @@ Android 9 包含以下与域相关的属性: 建议: </p> <ul> -<li>不受信任的应用应与系统服务通信,系统服务再与供应商 HIDL HAL 通信。例如,应用可以与 <code><a href="https://android.googlesource.com/platform/system/sepolicy/+/master/public/app.te#209" class="external">binderservicedomain</a></code> 通信,然后 <code>mediaserver</code>(这是 <code>binderservicedomain</code>)再与 <code><a href="https://android.googlesource.com/platform/system/sepolicy/+/master/private/mediaserver.te#6" class="external">hal_graphics_allocator</a></code> 通信。 +<li>不受信任的应用应与系统服务通信,系统服务再与供应商 HIDL HAL 通信。例如,应用可以与 <code><a href="https://android.googlesource.com/platform/system/sepolicy/+/master/public/app.te#209" class="external">binderservicedomain</a></code> 通信,然后 <code>mediaserver</code>(属于 <code>binderservicedomain</code>)再与 <code><a href="https://android.googlesource.com/platform/system/sepolicy/+/master/private/mediaserver.te#6" class="external">hal_graphics_allocator</a></code> 通信。 <p><strong><em>或</em></strong></p></li> <li>需要直接访问 <code>vendor</code> HAL 的应用应具有各自的供应商定义的 sepolicy 域。</li> |