当前位置: 首页 > 科技观察

OTA升级操作说明_0

时间:2023-03-12 18:05:51 科技观察

更多内容请访问:??????????????????????????????????????????????????一份说明如何正确操作OTA的文档,让初学开发者初步了解OTA,学会简单的操作。一、什么是OTAOTA(OvertheAir)提供远程升级设备的能力,让您的设备轻松支持远程升级能力。目前只支持全包升级,暂不支持差分包升级。全包升级是将新系统的所有内容做成一个升级包进行升级;差异包升级是将新旧系统的差异内容做成一个升级包进行升级。关于OTA,目前支持以下三种方式。方法一和方法三都已经验证过了,方法二还在调试中,这里就不介绍了:OTA??(OvertheAir)——ota在线升级。通过USB从主机进行更新-重新启动flashd。通过外部存储升级——SD卡/U盘升级。二、操作说明1、制作升级包(1)生成公私钥对。鸿蒙Baseline的源码中有默认的公私钥对,可以直接使用。查看目录:openharmony/device/board/hisilicon/hispark_taurus/linux/updater/config私钥:rsa_private_key2048.pem公钥:signing_cert.crt。rk3566中控屏代码仓库默认的公私钥对见目录:device/rockchip/rk3566/build/updater_config私钥:rsa_private_key2048.pem公钥:signing_cert.crt。您还可以使用Openssl工具生成您自己的公私密钥对。请妥善保管私钥文件。在升级包制作过程中,将私钥文件作为升级包签名制作命令的参数。公钥用于在升级过程中验证升级包的签名。鸿蒙标准系统需要将生成的公钥放在openharmony/device/board/hisilicon/hispark_taurus/linux/updater/config/signing_cert.crt文件中;如果是凯宏的3566中控屏代码仓库应该放在device/rockchip/rk3566/build/updater_config/signing_cert.crt文件中。(2)制作升级包,创建目标文件夹。目标文件夹的名称可以自定义。此处,该文件夹名为ota_package。操作如下:osm@ubuntu:~$mkdirota_packageosm@ubuntu:~$cdota_packageosm@ubuntu:~/ota_package$tree-a.├──system.img//待升级组件1├──updater_binary//升级相关可执行文件├──updater_config//固定格式,子文件夹管理组件配置文件│├──BOARD.list//当前更新包支持的产品列表├──updater_specified_config.xml//组件配置文件│└──VERSION.mbn//当前更新包支持的版本范围├──userdata.img//待升级组件2└──vendor.img//待升级组件3是关于BOARD.list,内容如下:osm@ubuntu:~/ota_package/updater_config$catBOARD.listHI3516HI3518HI3559osm@ubuntu:~/ota_package/updater_config$关于VERSION.mbn,内容如下:osm@ubuntu:~/ota_package/updater_config$catVERSION.mbnHi3516DV300-eng10QP1A.190711.020Hi3516DV300-eng10QP1A.190711.022osm@ubuntu:~/ota_package/updater_config$Hi350D10版本名称格式:6-eng10QP1A.XXXXXX.{主版本号(6位)}.XXX{次版本号(3位)}。例如:Hi3516DV300-eng10QP1A.190711.020。名称中的“190711”是主版本号,“020”是次版本号。关于updater_specified_config.xml,内容如下:osm@ubuntu:~/ota_package/updater_config$catupdater_specified_config.xml。headinfo./vendor.img./system.imgosm@ubuntu:~/ota_package/updater_config$执行升级包创建命令(完整升级包)。这里以鸿蒙的代码路径为例:如果制作SD卡升级包需要添加-sc选项,即:python3.8openharmony/base/update/packaging_tools/build_update.pyota_packageota_output-pkrsa_private_key2048.pem-sc。osm@ubuntu:~$mkdirota_outputosm@ubuntu:~$python3.8openharmony/base/update/packaging_tools/build_update.pyota_packageota_output-pkrsa_private_key2048.pem执行后可以看到ota_output下的升级包:hi3516_ota_xxxxxx.zip,重命名为updater.zip,如果是在线升级,需要把升级包放在服务器上,如果是SD卡升级,需要把升级包放在SD卡的updater目录下.2、升级(1)OTA升级(还在调试中,敬请期待)(2)OTA升级(跳过下载)通过SD卡/U盘/hdc_std等工具将升级包放到设备的/data下自定义目录,其中升级包updater.zip放在/data/updater/updater目录下。方法一、在主分区命令行执行:rebootupdater:–update_package=/data/updater/updater/updater.zip方法二、在主分区命令行设置系统参数:paramsetohos.startup。powerctrlreboot,updater:–update_package=/data/updater/updater/updater.zip(或者调用接口boolRebootAndInstallUpgradePackage(conststd::string&miscFile,conststd::string&packageName))以上两种方法的原理是同样,两者都是使用参数–update_package=/data/updater/updater/updater.zip写入misc分区,updater进程稍后会去misc分区获取这个参数。触发成功后,开始验证,界面如下:验证通过后,开始升级,界面如下:升级成功后,单板会自动重启,操作完成。(3)SD卡升级OTA升级优先级高于SD卡升级:updater进程先去misc分区获取-update_package参数,获取成功则进入OTA在线升级。否则进入SD卡升级界面,进行SD卡升级等操作。切换分区。这里将装有升级包的SD卡插入设备,在主分区的命令行中执行rebootupdater,不传递–update_package参数,可以直接切换到recovery分区,界面如下:选择升级。开始验证。如果制作升级包没有问题,开发板会开始验证升级包,显示如下:“Don'tremoveSDCard!”"Verifypackage..."//持续时间比较长,大概10到20分钟就会开始升级。验证通过后,开始升级。升级成功后板子会自动重启,操作完成。3.调试在升级过程中,会产生一个日志文件/data/updater/log/updater_log,其中包含程序运行的各个阶段添加的打印信息,以供调试。更多资讯请浏览:?????????????????????????????????????????????????????????