华为IoT平台NB编解码插件开发详细教程【下篇】
上篇文章介紹了編解碼開發(fā)匯總的環(huán)境搭建、Profile說明和插件編寫,本篇教程就插件打包、插件質(zhì)檢和插件簽名詳解。
目錄
四、插件打包
五、插件質(zhì)檢
六、插件簽名
七、附件
四、插件打包
1、新建package文件,包含一個(gè)“preload”子文件夾,將上一章中生成的JAR包拷貝至preload文件夾下。
2、在package文件夾中新建“package-info.json”文件(文本格式)。打開該文件,以UTF-8無BOM格式編輯,將以下大括號(hào)內(nèi)容拷入該文件中并保存。
{"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": ""}] }注: 在移植到別的項(xiàng)目中的時(shí)候,該文件需要修改的地方有:
- "deviceType",需根據(jù)實(shí)際的profile填寫設(shè)備類型
- "manufacturerName",需根據(jù)實(shí)際的profile填寫廠商名稱
- "model",需根據(jù)實(shí)際的profile填寫設(shè)備型號(hào)
- "bundleName",根據(jù)實(shí)際的profile填寫,設(shè)備型號(hào)-廠商ID-設(shè)備類型
- "fileName",jar包的名稱
3、選中"package"文件夾中的全部文件,打包成zip格式。(“package.zip”,該壓縮包內(nèi)不能包含“package”目錄)
?說明:本章內(nèi)容可參考 “華為IoT平臺(tái)NB-IoT設(shè)備集成開發(fā)指南.pdf” 6.5.4.2.3章節(jié)的“制作插件包”部分的內(nèi)容。
package.zip 文件即為制作好的編解碼插件包。
五、插件質(zhì)檢
插件質(zhì)檢,是指插件開發(fā)完后之后,對(duì)插件的編解碼功能的一個(gè)驗(yàn)證的過程,用于檢測(cè)編解碼插件中存在的問題。(當(dāng)然,如果你對(duì)自己開發(fā)的插件足夠自信的話,也可以不用進(jìn)行質(zhì)檢咯,直接上傳平臺(tái)使用。本文強(qiáng)烈建議上傳插件前進(jìn)行質(zhì)檢工作。)插件質(zhì)檢的過程比較簡(jiǎn)單,本文不再贅述,可通過NBIoT 編解碼插件檢測(cè)工具使用說明進(jìn)行 學(xué)習(xí)。
六、插件簽名
插件簽名,是指對(duì)生成的插件包進(jìn)行數(shù)字簽名,防止別人惡意篡改你的插件包,保證文件的完整性。
插件簽名不屬于開發(fā)過程,僅在需要把插件發(fā)送給別人的時(shí)候(比如IoT平臺(tái)維護(hù)人員),一般要求要對(duì)插件進(jìn)行簽名。
簽名過程如下:
1、解壓“signtool.zip”,運(yùn)行“signtool.exe”,運(yùn)行界面如下圖18所示。工具有三塊功能,最上邊用于生成公私密鑰對(duì),中間用于對(duì)文件進(jìn)行簽名,最下邊用于校驗(yàn)。
2、生成公私密鑰對(duì)。點(diǎn)擊“簽名算法”選擇區(qū)域,選擇一個(gè)算法,在“私鑰加密口令”輸入框中輸入私密加密口令(由自己設(shè)定的一個(gè)密碼),然后點(diǎn)擊 “生成公私密鑰”按鈕,在彈出的窗口中選擇密鑰保存的位置。在該位置會(huì)生成兩個(gè)文件:
公鑰: public.pem
私鑰: private.pem
3、簽名。點(diǎn)擊 “導(dǎo)入私鑰文件”按鈕,在彈出窗口中選擇上一步中生成的私鑰文件(private.pem);點(diǎn)擊“需要數(shù)字簽名的軟件”右側(cè)的文件夾按鈕,在彈出窗口中選擇要簽名的插件包(插件包路徑不能有中文);點(diǎn)擊 “進(jìn)行數(shù)字簽名”按鈕,會(huì)在插件包所在的路徑生成簽名后的文件,名稱為 “xxx-signed.xxx”。
4、驗(yàn)簽。發(fā)送插件包給別人時(shí),要將公鑰和簽名文件一并發(fā)送過去。
點(diǎn)擊 “導(dǎo)入公鑰文件”,在彈出窗口中選擇公鑰文件;點(diǎn)擊 “需要驗(yàn)簽的軟件” 右側(cè)的文件夾按鈕,在彈出窗口中選擇收到的已簽名的插件包(插件包路徑不能有中文),點(diǎn)擊 “進(jìn)行軟件包驗(yàn)簽”按鈕。
驗(yàn)證成功則彈出 “驗(yàn)證簽名成功”。
驗(yàn)證失敗則彈出 “驗(yàn)簽異常”,說明收到的插件包可能被異常修改過。
七、附件
附件中給出本例中的profile和插件工程、插件包,以及質(zhì)檢工具、簽名工具等。
本項(xiàng)目的資料可以在github下載[鏈接]。轉(zhuǎn)載請(qǐng)標(biāo)明出處。
?
總結(jié)
以上是生活随笔為你收集整理的华为IoT平台NB编解码插件开发详细教程【下篇】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 多数据源处理_java – 用
- 下一篇: php渲染视图,Laravel 视图渲染