What to build
从固定 slk0 对象改为按内核实际 controller registry 动态创建和移除 adapter D-Bus 对象,并明确区分 source registered、product enabled 与 runtime available。
每个对象拥有独立状态、事件订阅、设备列表、安全上下文、Profile 注册范围与 PHY policy;controller id 是内核、libsparklink、slkd 和 D-Bus 之间的稳定路由键。产品或 package 包含代码,不能被当成硬件存在或能力已启用。
State model
- Supported:当前安装的内核和用户态版本具备 SparkLink Module。
- Enabled:发行版、产品配置或管理员 policy 允许启动该能力。
- Available:Controller Backend 真实 probe、channel open 和初始化成功。
- Powered:已上电并可接受管理操作。
这些状态必须独立变化并可观察。不能复制 OpenHarmony 通用 HDI 中 CheckOnBoardState 硬编码 true 的做法。
Acceptance criteria
Reference evidence
OpenHarmony 的 productdefine PR 1133 只注册 drivers_peripheral_nearlink 与 drivers_interface_nearlink;nearlink_service 仍需具体产品 config 单独加入,并设置 const.nearlink.enable=1。这说明 source registration、product enable 与 runtime hardware presence 是不同事实。
Blocked by
What to build
从固定 slk0 对象改为按内核实际 controller registry 动态创建和移除 adapter D-Bus 对象,并明确区分 source registered、product enabled 与 runtime available。
每个对象拥有独立状态、事件订阅、设备列表、安全上下文、Profile 注册范围与 PHY policy;controller id 是内核、libsparklink、slkd 和 D-Bus 之间的稳定路由键。产品或 package 包含代码,不能被当成硬件存在或能力已启用。
State model
这些状态必须独立变化并可观察。不能复制 OpenHarmony 通用 HDI 中 CheckOnBoardState 硬编码 true 的做法。
Acceptance criteria
Reference evidence
OpenHarmony 的 productdefine PR 1133 只注册 drivers_peripheral_nearlink 与 drivers_interface_nearlink;nearlink_service 仍需具体产品 config 单独加入,并设置 const.nearlink.enable=1。这说明 source registration、product enable 与 runtime hardware presence 是不同事实。
Blocked by