文章目录

  • 1. Full OTA 方式升级介绍
    • 1.1 Full OTA 制作第一步:生成 msm89xx-target_files-eng.XXX.zip
    • 1.2 Full OTA 制作第二步:Modem 等非 HLOS 加入升级包的方法
    • 1.3 Full OTA 制作第三步:生成 update.zip 升级包
  • 2. Incremental OTA 方式升级介绍
    • 2.1 Incremental OTA 制作第一步:生成各个版本的 msm89xx-target_files-eng. xxx.zip
    • 2.2 Incremental OTA 制作第三步:生成 update.zip 升级包
  • 3. OTA 升级操作步骤和方法
    • 3.1 通过 Recovery 模式手动升级系统
    • 3.2 通过 Android 接口 adb 命令方式升级
    • 3.3 通过 Andorid 接口 apk 的方式升级系统
  • 4. 对 img 文件进行升级

文档中主要描述 Full OTA 升级和 Incremental OTA 两种升级方式

1. Full OTA 方式升级介绍

Full OTA 升级就是对整个下载包做打包,然后将完整的升级包通过 recovery 系统升级。操作步骤如下 说明。
升级对象:boot.img,cache.img, system.img, emmc_appsboot.mbn, persist.img, non-hlos.bin, sbl1.mbn, tz.mbn, rpm.mbn,整体来说,可以通过 ota 升级除 userdata 分区之外的分区。

1.1 Full OTA 制作第一步:生成 msm89xx-target_files-eng.XXX.zip

关于制作 OTA升级所用资源包,使用命令 make dist 命令打包 img 和 OTA资源包,手动执行命令
source build/envsetup.sh
lunch
make –j8 dist
在\out\dist\目录下会有手动制作OTA包所需的msmXXXX-target_files-eng.quectel.zip和已经做好的完整 包 msmXXXX-ota-eng.quectel.zip;
P.s 目前 make dist 命令 不支持 Android5 和 Android6 的平台,Android7 以下平台,请使用如下编译 命令:
make –j8 otapackage

1.2 Full OTA 制作第二步:Modem 等非 HLOS 加入升级包的方法

关于添加 modem 等非 ap 分区,有两种方法:
方法 1.官方,也就是高通给出的方案是这样的:
Create a folder named RADIO in the path /device/qcom// and add the non-HLOS files (non-hlos.mbn, tz.mbn, rpm.mbn, etc.) that must be upgraded into this folder. 则首先需要查看 device/qcom/msm89XX 目录下是否已存在 radio 这个文件夹,若没有则创建一个:

通常这个文件默认已经存在,所以我们在编译版本时只要将非 AP 部分加入到这个文件夹中就可以了。 比如我们可以先将 modem 部分加入到这里:
cp (modem 所在路径) ./device/qcom/msmXXXX/radio 的
该文件夹中默认包含 filesmap 文件 如下:


这个名为 filesmap 的文件内容是这样的:


这个文件主要定义了对应放入的文件名称和其相应的分区。
添加完后编译生成整包(请参考 2.1):
out/target/product/msmXXXX/obj/PACKAGING/target_files_intermediates 目录下的整包原始文件中:

方法 2:当我们编译了版本,生成了:
out/target/product/msmXXXX/obj/PACKAGING/target_files_intermediates/XXX.zip 这几个文件后
我们可以通过手动将modem 等非 AP 部分文件放入 msmXXXX-target_files-eng.xxxx.zip 压缩包中的 RADIO 文件中

1.3 Full OTA 制作第三步:生成 update.zip 升级包

./build/tools/releasetools/ota_from_target_files --block -p out/host/linux-x86/ -k build/target/product/secur ity/testkey -v out/target/product/msm8909/obj/PACKAGING/target_files_intermediates/msm8909-target_files-en g.smart-jenkins.zip update.zip

2. Incremental OTA 方式升级介绍

Incremental OTA 升级就是针对两个版本,通过工具生成 Incremental 包,做 Incremental 升级的方案。 所以注意要有版本升级对应关系。
升级对象:boot.img, emmc_appsboot.mbn, non-hlos.bin, sbl1.mbn, rz.mbn, rpm.mbn ….

2.1 Incremental OTA 制作第一步:生成各个版本的 msm89xx-target_files-eng. xxx.zip

假设我们编译了版本 V1.

在编译完成后的 out/target/product/msm89xx/obj/PACKAGING/target_files_intermediates 目录下,会自动 生成这个版本的整包压缩文件:msm89xx-target_files-eng.XXX.zip(可能名字会有所区别)

然后我们修改编译 V2 版本,这个版本相对 V1 版本做了一些修改

source build/envsetup.sh
lunch msm8909-userdebug
make dist -j8

2.2 Incremental OTA 制作第三步:生成 update.zip 升级包

烧写第一版本的系统包(system.img)必须要从 out/dist 目录下的 msm8909-img-eng.zyz.zip 解压出来, 替换 out/target/product/msm8909/system.img

进入工程目录中,执行:
./build/tools/releasetools/ota_from_target_files -v --block -p out/host/linux-x86/ -k build/target/product/sec urity/testkey -i out/target/product/msm8909/obj/PACKAGING/target_files_intermediates/msm8909-target_files-e ng.smart-jenkins.zip out_1/target/product/msm8909/obj/PACKAGING/target_files_intermediates/msm8909-target_files-eng.smart-jenkins.zip update_c.zip


-i 为产生增量包;
P.s 其余选项 FULLOTA 中已介绍。

生成差分包的包字可以任意为什么名字,和之前的整包做一个区分

3. OTA 升级操作步骤和方法

3.1 通过 Recovery 模式手动升级系统

这个刷机包拷贝到 sd 卡中。通过 adb reboot recovery 方式重启进入 recovery 模式进行升级; SC20/SC60 默认情况通过 PWRKEY 开机+ 同时 VOL_UP 拉低 进入 Recovery 界面。

3.2 通过 Android 接口 adb 命令方式升级

安卓提供了接口给我们来进行升级。
首先通过
adb root
adb push update.zip /data/update.zip
将升级包导入手机,这个步骤,到时候我们就可以直接通过 apk 下载升级包到/data/ 目录或 /cache 目 录或 SD 下。
接下来我们在 cache 目录下创建 recovery 文件夹:
adb shell “mkdir /cache/recovery”
然后在 recovery 目录下创建文件 command
adb shell “touch /cache/recovery/command”
下一步就是往 command 这个文件中写入:
adb shell
echo “–update_package=/data/update.zip” > /cache/recovery/command
sync
最后我们重启到 recovery,系统就会自动进行更新了:
adb reboot recovery

PS: 安卓 8 之后的版本不支持 adb 命令升级,因为 data 分区加密

adb root
adb push- p update.zip /data/ota_package/update.zip
adb shell uncrypt /data/ota_package/update.zip /cache/recovery/block.map
adb shell “echo”–update_package=@/cache/recovery/block.map" > /cache/recovery/command"
adb reboot recovery

3.3 通过 Andorid 接口 apk 的方式升级系统

通过上层 java 接口升级,主要使用如下两个 andorid 的标准接口:

4. 对 img 文件进行升级

例:对 splash.img 文件进行升级
splash.img 这里面存放的是开机动画,默认使用的都是我司的开机动画
修改点:

Android 7.0 OTA升级(高通)相关推荐

  1. htc+820+android+5.0,首款高通64位八核 HTC Desire 820评测

    9月初的IFA2014展会期间,多款搭载64位处理器的新品智能手机扎堆发布,也算是拉开了64位处理器安卓手机的时代序幕.其中,最引人注目的新品之一莫过于HTC Desire 820,它于北京时间9月4 ...

  2. 【高通SDM660平台 Android 10.0】(21) --- 高通Camera persist使用手册

    在网上看到一位兄弟针对高通平台 camera 相关属性总结的特别好,特意转载过来备份下,以供后续调试使用. 原文: <高通Camera persist使用手册> 基于MSM8996平台PL ...

  3. 展锐平台 Android 10.0 OTA升级开机Logo

    通过OTA升级更换开机logo图片 展锐部分平台的logo是放在pac包的时候才去更新的.所以只有线刷pac包,才能更新logo,如果我们需要在OTA升级包含开机logo则需要单独修改,以sl8541 ...

  4. 解决高通 Android 12/13 ota升级失败问题

    1. Android adb push ota全量包 如下图所示 2.当前设备是a分区 如下图所示 3.adb root ->adb enable-verity->adb reboot  ...

  5. EFR32MG21 zigbee 3.0 OTA 升级实验

    EFR32MG21 zigbee 3.0 OTA 升级实验 参考文档:AN728 https://www.sekorm.com/doc/1607600.html 芯片:EFR32MG21A010F76 ...

  6. s6 android 6.0,三星Android 6.0更新升级详细名单:只有国行S6 Edge(G9250)

    此前,外媒曾泄露了一份三星机型的Android 6.0首批升级清单,去年的旗舰机Galaxy S5竟不在其中,使得消费者对手机第一大厂很失望.其中,三星目前的旗舰智能手机Galaxy S6, Gala ...

  7. moto x android 6.0,MOTOXPRO升级安卓6.0

    摩托罗拉安卓6.0升级名单 国行MOTO四月底全部更新完成 以下为MOTO支持升级安卓6.0的机型: 1.2015 Moto X Pure Edition (第三代) 2.2015 Moto X St ...

  8. android7.0模拟器调试,android - 为什么在android 7.0及更高版本上出现模拟器错误? - 堆栈内存溢出...

    我正在开发将联系人保存在.vcf文件中的应用程序. 当我运行模拟器来测试应用程序时,我还会收到以下错误. 应用程序正在物理设备上运行. 但是android 7.0及更高版本的模拟器也给出了错误. (警 ...

  9. 乐2的android版本,乐视2高通|MIUI10|安卓6.0|最终完美版|极速_最新最全的乐2高通版ROM刷机包下载、刷机...

    乐视2高通|MIUI10|安卓6.0|最终完美版|极速流畅|稳定实用|摇晃手势|DDK设置|养老专用 更新编译工具ROM体积更小相机切换不卡 因为Magisk的关系开机会有系统提示完全不影响 精简桌面 ...

最新文章

  1. Verilog中的逻辑运算符与按位运算符的区分
  2. Hbase shell详情
  3. CTF工具-gdb简介
  4. 信息学奥赛C++语言:统计正数
  5. 为什么要简化代码书写
  6. 语音识别技术在智能家居中的应用有哪些?
  7. 聊聊我的 ACL2020 论文
  8. lua定义一个简单的类
  9. 前端项目框架搭建随笔---Tab组件的编写
  10. 毕设题目:Matlab电力负荷预测
  11. 基于SSM实现的旅游管理系统【附源码】(毕设)
  12. 挂烫机UL认证怎么办理
  13. c语言水表程序流程图,水表检定操作流程图.pdf
  14. Android实现淘宝体验的商品列表排序分类点击事件
  15. 再论互联网公司盖楼那些事-尾声 谁是中神通
  16. ES6中的entries
  17. Dev-C++如何更改字体大小
  18. 微信支付官方揭开刷脸支付神秘面纱
  19. 【Python爬虫练习】虎扑社区步行街版块首页信息爬取(BeautifulSoup+MongoDB)
  20. 【ATF】庄卓然(南天):掌上精彩-连接过去与未来

热门文章

  1. C# 已知圆心和两点,用DrawArc()画圆弧(算法)
  2. pubmed显示服务器不稳定,PubMed天天用,可是你真的用对了吗?
  3. 超级好用的串并转换Verilog
  4. 微信小程序之企业付款
  5. 完全恢复和不完全恢复的区别
  6. [数据与分析可视化] D3入门教程1-d3基础知识
  7. 什么是Magento?
  8. 【报告分享】 2020跨境出口电商行业白皮书-CBNDATA(附下载)
  9. 程序员必备网站之一:i Hate Regex
  10. D26:The Nearest Number(最接近的数,翻译+题解)