License 安装与生命周期

选择 SDK 能力、安装已签发的 Chrovia License、检查状态,并正确替换或撤销授权。

Chrovia License 是浏览器实例的已签名授权文件,不是扩展、EP 文件或登录会话。所有 SDK 能力都使用同一套授权模型。

获取合适的 License

在 Console 中创建试用 License购买商业 License,选择集成所需的操作系统和能力。平台标识为 windowsmacoslinux;获得某平台授权不代表该平台一定已有可下载的浏览器发行包。

能力是区分大小写的布尔字段,例如 payload.entitlements.networkIntercept: true。License 还包含许可证 ID、被授权方、到期时间、平台列表,以及可选的内核主版本限制。这些都是已签名字段,不是下载后可以自行编辑的设置。

授予能力不一定等于启用功能。例如 disableDevTools 还需要 EP internal.disable_devtools: trueextendedPrefssignedExtendedPrefs 是不同能力:前者开放 prefs API 和受支持的 Profile 偏好覆盖,后者要求验证 EP 签名。

安装文件

完全退出实例后,原样复制已签发文件。文件名必须是 Chrovia License,不能带 .json.txt 后缀。

位置行为
<用户数据目录>/Chrovia License优先读取,适用于该实例目录
<Provision 根目录>/Chrovia License只读回退来源,仅在实例文件不存在时使用

用户数据目录是 --user-data-dir 指定的根目录,不是其中的 Default 子目录。已存在但无法读取或无效的文件不会回退到 Provision License。各平台根目录位置见 Provision 目录

SDK 开发入门使用独立的绝对用户数据路径。如果两个位置都没有 License,受授权控制的能力保持不可用;删除文件不会解锁 SDK。

核对已签发的授权

根据部署需要核对 License ID、被授权方、到期时间、允许的平台、能力,以及可能存在的 Chromium 主版本限制。版本范围包含上下边界。如果有误,应申请替换文件,不要编辑下载的文件。

只有签发时包含 noLease: true 的 License 才免除在线租约要求。如果授予了 signedExtendedPrefs,还应通过该部署的配置提供方获取匹配的已签名 Extended Preferences 文件。

完整 License 应保密,不要交给网站或输出到日志。检查状态请使用下面的 API。

只检查状态,不触发续租

在 Provision Service Worker 控制台中:

const api = globalThis.chrovia?.license;
if (api) {
  const state = await api.get();
  console.log({
    valid: state.valid,
    requiresLease: state.requiresLease,
    licenseId: state.licenseId,
    leaseExpiresAt: state.leaseExpiresAt,
  });
}

get() 不消耗配额,也不会发起续租。valid 表示已加载的 License 状态,不是完整的实时授权结论。leaseExpiresAt 在启动初期可能是启动宽限期截止时间。在据此构建状态界面前,请阅读租约。License API 没有单独的能力要求,但仍受执行上下文限制。

替换、到期与撤销

  1. 需要更换能力、平台范围或有效期时,获取新签发的 License。
  2. 完全退出浏览器实例。
  3. 替换实例实际使用位置中的文件,再重新启动。
  4. 如果开始要求 signedExtendedPrefs,或签名方发生变化,同时提供匹配的已签名 EP 文件。

运行进程会加载 License 状态和能力,替换文件不是热更新。Console 撤销会阻止后续在线租约申请,不是立即推送到所有浏览器,也不会远程撤销离线 noLease 进程。在线到期和终止性续租失败由租约流程处理。

排查问题

  • JSON 或签名无效:恢复未经编辑的下载文件并核对文件名。
  • 操作系统或内核不匹配:申请覆盖真实运行平台和 Chromium 主版本的 License。
  • 能力返回 undefined:同时检查已签发能力和 JS 执行上下文。
  • License 有效但出现锁定提示:检查 Infra 续租错误、网络、配额及撤销状态。
  • 替换 Provision 文件无效:检查用户数据目录是否有优先级更高的 License。