本文档整理了在紫红色中使用更新频道信息的政策。
背景
Fuchsia 通过 fuchsia.update.channelcontrol FIDL API 提供获取/设置通道信息。为了将这些 API 作为 Fuchsia SDK 的一部分公开给更多客户端,请务必确保客户端行为不会根据通道字符串进行调制。下面的政策适用于内部客户端以及 Fuchsia 支持的任何其他组件。
政策
想要获得 Update Channel API 使用权限的客户端必须符合以下要求:
- 不能在条件逻辑中使用渠道信息
- 客户端软件必须执行完全相同的代码路径,无需考虑渠道。
- 频道信息不得以允许未经批准的使用情况进行缓存或共享。
- 这意味着其他客户端不应通过读取缓存的通道信息来绕过该政策。
在 Fuchsia 平台中更新频道使用情况
在 Fuchsia“主干”中,对通道的使用必须符合定义的政策。此外,还必须应用以下属性:
- 应该有一个组件负责写入频道信息。该组件应通过 FIDL 服务将此功能导出到其他客户端。应导出两项读取/写入功能。
- 频道信息的读取者应使用权威组件的规范 API,并且不应使用此信息来更改运行时行为。
在 IDK 内更新频道使用情况
Fuchsia 组件的 IDK 中频道信息的用户必须遵循定义的政策。必须应用以下属性:
- 客户端只能出于报告(通过指标代理)、收集信息或向前端界面显示信息的目的读取该渠道。
- 在运行时必须只有一个组件可以设置该通道。 其他客户端必须通过此组件进行通信,才能设置该通道。 当前是 Fuchsia Omaha 客户端。