Android系统OTA升级包制作【转】
本文转载自:http://blog.csdn.net/dingfengnupt88/article/details/52882788
Android系统升级分为整包升级和差分包升级,整包升级就是将系统中所有的数据都升级,而差分包及增量包,只是针对系统中更新的部分进行升级。一般来说,像大版本升级,比如从4.4升级到5.0,采用整包升级,平时的小版本升级就使用差分包升级,不同的厂商有自己的考量。但不管哪种方式,升级流程都是一样的(Android系统OTA升级流程),只是在制作升级包的过程中有些差别。那这两者有啥区别呢?
区别:
1、包的大小,整包就相当于ROM,有好几百兆;差分包也就是增量包,只是将两个版本的差异处进行打包,一般几兆到几十兆。
2、整包升级对当前版本没有限制,可以在该项目的任何一个版本基础上升级;而差分包制作是基于两个版本的,所以只能在这两个版本之间升级,并且是单向的。
升级包制作
一、整包
1. ./mk [project] new
2. ./mk [project] otapackage
先编译整个工程,编译完成之后编译ota包,最后在out目录下生成升级包,如out/target/product/{project}/obj/packaging/ckt75_cu_gb2-target_files-eng.ckt.zip,这个包就可以在该项目的任何一个版本上升级。
二、差分包
1. ./mk [project] new--- 工程的版本是 V1
2. ./mk [project] otapackage --- 工程的版本是 V1
3. 将V1版本烧录到对应的手机上
4. 拷贝out/target/product/{project}/obj/packaging/ckt75_cu_gb2-target_files-eng.ckt.zip到根目录下,并改名为 v1_org -----工程的版本是 V1
5. ./mk [project] new --- 工程的版本是 V2
6. ./mk [project] otapackage --- 工程的版本是 V2
7. 拷贝out/target/product/{project}/obj/packaging/ckt75_cu_gb2-target_files-eng.ckt.zip到根目录下,并改名为 v2_org -----工程的版本是 V2
8. ./build/tools/releasetools/ota_from_target_files -k releaseKey -i v1_org.zip v2_org.zip v1_2.zip---在工程目录下执行此命令
9. 如果系统的logo和uboot也更改了,那么也需要将其添加进去
./build/tools/releasetools/ota_from_target_files -k releaseKey -l logo.img -u uboot.img -i old_ota_target_file.zip new_ota_target_file.zip update.zip。
-k 代表签名文件,“releaseKey”是签名文件路径
-l 参数是代表需要升级logo,后面跟logo文件的路径,注意不要用签名过的logo文件,该文件可以从ota整包中解压得来;
-u 参数代表要升级uboot,后面跟uboot文件路径,注意不要用签名过的uboot文件,该文件可以从ota整包中解压得来;
old_ota_target_file.zip代表的是升级前的ota 包源文件路径;
new_ota_target_file.zip代表需要升级到的版本的ota包源文件路径;
通过以上几步就生成了差分包v1_2.zip,可以将系统版本从v1升到v2。
Android系统OTA升级包制作【转】的更多相关文章
- OTA升级包制作工具处理过程分析
http://blog.csdn.net/ly890700/article/details/56048815 Android Recovery(30) 1.概述 OTA升级包制作工具是一个用pyt ...
- android OTA升级包制作
0.签名 java -Xmx2048m -jar out/host/linux-x86/framework/signapk.jar -w build/target/product/security/t ...
- android OTA升级包制作【转】
本文转载自:http://www.thinksaas.cn/topics/0/445/445670.html 0.签名 java -Xmx2048m -jar out/host/linux-x86/f ...
- 制作OTA升级包
OTA 软件包工具 本文地址http://wossoneri.github.io/2018/09/21/%5BAndroid%5D%5BFramework%5Dcreate-ota-update-zi ...
- Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作【转】
本文转载自:http://blog.csdn.net/mu0206mu/article/details/7399822 这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过 ...
- Android系统之路(初识MTK) ------ OTA打包ROM安装系统img等到ZIP
在做OTA升级包的时候,我编译了好多次都没过.老是IO异常.刚開始以为是我 make 的错误.后来多次检查 Error 发现是我的配置信息写错了,与驱动project师一起检查源代码, 改动配置信息后 ...
- 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
分类: Android 系统开发(5) 作者同类文章X 版权声明:本文为博主原创文章 ...
- Android系统Recovery工作原理之使用update.zip升级过程分析(一)
通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理.我们先从update.zip包的制作开始,然后是Android系统的启动 ...
- Android系统更新防互刷功能实现与分析【转】
本文转载自:https://blog.csdn.net/huangyabin001/article/details/44465145 版权声明:本文为博主原创文章,未经博主允许不得转载. htt ...
随机推荐
- 正则化--Lambda
模型开发者通过以下方式来调整正则化项的整体影响:用正则化项的值乘以名为 lambda(又称为正则化率)的标量.也就是说,模型开发者会执行以下运算: $$\text{minimize(Loss(Data ...
- 数据结构之shell排序
#SIZE 10 //直接插入排序 void insert_sort(){ int i,j; int array[SIZE+1]; ...
- Atitit.面向接口的web 原理与设计重写 路由启动绑定配置url router rewriting urlpage mvc mvp的 java c#.net php js
Atitit.面向接口的web 原理与设计重写 路由启动绑定配置url router rewriting urlpage mvc mvp的 java c#.net php js 原理 通过vm带入启 ...
- python unittest不执行"if __name__ == '__main__' "问题(Pycharm)
问题: 1.selenium导入unittest框架和HtmlReport框架后,HtmlReport不被执行. 2.IDE为Pycharm 假设代码为: from selenium import w ...
- Eclipse配置总结
按照公司要求,开发环境使用Eclipse Juno版本,需要安装maven插件和RTC插件. 经过一下午的尝试,总结经验教训: 1.eclipse安装maven的m2ec ...
- Cannot lock storage /tmp/hadoop-root/dfs/name. The directory is already locked.
[root@nn01 bin]# ./hadoop namenode -format 12/05/21 06:13:51 INFO namenode.NameNode: STARTUP_MSG: /* ...
- css3 jQuery实现3d搜索框+为空推断
<!DOCTYPE html> <html> <head> <title>css3实现3d搜索框</title> <style> ...
- 从零开始学android -- 简易的socket通信
先来介绍下socket,网上摘抄点资料,免得自己打字了 网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 1.消息传递(管道.FIFO.消息队列) 2.同步(互 ...
- 推荐一个android 日期时间选择器(转)
最近接触了日期选择的功能,那么肯定得需要一个日期选择控件,Android 系统有自带的 DatePicker 控件,但是不说这个控件有多 难看吧,现在 Android 手机版本那么多,用户弹出来的控件 ...
- 请求SQL数据是存在<null>,的解决方法
删除字典中的null 我们在处理服务器传过来的数据过程中,如果数据中出现null,我们是没法进行本地持久化处理的.在使用NSUserDaults保存本地时,如果其中一个字段的value为NULL值,就 ...