上篇文章介绍了编解码开发汇总的环境搭建、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下载[链接]。转载请标明出处。

华为IoT平台NB编解码插件开发详细教程【下篇】相关推荐

  1. 华为IoT平台NB编解码插件开发详细教程【上篇】

    目录 0.前言 一.环境搭建 1.1 安装JDK 1.2 安装eclipse 1.3 安装Maven 二.Profile说明 三.插件编写 3.1 源文件说明 3.2 修改文件路径(包含) 3.3 修 ...

  2. OceanConnect编解码插件开发教程

    概述 本文共分为四个章节,第一章介绍书写本文的意图,编解码概述,以及书写编解码插件所需的前期准备. 欢迎访问原文最新,链接http://wwszp.top/Iot/oceanconnect-plugi ...

  3. 移远BC20模组使用LwM2M协议接入华为IoT平台(NB-IoT专栏—进阶篇2)

    目录 1.背景 2.部署华为云 3.华为云与BC20模组进行数据收发实验 1.背景 最近在做一个智慧路灯项目,构思使用STM32结合NB-IoT模组实现数据上传和联动控制,并且可以使用GPS模块上传路 ...

  4. NB-IoT使用CoAP协议接入华为IoT平台(NB-IoT项目实战专栏—8)

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_38106923/article/ ...

  5. NB-IoT使用CoAP协议接入华为IoT平台教程

    文章目录 1.准备 1.1.NB-IoT模组 1.2.NB-IoT SIM卡 1.3.IoT平台 2.模块配置与IMEI号的获取 3.设备注册 该文章为本人原创,首发在华为云社区 上一次我们讲了&qu ...

  6. QT使用MQTT协议对接华为IOT平台

    QT使用MQTT协议对接华为IOT平台文章目录QT使用MQTT协议对接华为IOT平台一.环境说明二.QMQTT源码编译三.对接华为IoT平台四.效果验证    最近想使用QT通过MQTT协议接入华为的 ...

  7. OpenHarmony通过MQTT连接 “改版后的华为IoT平台”

    一.前言 本篇文章我们使用的是BearPi-HM_Nano开发板:小熊派的主板+E53_IA1扩展板 源码用的是D6_iot_cloud_oc,点击下载BearPi-HM_Nano全量源码 那么为什么 ...

  8. webrtc M66 华为手机h264硬编解码不支持问题

    webrtc M66 华为手机h264硬编解码不支持问题 最近使用webrtc的h264编码时,测试发现华为都不支持,而其他手机可以,通过阅读webrtc的代码发现如下问题 webrtc 会先检测手机 ...

  9. 移远BC95使用CoAP协议接入华为IoT平台(NB-IoT专栏—进阶篇1)

    目录 1.华为 NB-IoT CoAP总体方案拓扑 2.华为IoT平台环境搭建 3.NB-IoT上传数据到云平台 BC95的CoAP测试需要云平台配合,当前的支持CoAP协议的平台有华为OceanCo ...

最新文章

  1. jfinal框架下使用c3P0连接池连接sql server 2008
  2. Python3 与 C# 网络编程之~ 网络基础篇
  3. JAVA时间日期处理类,主要用来遍历两个日期之间的每一天。
  4. java-数据结构-续
  5. Code Quality
  6. 2021信服云创新峰会:托管云成上云第三种选择
  7. Annotation实战【自定义AbstractProcessor】
  8. NYOJ4——ASCII码排序
  9. oa导入表格html,oa系统表单模板导入操作过程
  10. 史上最强三千六百道脑筋急转弯(3)
  11. 微星主板黑苹果_11.11黑苹果主机金牌装机单(intel篇)
  12. python爬取视频代码
  13. 【Java对象转换】002- Java 对象与 Map 互转
  14. CAD制图初学入门:CAD软件中属性定义的相关应用
  15. Spring IOC与AOP实现原理
  16. 怎么把epub转换成txt文本
  17. Alpha 冲刺(6/10)
  18. XaaC一切皆计算机 和 XaaS一切皆服务
  19. python自动化框架:pywinauto实现博客之星自动化评论
  20. javafx:AnchorPane设置子容器和父容器同等大小

热门文章

  1. 一个程序详细研究DataReader(转)
  2. javascript对象包含哪些要素_让人迷糊的JavaScript对象(Object一)
  3. python字符串解析_Python-字符串解析-正则-re
  4. [poco] 访问数据库
  5. linux mmap 内存映射 mmap() vs read()/write()/lseek()
  6. Ubuntu出现没有正确安装GNOME电源管理器的默认配置
  7. 自动化测试中Python与C/C++的混合使用
  8. [react] 你最不喜欢React的哪一个特性(说一个就好)?
  9. [vue] EventBus注册在全局上时,路由切换时会重复触发事件,如何解决呢?
  10. [vue] 写出你知道的表单修饰符和事件修饰符