跳到主要内容

预置许可(离线短码)

来源:生产部署包 userManual_Chinese/预置许可使用手册.pdf(VirboxLME-080000000000090D-2026.06.10)。

用于软锁在不能插 USB、不便传文件、或涉密不能带电子设备的环境里激活。用户手工抄短码,或用可联网设备扫码,兑换离线激活码。

版本​

  • 私有化授权中心不低于 2.23.0
  • SDK 不低于 2.6.0.69374
  • 许可激活工具不低于 1.0.1.69357

术语​

术语含义
预置许可模板在私有化服务里创建。定义产品的许可信息。之后据此生成预置许可包和授权码。
预置许可包(.D2C)从私有化服务导出。含完整许可信息。随开发商产品发布。
授权码按预置许可模板发布,发给最终用户,用来兑换离线激活码。
预置许可请求短码在目标环境生成,含设备绑定所需硬件信息。用户凭它到用户许可中心兑换离线激活码。
预置许可请求二维码短码的二维码,供可联网设备扫码。
离线激活码在用户许可中心输入授权码和请求短码后生成,在离线环境完成激活。
离线解绑码目标环境执行解绑后生成。上传到用户许可中心,清除绑定记录并释放同时绑定数。
离线解绑请求码解绑码的二维码。

流程​

  1. 开发商创建预置许可模板并导出预置许可包。
  2. 按该模板发布授权码,连同软件交给用户。
  3. 用户在离线环境生成请求短码,再用能连到私有化服务的设备或人工抄码兑换离线激活码,然后激活。

界面和 OpenAPI 都可以发布。

界面​

  1. 新建产品。
  2. 新建授权码模板,写全许可信息。
  3. 在模板界面下载预置许可包,得到 *.D2C。集成进产品并随软件发布。没有成功下载预置许可包之前,不能签发预置授权码。
  4. 发布许可时选择「预置许可」,生成授权码并发给用户。

OpenAPI​

开发者中心的 OpenAPI 手册有参数。主流程:

  1. 创建预置许可模板。创建后许可条件不能改。要改条款必须新建模板。
  2. 导出预置许可包。接口返回包内容,开发商写入文件并集成到软件。该接口不支持并发。每 10 秒最多成功获取一个预置包。同一模板多次导出的内容完全一致。
  3. 发布授权码。授权码里的许可条款也不能改,以模板为准。

预置授权码的扣点与标准授权码相同。在开发者中心 → 授权扣减记录查看。用户手册补充:发布时不扣点,授权码绑定后才扣点。

用户激活​

许可激活工具:授权码/借阅码 → 激活 → 短码激活。先在「设置预置许可包目录」里加上预置许可包所在目录。

  1. 输入授权码。
  2. 生成并上传预置许可请求短码,兑换离线激活码。
  3. 输入离线激活码完成激活。

能连到私有化服务的设备可以扫码兑换。不能扫码时,抄录短码,用工具里的「兑换地址」打开用户许可中心网页兑换。

SDK 集成步骤:取得预置许可包完整路径 → 生成请求短码 → 用户在平台侧兑换离线激活码 → 用激活码完成激活。

SLM_UINT32 ret = slm_get_preset_pkg_path(lickey, search_dir, &pkg_path);
ret = slm_slock_c2d_bind_request(&short_c2d, ENUM_C2D_REQ_TYPE_SHORT_C2D_V3);
ret = slm_offline_bind_preset_pkg(lickey, actcode, preset_pkg_content, &err_msg);

示例:

  • Runtime:\API\C\Sample\sample_offline_bind_preset_pkg
  • RuntimeV2:\API\C\SampleV2\sample_offline_bind_preset_pkg

用户解绑​

许可激活工具:选择授权 → 离线解绑 → 确认后生成解绑信息 → 上传到用户许可中心,释放同时绑定数。可以扫码,也可以在用户许可中心手工抄码。

SDK:slm_enum_device(SLM_DEVICE_TYPE_SLOCK_LOCAL, ...) 枚举本地软锁,再 slm_slock_c2d_unbind_request 生成解绑信息,由用户上传到服务。示例与激活相同目录。

短码规则​

请求短码含设备硬件信息。兑换离线激活码时,平台按短码记录绑定设备。

更新:

  • 工具里点刷新,手动更新。
  • 激活成功后自动更新。
  • 连续激活失败 5 次后自动更新。

过期:

  • 默认 24 小时。过期后状态为「已过期」,据此兑换的离线激活码也不能再用,要重新生成短码。
  • 用户 24 小时内完不成时,可在用户工具里延长。开发商也必须在授权码配置里放宽短码过期限制。授权码限制不超过 24 小时,而本地设成 2 天,兑换会报错。
  • 过期时间不要设太长,否则激活后软锁虚拟时钟偏差会变大。

惩罚:

  • 连续失败每满 5 次,惩罚等级升一级。
  • 惩罚时间按 3^n 分钟递增,上限 24 小时。
  • 进入惩罚后短码自动更新。惩罚时间内不能继续软锁离线激活。
  • 激活成功后,累计失败次数清零。

模板与授权码​

模板导出并发布后不能直接更新。要改数据区、许可类型、时间限制或其他许可功能,必须新建模板并重新导出预置许可包。旧包不会同步这些变更。

基于预置许可模板的授权码支持:在线绑定、在线解绑、离线绑定、离线解绑、离线短码激活。标准授权码模板不支持离线短码激活。

离线解绑码和离线激活码一一对应。同一设备用同一授权码再次生成新的离线激活码并绑定后,旧解绑码失效。上传旧码会失败,提示「离线解绑码与最新激活码不匹配,请使用最新的激活码重新绑定并解绑」。

常见问题​

没有找到对应的预置许可包:导出的包不在用户工具查找目录。在「设置预置许可包目录」里手动加上该目录。

离线短码激活后登录报 0x13000021(认证错误):旧 SDK 不能登录这种软授权。把 SDK 升到 2.6.0.69374 或更高。

限制​

不能用离线短码更新本机已经绑定的许可。模板创建后,许可详情和条款加密写进预置许可包;包一旦发布,后续内容更新不会进已发布的包。

要改许可内容:新建授权模板 → 发布新的预置许可包 → 替换旧包 → 重新激活。这是重新发布并重新激活,不是在旧包上增量更新。

时间跨度与标准绑定不同。标准授权码从首次绑定起算时间跨度。离线短码激活时,激活码里的时间是校准时间,SS 在本地绑定后把本地绑定时间设成绑定当时,因此本地可以使用超过私有化服务里所设时间跨度的许可。临时做法:用具体结束时间限制使用。