Android 7.0 OTA升级(高通)

文章详细介绍了Android系统的FullOTA和IncrementalOTA两种升级方式,包括各自制作步骤和所需文件。FullOTA涉及整个系统升级,IncrementalOTA则针对特定分区进行增量更新。此外,还提到了OTA升级的不同操作方法,如通过Recovery模式、adb命令和Android接口apk进行升级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文档中主要描述 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:–update_package是两个-

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 技术文档和资源 #### 关于高通平台上的Android分区方案和技术细节 针对采用高通芯片组的Android设备,存在特定的最佳实践用于设计存储介质上的文件系统布局。这不仅影响到系统的性能表现,还涉及到如何有效地管理和利用有限的空间资源[^1]。 对于希望深入了解这一主题的人士而言,可以获取一份详尽描述了android最佳分区方案以及高通特有的Android分区表解析材料。这份资料提供了关于如何合理规划内部存储结构的专业指导,有助于开发者理解并优化其应用程序的行为模式及其对底层硬件的影响方式。 #### VoLTE技术支持下的通信改进 随着移动运营商逐步淘汰旧有的3G网络并向更先进的标准过渡,在某些地区如美国AT&T已经停止提供3G服务的情况下,确保基于高通处理器构建的新一代智能手机能够顺利切换至支持VoLTE变得尤为重要[^2]。这种转变意味着电话呼叫将不再依赖传统的电路交换机制而是完全经由第四代长期演进(Long Term Evolution,LTE)无线接入网路完成传输过程。因此,了解有关配置设置以实现平稳迁移的具体步骤成为必要条件之一。 #### 探索高效能充电解决方案背后原理 除了上述两个方面外,另一个值得关注的重点领域就是快速充电功能的设计理念与实施策略。为了满足现代消费者日益增长的需求——即更快捷方便地恢复电池电量水平而不必长时间等待—制造商们纷纷推出了各种形式的能量补充方法论。其中一项关键技术便是来自Qualcomm Incorporated所研发出来的Quick Charge协议家族成员产品线;它们允许终端装置在接受外部电力输入过程中达到前所未见的速度记录,同时保持安全性和兼容性的高标准[^3]。研究者可以通过查阅位于`frameworks/base/services/core/java/com/android/server/power`路径下相关类库中的源代码片段来进一步探究其实现机理。 ```java // 示例:查询PowerManagerService.java中涉及充电逻辑的部分函数定义 public class PowerManagerService { ... private void handleBatteryChanged(Intent intent){ // 处理电池状态变化事件... } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值