ota升级 rk3399_RK3399 的ota升级方法
下面介绍VS-RK3399 的recovery模式升级方法,主要是针对深圳视壮科技有限公司的主板介绍。
1.1 Recovery 模式简介
Recovery 模式指的是一种可以对安卓机内部的数据或系统进行修改的模式,(类似于windows pe 或
DOS)。在这个模式下我们可以刷入新的安卓系统,或者对已有的系统进行备份或升级,也可以在此恢复出
厂设置。
1.2 Recovery 模式在框架层的位置
Android 启动后,会先运行bootloader。Bootloader 会根据某些判定条件决定是否进入recovery 模
式。Recovery 模式会装载recovery 分区,该分区包含recovery.img。Recovery.img 包含了标准内核(和
boot.img 中的内核相同)以及recovery 根文件系统。
Android recovery 三个部分两个接口,recovery 的工作需要整个软件平台的配合,从架构角度看,有
三个部分:
1. Main System: 用boot.img 启动的Linux 系统,Android 的正常工作模式。
2. Recovery:用recovery.img 启动的Linux 系统,主要是运行recovery 程序。
3. Bootloader:除了加载、启动系统,还会通过读取flash 的MISC 分区获得来自Main System 和
Recovery 的消息,并以此决定做何种操作。
两个通信接口:
1. /cache/recovery/:command、log、intent
2. BCB(Bootloader Control Block):misc 分区
Main System 如何进入Recovery 模式:当我们在Main System 使用update.zip 包进行升级时
系统会重启并进入recovery 模式。在系统重启前,我们可以看到Main System 定会向recovery 域写入
boot-recovery(粉红色线),用来告知bootloader 重启后进入Rcovery 模式。这一步是必须的,至于
Main System 是否会向recovery 域写入值我们在源码中不能肯定这一点。即便如此,重启进入Recovery
模式后,Bootloader 会从/cache/recovery/command 中读取值并放入到BCB 的recovery 域。而Main
System 在重启之前肯定会向/cache/recovery/command 中写入Recovery 将要进行的操作命令。
1.installPackage: RecoverySystem 的接口,完成升级包路径转换,并调用bootCommand。
2.bootCommand:RecoverySystem 的接口,将命令写入/cache/recovery/command,并调用
pm.reboot。
3.Pm.reboot:PowerManager 的接口,重启并进入Recovery 模式。
2 编译OTA 包
2.1 OTA 介绍
OTA (over the air)升级是Android 系统提供的标准软件升级方式。它功能强大,提供了完全升级
(完整包)、增量升级模式(差异包),可以通过本地升级,也可以通过网络升级。
2.2 生成完整包
完整包所包含内容:system、recovery、boot.img
发布一个固件正确的顺序:
1. make -j4
2. make otapackage -j4
3. ./mkimage.sh ota
发布固件必须使用./mkimage.sh ota,将boot 与kernel 打包,不需要单独烧kernel,如果量产固件
是分开的,将会影响后面差异包升级,除非你不需要用差异升级。
在out/target/product/rkxxxx/目录下会生成ota 完整包rkxxxx-ota-eng.root.zip,改成
update.zip 即可拷贝到T 卡或者内置的flash 进行升级。
2.3 生成差异包
OTA 差异包只有差异内容,包大小比较小,主要用于OTA 在线升级,也可T 卡本地升级。OTA 差异包
制作需要特殊的编译进行手动制作。
(1)首先发布v1 版本的固件,生成v1 版本的完整包
(2)保存
out/target/product/rkxxxx/obj/PACKAGING/target_files_intermediates/rk3188-target_files-en
g.root.zip 为rkxxxx-target_files-v1.zip,作为v1 版本的基础素材包。
(3)修改kernel 代码或者android 代码,发布v2 版本固件,生成v2 版本完整包
(4)保存
out/target/product/rkxxxx/obj/PACKAGING/target_files_intermediates/rk3188-target_files-en
g.root.zip 为rkxxxx-target_files-v2.zip,作为v2 版本的基础素材包。
(5)生成v1-v2 的差异升级包:
Android7.1 google CTS 测试要求开启verifying boot 功能。目前默认开启verifying boot 功能的平台有
RK3368H Android7.1 mid、RK3399 Android7.1 mid,作差异包时必现加上block 参数。
./build/tools/releasetools/ota_from_target_files -v -i rkxxxx-target_files-v1.zip
-p out/host/linux-x86 -k build/target/product/security/testkey rkxxxx-target_files-v2.zip
out/target/product/rk3188/rkxxxx-v1-v2.zip
说明: 生成差异包命令格式:
ota_from_target_files
-v -i 用于比较的前一个target file
--block 使用block 方式进行OTA 升级,打开verfying boot 的功能时必现加上这个参数
-p host 主机编译环境
-k 打包密钥
用于比较的后一个target file
最后生成的ota 差异包
from:
http://bbs.21ic.com/icview-2480328-1-1.html
ota升级 rk3399_RK3399 的ota升级方法相关推荐
- 汽车在线升级系统(OTA)开发浅析
本文由姜楠,姜姗姗,韩小鹏联合创作 摘要 介绍了汽车在线升级系统(OTA)的应用场景及功能,阐明了升级系统中车端及云端模块开发策略及架构:同时明确了与整车其他 ECU 的交互需求:最后介绍了在线升级系 ...
- 差分升级 增量升级 单片机 STM32 IAP升级OTA升级,物联网车联网可用
差分升级 增量升级 单片机 STM32 IAP升级OTA升级,物联网车联网可用 介绍博客 https://blog.csdn.net/zhou74281/article/details/1177776 ...
- android ota服务器搭建,Android OTA 差分包升级
稍作修改,因为直接用会有些错误 另外附上超详细的recovery模式update.zip升级分析说明的地址: 根目录下两个命令: 1.make --会生成系统的img文件,system.img,boo ...
- 58 ESP32 OTA升级(双OTA分区无factory APP)
1 引言 产品功能实现后,就要对产品的维护进行考虑.产品出来后,卖了N台出去,如果突然发现自己一行代码写错了,怎么办,肯定不能去现场吧N台设备,免费出差旅游也累啊,所以一般需要有远程升级设备的功能,此 ...
- RTOS设备如何快速实现OTA升级--快速接入OTA平台
目录 一. 创建产品和零件 1.1 登陆平台 1.2 添加产品 1.3 配置产品 1.4 添加升级零件 二. 添加设备 2.1 单个添加 2.2 批量添加 三. 设备注册激活 3.1 发起请求 3.2 ...
- ESP32 OTA升级之HTTP OTA
ESP32 OTA升级之 HTTP OTA 文章目录 ESP32 OTA升级之 HTTP OTA 1. 前言 2. 搭建http本地服务器 2. HTTP OTA 3. 补充学习 1. 前言 在所有电 ...
- linux ab双分区升级,AB 系统OTA升级
A/B System 概述 Android从7.0开始,引入了新的OTA升级方式 A/B System Updates A/B系统是指设备上有A和B两套可以工作的系统(用户数据只有一份,为两套系统共用 ...
- android升级小米系统版本,miui7怎么升级?小米升级MIUI7系统两种方法介绍
小米秋季新品发布会在北京国家会议中心如期举行,雷军在此次发布会上正式公布了全新的MIUI 7.在外观及界面UI方面,MIUI 7新增了四套全新的UI,首次出现了粉红色主调的女神版UI,系统图标.壁纸. ...
- .net framework4.6项目的dll升级后,未找到方法“System.String.GetPathsOfAllDirectoriesAbove”解决
.net framework4.6项目的dll升级后,未找到方法"System.String.GetPathsOfAllDirectoriesAbove"解决 参考文章: (1). ...
- 火狐怎么在线升级 火狐浏览器在线升级方法分享
想要尝试最新版本的火狐浏览器,不仅可以前往火狐官网下载最新版本的客户端,还可以将现有的版本进行升级.那么,火狐该怎么在线升级呢?下面小编就来分享一下火狐浏览器在线升级的方法,不清楚具体操作的朋友可以稍 ...
最新文章
- quick cocos2dx 3.x 配置win32工程
- [Vue.js]跨域访问四种解决方法
- MATLAB机器学习系列-3:BP神经网络算例实现
- linux shell zsh,Linux终极shell Z Shell 用强大的zsh oh-my-zsh把Bash换掉
- HDU多校4 - 6989 Didn‘t I Say to Make My Abilities Average in the Next Life?!(单调栈)
- SAP CRM One Order SERVICE_OS GUID调试指南
- php 文件类型 html,HTML的文档类型怎么选择
- 通过标准的 ASP.NET 控件来使用 jQuery UI
- 深搜--1-n的全排列
- VMware时钟不准的解决之道
- 堪称最详细的支付系统设计
- php pmp是什么,pmp 总时差 自由时差 说明 和计算
- 计算机病毒鼻祖拟推新型搜索技术挑战谷歌,美科学家将推新型搜索引擎挑战谷歌...
- easyPOI之动态导出word模板
- c++实验题:设计两个酒店管理员客房管理的类:一个是Person类,要求储存房号、客户姓名和身份证号的信息;另一个类是Client类,要求新增客户的订房、退房和消费金额等信息,并给出相关测试算法。
- php laravel mix,Laravel前端工程化之mix
- PostScirpt打印机驱动程序
- Docker 中 latest 标签引发的困惑
- 单价飙升至3299!是飞天茅台的两倍,茅台的葡萄酒果真有酱香味?
- socket error 10054错误出现的原因以及解决办法,全网最全没有之一
热门文章
- WPF类型引用无法找到名为“xxx”的类型解决方法
- 使用命令结束Linux系统
- 内存颗粒和闪存颗粒的区别_内存条怎么判断好坏? 内存颗粒的种类及其差别介绍...
- java 实现图片水印 文字水印
- i5 8250u java_i5 8250u属于什么级别?i5 8250u的性能参数详解
- 【目标检测】58、目标检测中的正负样本分配策略总结
- 台式计算机开机后黑屏,电脑开机显示黑屏有关的问题与解决方法
- c++编程迷宫小游戏
- 凛冬之翼---php写入数据库时汉字全部变为空白
- oracle存货转资产,存货转固定资产账务处理