插件分发
OronBox 插件的来源、导入方式、包格式、legacy 兼容与更新机制
插件可以从官方源、社区目录、AstroBox v1 商店安装,也可以手动导入本地 .obp / .abp / .zip 文件
所有安装流程一致:解析包与清单后写入插件存储
插件来源
| 来源 | 标识 | 说明 |
|---|---|---|
| OronBox 官方源 | oronbox | OronBox-Server 提供的目录与下载,支持上传发布与下架 |
| 社区插件目录 | 资源源 | 注册了资源源的插件,作为社区资源目录的数据源 |
| AstroBox v1 商店 | abv1 | 已停止维护的只读目录,仅保留浏览与安装,不检测更新 |
| 手动导入 | — | 从本地选择 .obp / .abp / .zip 安装 |
插件页的「市场」标签页可以切换插件源(当前内置 oronbox 与 abv1 两个源)
OronBox 官方源
- 目录包含插件元数据、下载地址、上传者信息、图标与审核状态;条目会标注审核状态与原因
- 登录的上传者可以看到自己的条目,在 UI 中更新或下架;上传与下架需要登录 BandBBS,提交后进入审核流程
社区插件目录
插件可以注册一个资源源,把目录查询、详情、下载、设备分类提供给资源库
社区资源页会把这类资源源当作一个社区源,提供分页查询、详情、下载与设备筛选能力
AstroBox v1 商店
- 目录来自 GitHub 仓库
AstralSightStudios/AstroBox-Plugin-Repo(已停止维护),只读 - 该源不再维护,不做版本更新检测;下载时把清单、入口文件、图标等重新打包成安装包交给安装流程
导入
- 插件页点击「导入」按钮,文件选择器限定
.obp、.abp、.zip三种扩展名 - 选择后先本地解析包与清单,弹出安装确认对话框:显示插件名、声明的权限列表;legacy 插件会额外显示旧版兼容警告
- 确认后执行安装
上传发布(OronBox 官方源)需要登录 BandBBS:选择 .obp / .zip,包必须是非 legacy(legacy 不能发布);若同名 ID 已被他人发布则拒绝;确认后提交,服务端进入审核流程,UI 提示「已提交审核」
包格式与扩展名
.obp 是 ZIP 压缩包,根目录必须有 manifest.json
解析器按内容识别包,不校验扩展名;.abp、.zip 只是不同的扩展名约定:
| 扩展名 | 约定 |
|---|---|
.obp | OronBox 插件包,manifest 含 runtime 与 id |
.abp | AstroBox 旧格式,即不含 runtime 字段的 legacy 插件 |
.zip | 通用压缩包扩展名,导入与发布都接受 |
包解析与清单校验的限制见插件开发的「包格式」一节
legacy 兼容机制
- legacy 插件 = manifest 中没有
runtime字段的插件(runtime支持js/wasm/hybrid) - legacy 插件没有
id,安装时由name生成固定 ID:name小写化并 slug 化后接-加sha256(name)十六进制前 12 位(例如my-plugin-abcdef123456) - 运行时通过内置适配器把 AstroBox v1 的全局 API 翻译成 OronBox 宿主 API:
AstroBox.network.fetch→network.fetch、AstroBox.filesystem.*→file.*、AstroBox.thirdpartyapp.*→device.apps.*、AstroBox.debug.sendRaw→protocol.send、AstroBox.ui.updatePluginSettingsUI→ui.update等(特例:filesystem.unloadFile映射到file.remove,而非file.unload) - 权限按别名折算(见插件权限)
- 部分 AstroBox v1 API 在 OronBox 中不可用并直接报错:
modifyDeviceState、provider.registerCommunityProvider - 安装确认对话框会显示 legacy 兼容警告
更新
- 市场源更新检测:仅对非 legacy 目录条目生效;已安装版本低于目录版本时,条目显示「更新」按钮,否则显示「已是最新」;AstroBox v1 源是 legacy,永远不做更新检测
- 覆盖安装即更新:安装与已装插件同 ID 的包即为更新——关闭旧运行时、替换包内容,并保留原配置与「始终允许」的授权
- 发布者更新:对官方源中
owned的条目,上传同 ID 的新包即为更新,同样进入审核流程
卸载与数据清理
- 卸载:关闭运行时、清除授权、删除插件目录(含配置)
- 清除数据:关闭运行时、清除授权、删除数据与缓存,配置重置为空