概述OTA(Over-the-Air)即空间下载技术。 OTA 升级是 Android 系统提供的标准软件升级方式。它功能强大,可以无损失升级系统,主要通过网络,例如 WIFI、3G/4G 自动下载 OTA 升级包,也支持通过下载 OTA 升级包到 SD 卡/U 盘升级,OTA 的升级包可以根据需求自由打包大小,本文主要以rockchip平台3568讲述ota升级流程,本地升级程序 recovery 执行升级的流程及技术细节 。
3568 recovery 相关的源码路径: OK3568-linux-source/external/recovery 若有修改以上目录中的源码文件之后的编译方法: 1. source envsetup.sh 2. 选择某一平台的 recovery 配置 3. make recovery-dirclean && make recovery //清除编译产物重新编译 4. make rkupdate-dirclean && make rkupdate //清除编译产物重新编译 5. ./build.sh recovery //生成recovery.img 6. ./mkfirmware.sh //将生成的固件拷贝至 rockdev/目录下 7. 烧写 recovery.img 例: . . . . . . . . .
升级流程固件准备修改 tools/linux/Linux_Pack_Firmware/rockdev/package-file ,根据需要升级的分区配置,修改该文件。 例:只升级kernel下的改动,将其他img文件注释掉 vim tools/linux/Linux_Pack_Firmware/rockdev/package-file 保存退出 根目录下执行命令: ./build.sh kernel //编译boot.img ./build.sh updateimg //打包升级包固件 命令执行成功后,会将package-file指定的分区镜像打包生成update.img 升级固件,放在 rockdev/目录下。使用该update.img 升级。 遇到错误“Error!imageHead.uiTag !=0x57464B52”,该错误表明固件打包有错误,请按照
升级将升级固件 update.img 放在 SD 卡或 U 盘根目录或者设备的/userdata 目录下 。 例:可以通过命令从ftp服务器下载镜像到/userdata下。 ftp下载 [root@ok3568:/]# scp forlinx@192.168.1.235:/**/update.img /userdate/ (同一网段下,forlinx为服务器用户名,**为update.img在服务器上的绝对地址,输入登录密码后就会执行下载) 下载好后执行如下命令进行升级 update ota /userdata/update.img 升级过程中设备将会进入 recovery 模式,并进行升级,升级成功后会进入到正常normal系统。
注意事项: 打包 update.img 固件时需要注意,升级固件可以全分区打包,也可以部分升级,可修改 package-file 文件,将不要升级的分区去掉,这样可以减少升级包(update.img )的大小。 package-file 中 recovery.img 如果打包进去的话 ,不会在 Recovery 模式中升级,为了预防升级recovery.img过程中掉电导致后面其他分区无法正常升级的问题,该分区升级放在 normal 系统下升级,即,执行 update 命令时会先检测 update.img 升级包中是否有打包 recovery.img,若有则升级recovery 分区,再进入 Recovery 模式升级其他分区固件。 misc 分区不建议打包进 update.img 中,即使有打包进去,也会在升级程序中加载判断到而忽略该分区,即使升级了 misc 分区,升级成功后 recovery 程序仍会清空 misc 分区中所有的命令及参数,从而导致达不到预想的结果。 如果将 update.img 升级包放置在 flash 中的 userdata 分区,则需要保证 package-file 中不包括userdata.img 被打包进去,原因是可能会导致文件系统的损坏,升级成功后可能使 oem或 userdata 分区mount不成功。若从SD卡或 U 盘升级时,可以打包 userdata.img,从而对userdata 分区进行升级。升级完成后会对 userdata 分区重新resize 操作。 不带屏升级失败: 如果有屏,请接入屏再执行ota升级,如果设备没有屏,请在 buildroot/configs/OK3568-recovery_defconfig中加入BR2_PACKAGE_RECOVERY_NO_UI=y配置,编译刷机后,再进行ota升级 |
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-12-22 19:48
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.