这两天彻底的体验了一把 Onenet 里的固件升级,第一关就被拦截了,我们看看官方的《OTA-SDK说明文档.docx》
官方有鉴权这块的介绍,请移步至这个链接
- 将access key进行base64解码这步骤简单。
- hmac签名是啥? 原来就是 HMAC_SHA1 算法,我就说 SHA1 算法还有密钥啊!!!
- 有关 hmac_sha1 请参考这个链接。
- 算完之后是 20 字节的摘要信息,再经过Base64编码就是鉴权里的 sign 了。
这里说下官方的 demo
version=2018-10-31&res=products/123123&et=1537255523&method=sha1&sign=ZjA1NzZlMmMxYzIOTg3MjBzNjYTI2MjA4Yw=
这个sign是错误的,我算出来的是epBEZ9yMD6fuemNBiWYIJpySb4E=
算出来 sign 后就可以构造请求参数了。
准备:在正式升级之前我们先来看看Onenet云平台上OTA升级位置
ou
第一步:在请求之前先放个bin文件上去
第二步是获取token: 就是下图的"ota_"的字符串
这个代码是可以多次执行的,每次执行token都不一样 (Token有效期是2天)
第三步: 校验token有效性
这步跳过也行的~
第四步:就是获取bin文件的数据了
上图就是获取0~63字节,一共获取64字节由于是二进制文件,所以显示不出来
以十六进制显示就可以看出来了.
最近又玩了下ota升级,发现升级流程变了,还找不到设备(升级文档):
原来是需要上传下版本号,
发送完毕之后就有那台设备了: