概述

Smart 许可 (Smart License) 是面向 IoT 领域的一站式授权解决方案,包括了许可管理、应用程序加壳保护、应用程序二次开发包(SDK)三个部分。本篇将集中介绍许可的发布部分。

准备工作

Smart 许可管理入口

登录开发者中心 https://developer.lm.virbox.com 如下所示,在页面右上角即可看到 Smart 许可 的入口,点击接口进入智能许可新版管理平台。

签发许可流程

签发许可的流程一如旧版管理平台:

首先,创建产品,在产品管理中完成,一个产品只需要创建一次;

其次,创建模板,在销售模板中完成,可以为同一个产品创建多个销售模板,以满足不同的授权限制需要;

最后,签发许可,在许可管理中完成,只需要选择不同的销售模板进行签发即可,个别需要在签发时临时变更的内容可以进行在模板开关临时变更权限。

下面我们看具体的步骤。

发布许可

Smart 许可的产品管理与旧版产品管理定义的产品是共享的,也就是说旧版创建的产品在产品管理页面同样可以增删改查。

创建产品

  • 64子模块:
    • 共有64个可以自定义的子模块;
    • 勾选对应模块ID的复选框即表示定义了该模块ID,在此勾选的子模块在销售模板中才可以进行选择;
    • 子模块默认名称为"子模块N",其中N为对应模块ID值,模块名称在复选框勾选状态下才可以进行编辑;

产品展示

基本可以全貌展示一个产品的所有信息,包括:

产品名称、许可ID、以此产品创建的模板数量、以此产品签发的许可数量、这些签发的许可中的有效许可数量、最后一次更新时间、是否定义了子模块、是否定义了数据区;

以及快捷操作:

为此产品创建模板、查看产品信息、修改产品信息、删除产品。

创建模板

扣费方式,是指许可激活时系统从开发者账户中扣除对应许可费用的方式。

  • 账户余额: 许可扣费时从账户余额中扣除相应的费用;
  • 套餐许可: 许可扣费时从购买的套餐许可中按量扣除;
  • 赠送许可: 许可扣费时从系统赠送的许可中按量扣除;

使用方式

  • 一码一机:指一个授权码许可只能绑定一台机器
  • 一码多机:指一个授权码许可可以绑定多台机器,此时需要设置绑定机器的数量

临时权限

  • 发布许可时,允许操作员临时更改许可限制,勾选该权限时,管理员使用该模板发布许可时可以更改模板的许可限制项(扣费方式、使用方式、是否永久、时间跨度、开始时间、结束时间)
  • 发布许可时,允许操作员临时更改子模块选择,勾选该权限时,管理员使用该模板发布许可时可以更改模板的子模块选择(子模块勾选项)
  • 发布许可时,允许操作员临时更改数据区内容,勾选该权限时,管理员使用该模板发布许可时可以更改模板的数据区内容(只读区、读写区、公开区)

高级属性

  • 许可版本,需要编码实现通过版本控制许可使用的逻辑
  • 数据区,如果该模板关联的产品也定义了数据区,那么发布许可时优先使用模板定义的数据区;
  • 64子模块,产品定义了功能子模块后,在此处勾选需要开放给用户的子模块;

模板展示

基本可以全貌展示一个模板的所有信息,包括:模板名称、许可ID、扣费方式、永久/限时许可、使用方式、开放了哪些临时权限、以此模板发布的许可总量及激活量、最后一次更新时间、是否选择了子模块、是否设置了数据区。以及快捷操作:以此模板发布许可、查看模板信息、修改模板信息、删除模板。
 

发布许可

点击右上角【保存】即是发布了一条许可。

许可展示

注意这里的“授权码”,这里的授权码我们后面要用到。

许可详情

许可详情页面可以查看到授权码许可的关联信息、许可信息、使用情况、许可更新记录、许可激活记录,并且提供了权限内的所有功能操作。

许可激活

使用 Smart License,软件用户无需安装驱动,授权码的绑定、解绑和更新等操作,可以使用全 API 调用实现,也可以直接执行 ssclt 工具完成。本文仅介绍通过 ssclt 工具进行操作的说明。

命令简介

可通过命令 ./ssclt -h 查看 ssclt 工具具体使用实例和说明。

命令描述
-h --helpPrint usage information
-v --versionPrint program version
-l --licensePrint soft licenses information
-d --devicePrint device information
--online_bind <license_key>Online binding the soft license. e.g. ssclt --online_bind 26W7-4ZTP-38YP-JRX1
--online_unbind <license_key>Online unbinding the soft license. e.g. ssclt --online_unbind 26W7-4ZTP-38YP-JRX1
--online_refresh <license_key>Online unbinding the soft license. e.g. ssclt --online_refresh 26W7-4ZTP-38YP-JRX1
--get_offline_bind_c2d --c2d <path>Offline unbind c2d file obtaining, this file contains local hardware information. e.g. ssclt --get_offline_bind_c2d --c2d .
--get_offline_unbind_c2d <license_key> --c2d <path>Offline unbind c2d file obtaining, this file contains local hardware information. e.g: ssclt --get_offline_unbind_c2d 26W7-4ZTP-38YP-JRX1 --c2d .
--offline_bind <d2c_file_path>Import d2c file to local for offline binding e.g. ssclt --offline_bind ./sl_bind_20200219214525.D2C

绑定授权码

在线绑定

适用场景:设备处于联网状态,可以通过命令完成授权的在线绑定。

操作流程:

  1. 从开发者中心获取已签发的授权码

  2. 使用 ./ssclt --online_bind xxxx-xxxx-xxxx-xxxx 命令,在联网的环境下绑定授权码;

    例如输入 ./ssclt --online_bind 5ED7-TXZ0-4STQ-NWCX  命令,完成授权码在线绑定。

  3. 使用 ./ssclt -l 查看该条授权码是否已经绑定到本地。

执行结果:执行 ./ssclt --online_bind 5ED7-TXZ0-4STQ-NWCX 命令后 ,返回 succeed 表示在线绑定成功。

离线绑定

适用场景:设备处于离线状态,此时需要将授权绑定到离线设备上。

操作流程:

  1. 需要绑定授权的离线设备(简称“离线设备”),生成设备指纹信息 c2d文件 生成 c2d文件:执行./ ssclt --get_offline_bind_c2d --c2d .命令后,会在当前目录生成后缀名为 *.c2d 的文件,例如:sl_bind_20200228180235.c2d

  2. 拷贝 sl_bind_20200228180235. c2d 文件到可以联网的计算机(简称“计算机”)

  3. 在计算机登录授权码兑换网站 https://user.lm.virbox.com/sn/login.html, 输入授权码和图片验证码进入用户许可中心 进行授权码兑换,在 离线升级 中选择 导入C2D文件 右侧的编辑框,浏览器弹框要求选择需要上传的 C2D 文件,选中文件后,点击右侧的 兑换D2C升级包 按钮申请兑换,离线授权绑定文件(D2C)兑换成功后浏览器下载 sl_bind_20200228180235.D2C 文件到当前计算机默认下载路径

  4. 从浏览器下载目录拷贝离线授权激活文件(sl_bind_20200228180235.D2C)到离线设备

  5. 在离线设备导入离线授权文件(sl_bind_20200228180235.D2C)绑定授权,执行 ./ssclt --offline_bind ./sl_bind_20200228180235.D2C

  6. 在离线设备查看授权是否绑定成功,执行 ./ssclt -l

执行结果:执行 ./ssclt --offline_bind ./sl_bind_20200228180235.D2C 命令后 ,返回 succeed 表示离线绑定成功。

解绑授权码

在线解绑

适用场景:设备处于联网状态,可以通过命令完成授权的在线解绑。

操作流程:

  1. 输入 ./ssclt --online_unbind 指定授权码,在联网环境下解绑相应授权码,eg:./ssclt --online_unbind 5ED7-TXZ0-4STQ-NWCX

  2. 查看授权码是否解绑,执行 ./ssclt -l

执行结果:执行 ./ssclt --offline_bind ./sl_bind_20200228180235.D2C 命令后 ,返回 succeed 表示离线绑定成功。

离线解绑

适用场景:设备处于离线状态,此时需要将授权解绑。

操作流程:

  1. 在离线设备本地生成离线解绑.c2d 文件,执行 ./ssclt --get_offline_unbind_c2d 5ED7-TXZ0-4STQ-NWCX --c2d . 当前目录生成后缀名为 *.c2d 的文件,例如 sl_unbind_5ED7-TXZ0-4STQ-NWCX_20200228180235.c2d

  2. 将上一步生成的 sl_unbind_5ED7-TXZ0-4STQ-NWCX_20200228180235.c2d 文件,拷贝至可联网计算机。在计算机访问授权码兑换网站 https://user.lm.virbox.com/sn/login.html ,在离线解绑模块将sl_unbind_5ED7-TXZ0-4STQ-NWCX_20200228180235.c2d 文件上传,完成解绑。

执行结果:

操作完上述2个步骤,此时授权已经在本地(即离线设备端)删除,通过 ./ssclt -l 查看授权已无此许可信息;该条许可的绑定信息会从云平台上清除,当前设备可再次绑定,但 Smart License 暂不支持更换其他设备绑定。

刷新授权码

刷新授权码必须在设备可以联网的情况下执行,离线设备无法刷新。

  1. 使用 ./ssclt -l 确认已经绑定的需要刷新的软锁许可

  2. 使用./ssclt --online_refresh 刷新许可,例如:./ssclt --online_refresh 5ED7-TXZ0-4STQ-NWCX

  3. 使用./ssclt -l可以看到许可条款已更新

注:以上所有操作中使用的授权码 5ED7-TXZ0-4STQ-NWCX 为示例授权码,实际操作中请使用对应授权码。

常见错误码

运行时报错 0x22001001

错误描述:Running environment initialization failed. 0x22001001

错误原因:硬件指纹变更

解决方法:请联系深思技术支持协助解决。

绑定授权码时提示 0x51005013

错误原因:授权码已经过期

绑定授权码是提示 0x51005014

错误原因:授权码绑定数已达上限

绑定授权码时提示 0x51005003

错误原因:授权码不存在,请检查授权码输入是否正确,或者授权码是否已经被删除

离线绑定 D2C 时提示 0x22001008

错误原因:绑定包不匹配,检查D2C是否由同一c2d重复生成。一个c2d只能兑换一个授权码的一个有效D2C,最后一个有效,其余D2C全部无效。

解决方法:确认最后一个生成的D2C,或者重新生成D2C。

绑定授权码时提示 0x5100500B

错误原因: C2D 文件有误(已过期,请重新生成)

解决方法:请检查生成 C2D-> 兑换 D2C -> 到绑定时间是否超过24小时

注:限时授权生成 C2D 到绑定 D2C 总时间要小于24小时。超出24小时则升级包失效。

永久授权无此限制。

运行程序时提示 0x13000009

0x13000009 表示“版本不匹配“,Smart License 只支持软锁,登录许可时指定 "软锁" 以外的其他类型就会返回此错误。

  • 加壳保护

错误原因:许可选项中 许可形式 勾选除 软锁 以外的其他类型

解决方法:重新对应用加壳,只勾选 软锁 类型。

  • 集成 API

错误原因:许可登录接口 slm_login 登录许可类型

解决方法:参照示例代码

小结

Smart 许可是针对设备领域的授权管理产品,面向的开发环境主要是开发板等移动终端,所以流程上可能会有些复杂,我们会提供全面的开发手册和开发库帮助开发者完成开发。