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

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【PostGIS】PostgreSQL15+对应PostGIS安装教程及空间数据可视化

一、PostgreSQL15与对应PostGIS安装 PostgreSQL15安装:下载地址PostGIS安装:下载地址(选择倒数第二个) 1、PostgreSQL安装 下载安装包;开始安装,这里使用默认安装,一直next直到安装完成&…

React实现图片自适应

数据格式 [1xxxx,2xxxx,3xxxx,4xxxx,5xxxx,6xxxx,7xxxx,8,xxxx,9xxxx] 运行效果 代码部分 <divgutter{24}style{{width: 100%,display: flex,justifyContent: space-between,flexWrap: wrap ,}}>{item.imgList &&item.imgList.map((itemList, index) > (<…

上交大计算机复试机师难不难,本科复旦,考研上海交大复试第一,我感觉难度并不大...

我本人去年考研上海交大凯原法学院法学硕士&#xff0c;初试370分&#xff0c;排名第四。复试182分&#xff0c;排名第一。本科复旦&#xff0c;有过转专业经历因此法学院课程只学了3年&#xff0c;比较匆忙&#xff0c;基础不算好。2020年国家法律职业资格考试和考研同时备考&…

前端问题记录1:debounce is not a function

目录 项目场景&#xff1a; 问题描述&#xff1a; 原因分析&#xff1a; 解决方案&#xff1a; 项目场景&#xff1a; 问题描述&#xff1a; 原因分析&#xff1a; 变量重名 解决方案&#xff1a; 变量重名 关注我 一起进入前端学习群 谢谢

Linux Shell 通配符、元字符、转义符使用实例介绍

From: http://www.cnblogs.com/chengmo/archive/2010/10/17/1853344.html 说到shell通配符&#xff08;wildcard&#xff09;&#xff0c;大家在使用时候会经常用到。下面是一个实例&#xff1a; ?1?1234[chengmolocalhost ~/shell]$ lsa.txt b.txt c.old#2?1234[chengmo…

ant design model实现图片预览

代码部分 <divgutter{16}style{{width: 100%,display: flex,justifyContent: space-between,flexWrap: wrap ,}}>{detailMsg.imgList &&detailMsg.imgList.map((item, index) > (<div style{{ width: 30% }} key{index} onClick{() > this.handleClick(…

VMware Workstation Pro 无法在Windows 上运行的 解决办法

一、问题描述 国庆期间window10来了一次更新&#xff0c;导致VMware Workstation 无法在windows上运行&#xff0c;我的虚拟机版本是VMware Pro14。有两种方法解决该问题&#xff0c;第一种是直接卸载新安装的windows安装包&#xff0c;然后重启。第二种方式是升级VMware到最新…

机器学习之深度学习

本文基于台大机器学习技法系列课程进行的笔记总结。 一、主要内容 topic 1 深度神经网络结构 从类神经网络结构中我们已经发现了神经网络中的每一层实际上都是对前一层进行的特征转换&#xff0c;也就是特征抽取。一般的隐藏层&#xff08;hidden layer&#xff09;较少的类神…

FlexViewer2.3中拉帘Widget下载

http://www.giser.net/?p280 由于最新的ArcGIS API for flex2.x使用了Flex SDK4&#xff0c;因此造成了对之前ArcGIS API for flex1.x制 作的拉帘Widget无法使用&#xff0c;因此重新制作了拉帘工具供大家使用。 下载地址&#xff1a; Swipe 使用方法&#xff1a;将下载后的sw…

五种I/O 模式——阻塞(默认IO模式),非阻塞(常用语管道),I/O多路复用(IO多路复用的应用场景),信号I/O,异步I/O

From: http://blog.163.com/xychenbaihuyeah/blog/static/13222965520112163171778/ 五种I/O 模式&#xff1a; 【1】 阻塞 I/O (Linux下的I/O操作默认是阻塞I/O&#xff0c;即open和socket创建的I/O都是阻塞I/O) 【2】 非阻塞 I/O (可以通过f…

Linux tm time_t timeval timespec以及与时间相关函数用法

一、时间类型 linux中编程通常需要用到时间变量&#xff0c;和相关的时间操作函数。常用的时间类型有&#xff1a; time_t 、struct timeval、struct timespec、struct tm。 在用到相关的类型和函数时&#xff0c;需要加上头文件&#xff1a;#include <time.h> …

C语言编程对缓冲区的理解

解析C语言编程对缓冲区的理解 转载自&#xff1a;http://soft.chinabyte.com/database/47/12481547.shtml 下面介绍缓冲区的知识。 一、什么是缓冲区 缓冲区又称为缓存&#xff0c;它是内存空间的一部分。也就是说&#xff0c;在内存空间中预留了一定的存储空间&#xff0c;这些…

ftp文档服务器设置,ftp服务器基本设置

ftp服务器基本设置 内容精选换一换在迁移Agent中输入华为云账号AK/SK以后&#xff0c;AK/SK校验失败。Windows系统提示用户&#xff1a;"AK/SK authentication failed. Ensure that the system time is consistent with the standard time and the AK and SK are corre服务…

树莓派移植SX1278 LoRa通信--使用wiringPiSPI移植SPI通信接口

一、SPI接口 树莓派3B上的SPI接口如下所示&#xff0c;有两组SPI&#xff0c;分别由CE0和CE1来进行选择。 首先查看树莓派的SPI是否启用&#xff0c;在/dev查看是否有spidev0.0和spidev0.1 如果不存在spi设备号&#xff0c;需要在raspi-config中启用&#xff0c;在命令行输入&…

饥荒专用服务器全图显示代码,饥荒开全图代码

用记事本打开游戏目录\data\DLC0001\scripts\prefabs\player_common.lua文件&#xff0c;在inst:AddComponent("resurrectable")下一行插inst:AddComponent("resurrectable")下一行插入以下内容&#xff1a;  TheInput:AddKeyUpHandler(KEY_1&#xff0c…

树莓派移植SX1278 LoRa通信--使用wiringPi 移植GPIO中断

一、SX1278 数字接口状态映射 从官方文档可知sx1278的数字接口状态映射明细&#xff0c;移植的代码中主要用查询的方式来判断在连续模式下是否接收和发送完成&#xff0c;因此只需要用到DIO0。如果要用到CAD&#xff0c;则需要DIO1管脚。 发送时&#xff1a;DioMapping1寄存器…

VMware View 与 Citrix Xendesktop 管理大比拼

一篇写得非常不错的博文&#xff0c;从管理角度来对比虚拟桌面产品的差异&#xff0c;而这一点往往被代理商和用户忽略&#xff0c;值得花时间看看。 大部分用户决定使用桌面虚拟化的最大原因是简化管理。我深刻的记得2006年在X福记用户那推补丁管理软件时&#xff0c;结…

matlab 画箱线图boxplot简单用法

代码示例&#xff1a; data1rand(5,1);%列向量 data2rand(5,1);%列向量 data3rand(5,1);%列向量 data[data1,data2,data3]; boxplot(data,Labels,{data1,data2,data3}); 更多请参考&#xff1a; matlab官网文档&#xff1a;https://www.mathworks.com/help/stats/boxplot.htm…

“FormCRUD.csProj.FormMain.Name”隐藏了继承的成员“System.Windows.Forms.Control.Name”。如果是有意隐藏,请使用关键字 new。...

“FormCRUD.csProj.FormMain.Name”隐藏了继承的成员“System.Windows.Forms.Control.Name”。如果是有意隐藏&#xff0c;请使用关键字 new。 一旦运行就显示&#xff1a;“FormCRUD.csProj.FormMain.Name”隐藏了继承的成员“System.Windows.Forms.Control.Name”。如果是有意…

VC++文件监控(一) ReadDirectoryChangesW

From: http://www.cnblogs.com/doublesnke/archive/2011/08/16/2141374.html VC实施文件监控&#xff1a;实例和详解 相关帮助: http://hi.baidu.com/jiahaosoft/blog/item/b441d1218eebece0d6cae274.html 我这里只介绍采用ReadDirectoryChangesW对文件目录实施监控 关键代码…