上篇文章介绍了编解码开发汇总的环境搭建、Profile说明和插件编写,本篇教程就插件打包、插件质检和插件签名详解。
目录
四、插件打包
1、新建package文件,包含一个“preload”子文件夹,将上一章中生成的JAR包拷贝至preload文件夹下。
2、在package文件夹中新建“package-info.json”文件(文本格式)。打开该文件,以UTF-8无BOM格式编辑,将以下大括号内容拷入该文件中并保存。
{
"specVersion": "1.0",
"fileName": "package.zip",
"version": "1.0.0",
"deviceType": "MyType",
"manufacturerName": "ThirdParty",
"model": "MyModel",
"description": "CIG codec plugin auto-generated by sps.",
"platform": "linux",
"packageType": "CIGPlugin",
"date": "Tue Nov 27 07:55:49 GMT 2018",
"ignoreList": [],
"bundles": [{
"bundleName": "MyType-ThirdParty-MyModel",
"bundleVersion": "1.0.0",
"priority": 5,
"fileName": "MyType-ThirdParty-MyModel-1.0.0.jar",
"bundleDesc": "",
"versionDesc": ""
}]
}
注: 在移植到别的项目中的时候,该文件需要修改的地方有:
- "deviceType",需根据实际的profile填写设备类型
- "manufacturerName",需根据实际的profile填写厂商名称
- "model",需根据实际的profile填写设备型号
- "bundleName",根据实际的profile填写,设备型号-厂商ID-设备类型
- "fileName",jar包的名称
3、选中"package"文件夹中的全部文件,打包成zip格式。(“package.zip”,该压缩包内不能包含“package”目录)
说明:本章内容可参考 “华为IoT平台NB-IoT设备集成开发指南.pdf” 6.5.4.2.3章节的“制作插件包”部分的内容。
package.zip 文件即为制作好的编解码插件包。
五、插件质检
插件质检,是指插件开发完后之后,对插件的编解码功能的一个验证的过程,用于检测编解码插件中存在的问题。(当然,如果你对自己开发的插件足够自信的话,也可以不用进行质检咯,直接上传平台使用。本文强烈建议上传插件前进行质检工作。)插件质检的过程比较简单,本文不再赘述,可通过NBIoT 编解码插件检测工具使用说明进行 学习。
六、插件签名
插件签名,是指对生成的插件包进行数字签名,防止别人恶意篡改你的插件包,保证文件的完整性。
插件签名不属于开发过程,仅在需要把插件发送给别人的时候(比如IoT平台维护人员),一般要求要对插件进行签名。
签名过程如下:
1、解压“signtool.zip”,运行“signtool.exe”,运行界面如下图18所示。工具有三块功能,最上边用于生成公私密钥对,中间用于对文件进行签名,最下边用于校验。
2、生成公私密钥对。点击“签名算法”选择区域,选择一个算法,在“私钥加密口令”输入框中输入私密加密口令(由自己设定的一个密码),然后点击 “生成公私密钥”按钮,在弹出的窗口中选择密钥保存的位置。在该位置会生成两个文件:
公钥: public.pem
私钥: private.pem
3、签名。点击 “导入私钥文件”按钮,在弹出窗口中选择上一步中生成的私钥文件(private.pem);点击“需要数字签名的软件”右侧的文件夹按钮,在弹出窗口中选择要签名的插件包(插件包路径不能有中文);点击 “进行数字签名”按钮,会在插件包所在的路径生成签名后的文件,名称为 “xxx-signed.xxx”。
4、验签。发送插件包给别人时,要将公钥和签名文件一并发送过去。
点击 “导入公钥文件”,在弹出窗口中选择公钥文件;点击 “需要验签的软件” 右侧的文件夹按钮,在弹出窗口中选择收到的已签名的插件包(插件包路径不能有中文),点击 “进行软件包验签”按钮。
验证成功则弹出 “验证签名成功”。
验证失败则弹出 “验签异常”,说明收到的插件包可能被异常修改过。
七、附件
附件中给出本例中的profile和插件工程、插件包,以及质检工具、签名工具等。
本项目的资料可以在github下载[链接]。转载请标明出处。