机型支持
添加 Blade 机型
每款 Blade 都需要单独收集硬件证据,并通过相应的安全检查。
支持范围由代码决定
OpenBlade 能使用哪些功能,由正式版本的准入清单和类型化代码决定。
两种证据级别
目前的五种 实验性配置 根据上游实现为特定机型提供控制功能,与经过实机验证的命令目录分开审核。识别到对应机型后,这些功能会自动启用。新增实验性配置必须固定来源版本,限定类型化操作的范围,提供独立回读及暂停、恢复处理,并说明哪些行为尚未测试。
以下步骤说明实验性支持如何通过验证。即使实现与上游一致,也仍需完成实机应用、恢复和生命周期验证。
- 记录机型名称和编号、VID/PID、固件、HID 用途、报告长度,以及可靠的主机身份检查方法。不要记录笔记本序列号。
- 通过只读检查找到唯一且完全匹配的接口。设备缺失、访问受阻、无法唯一识别或信息不符时,必须拒绝操作。
- 测试设置命令前,先实现安全的设备身份、温控、风扇、电池、灯光和固件查询及其响应解码。拒绝格式错误或无法识别的响应。
- 使用 Synapse Observer收集机型证据。请按照 安全测试指南 测试各个值和供电状态。保存原值,并在测试后恢复。所有证据都须来自该机型。
- 只添加经过验证的类型化控制;缺少证据的控制应保持不可用。通用名称可以复用,各机型的字节差异则应留在对应的协议代码中。不要公开原始命令 API。
- 测试重连、睡眠和唤醒、服务重启、供电变化、异常响应、其他控制器介入、状态恢复及长时间运行。随后补充该机型的协议表,明确固件范围,并列出已审核的核心版本。
集成分工
| 层 | 贡献者职责 | 失败处理 |
|---|---|---|
| 身份 | 定义机型编号、VID/PID、实际观察到的 BIOS、EC 和 MCU 版本、已验证的固件范围、用途元组,以及确切的报告长度。 | 准入所需的信息只要有一项缺失、不符或无法确定,就必须拒绝设备。仅供参考的版本信息如果无法安全读取,应标为不可用。 |
| 封装 | 只有证明状态、事务、类别、ID、负载长度、校验和、报告 ID、填充及终止字节行为一致后,才能共享报告编解码器。 | 拒绝格式错误或未知的响应,不要将其转为默认值。 |
| 查询 | 在策略或界面使用某项状态前,先实现相应的类型化请求和命令专属响应解码器。 | 查询不可用或结果未知时,隐藏相关功能或供电决策。 |
| 设置命令 | 为每个脱敏夹具提供一个命名明确的操作。操作应有独立回读;若只能依赖一次性响应,则须记录响应约定和恢复证据。 | 不要提供原始类别、ID 或负载 API。没有证据的命令保持不可用。 |
| 功能 | 开放的命令必须同时满足设备身份精确匹配、夹具已准入、状态可读、供电符合要求及控制权归属等条件。 | 新机型的可用控制可能少于旧机型。 |
| 文档 | 添加该机型的协议表及已审核的核心版本。响应结构通常用符号表示;只有说明协议约定时确实需要,才列出具体字节。 | 文档不能使核心代码尚未准入的命令获得授权。 |
提交拉取请求前
- 附上脱敏夹具、解码器测试、集成测试、恢复证据和交互验证摘要。
- 证明 OpenBlade 不会向 PID、身份、用途元组、报告长度不符或存在歧义的接口写入。
- 分别记录查询和设置命令,包括接受的响应长度、值范围及回读限制。
- 说明如何确认结果:精确回读、通用状态、目视观察,还是一次性响应。
- 测试重启、重连、睡眠和唤醒、供电变化及外部控制器介入,并确认不会循环写入。
- 确认界面和服务都落实供电限制,且导出的诊断信息已脱敏。
- 链接文档更改及已审核的
openblade-core版本。 - 列出不支持的行为,以及只能设置、无法查询的行为。
- 不要公开原始捕获和本地日志。