fota 差分包_FOTA升级

本文详细介绍了FOTA(Firmware Over-The-Air)升级在Android系统中的应用,包括借助外部设备和不借助外部设备的升级方式。重点讨论了在高通安卓项目中部署FOTA升级的过程,如编译ota包、制作差分包和本地验证升级。同时,分析了Android OTA升级的基本流程,以及在升级过程中可能遇到的问题与异常分析。
摘要由CSDN通过智能技术生成

分以下三个模块分析FOTA升级介绍

1.在一个高通安卓项目中部署FOTA升级

2.Android ota升级的基本过程

3.Android ota升级异常分析

升级:

从方法上分为整个文件替换,以打patch的方式替换 (diff patch)

从是否借助外部设备上分为借助外部设备,不借助外部设备

1.借助外部设备升级(PC 的fastboot升级,设备芯片的直接烧录)

2.不借助外部设备升级,一般都有自己特定的升级模式进行升级(Android Fota升级 , 应用市场应用升级FOTA升级)

Firmware Over-The-Air 固件空中下载技术,主要用于应用的手机领域.

在FOTA升级出现之前手机制造商和移动网络运营商无法在手机的最重要的18至24个月内进行有效的软件升级.

FOTA升级应用领域:需要后续升级维护的设备 比如:手机,平板,车载,物联网等Android

FOTA升级特点 1.升级system系统应用 2.升级固件,modem sbl1 tz rpm lk boot.img设备 3.生产厂商专属!

Firmware:固件 设备通电之后,进行初始化让元器件正常运行的二进制程序。

: rpm高通的资源功耗管理子系统

:sbl1 高通的bootlodaer

:tz高通安全模块

:emmc_appsboot android的bootloader

: NON-HLOS调制解调(基带)处理子系统

芯片厂商提供的很多参数,设备生产厂商根据设备特点配置出来的最合适的硬件参数---固件

如何在一个android项目里部署fota升级

1.本地编译版本,成功制作ota包

2.移植对应厂商的ota移植数据

3.实现本地FOTA升级验证

4.终端APP界面开发

5.升级服务器开发

6.实现一键升级验证

差分包相关  1.升级包编译 2.制作差分包  //3.差分包重签名

升级包编译

在android目录

执行 source config.sh

Make otapackage

升级包生成路径out/target/product/{product_name}/ {product_name}-ota-eng.{uid}.zip

添加高通的固件移植就是把编译好了的rpmemmc_aboottz sbl1 NON-HLOS固件添加到与差分包制作相关的文件

制作差分包

与差分包制作相关的文件

ota_from_target_files

releasetools.py

ota_target_files.zip    -----对package_backup.zip的打包

releasekey.pk8/ releasekey.x509.pem签名文件

文件路径/device/qcom/common/releasetools.py

通过修改该文件可以实现对分区进行整包/差分升级配置

tz rpm emmc_aboot NON-HLOSsbl1

文件路径/build/tools/releasetools/ota_from_target_files

通过修改该文件可以实现对boot.img的整包差分升级

关于ota_from_target_files脚本

./build/tools/releasetools/ota_from_target_files –d MMC -p ./out/host/linux-x86

-k ./build/target/product/security/testkey–Ipath_to_target_files_v1.zip

path_to_target_files_v1.zip update.zip

部分参数

-k  签名文件路径

-i  从v1 升级v2的增量构建

-w 升级结束后对userdata分区进行初始化

-d 选择设备类型

-p 对应的工具路径

update1.zip\META-INF\com\google\android\updater-script升级脚本

updater-script()

1.mountsystem (重新挂载使得可以写)

2.校验是否是对应的属性/签名 自制ROM

3. apply_patch_check 校验

4. apply_patch打path

5. set_metadata  恢复文件信息

6.radio update tasks 升级固件

7.unmount system

FOTA本地验证升级

adb  root

adb push update.zip /data/update.zip

adbshell mkdir/cache/recovery

adbshell “echo –update_package=/data/update.zip >/cache/recovery/command”

adb shell sync      //同步文件系统

adb reboot recovery

Androidota升级的基本过程

Emmc_aboot启动recovery

1.判断是否进入fastboot模式

2.判断加载boot.img  /recovery.img   misc分区!

3.加载recovery.img

4.执行recovery的init.rc

执行service recovery /sbin/recovery seclabel u:r:recovery:s0

注: (/bootable/recovery/etc/init.rc)

794ec0767183050e09c69630eceec7cb.png

Recovery.cpp

Recovery模式 recovery的init.rc   (/bootable/recovery/etc/init.rc)

执行recovery.cpp进程

Get_args 获取command的参数 if not 就等输入

---- 跑跑跑      注意:恢复出厂设置也在这里!

加载 META-INF\com\google\android\updater-binary

创建新的进程updater-binary

建立recovery进程与updater进程的管道

recovery进程作为显示 updater进程解析updater-script 并且升级

升级结束,清楚标志位

348e305becc8d22e8d483e47cacfdf47.png

第三方升级支持做了什么:

1.技术支持(升级有问题可以问他们)

2.提供升级服务器 --(AWS)

3.简化的操作的工具 -- 一键上传

Androidota升级异常分析:

两个日志,一个文件

–/cache/recovery/last_log看升级过程异常

–Fota_log  与升级服务器交互的log

–saved.file升级过程中bak文件

一个工具

–QMSCT导出设备镜像

–dd if=/dev/block/bootdevice/by-name/modemof=/sdcard/modem.mbn

两个问题:

现象:设备升级结束后可以正常开机但报严重错误

问题分析:

–升级modem时设备异常重启!

–Apply_check check失败 退出recovery

–release_tool 添加参数

原因Apply_check函数解析脚本时会把对应文件的hex值加入list

由于modem已经被破坏(hex有问题),寻找saved.file时又没有对应hex与其匹配

处理办法 修改release_tool脚本,添加对应参数

现象:设备升级结束后可以正常开机但报严重错误

问题分析:

–升级modem时设备异常重启!

–Apply_check check失败 退出recovery

–release_tool 添加参数

原因Apply_check函数解析脚本时会把对应文件的hex值加入list

由于modem已经被破坏(hex有问题),寻找saved.file时又没有对应hex与其匹配

处理办法 修改release_tool脚本,添加对应参数

相关链接:http://blog.csdn.net/mu0206mu/article/details/7399822

---------------------

本文来自 慌慌丨张张 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/s762888517/article/details/53994688?utm_source=copy

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RHEL 5 将是 RedHat 的商业服务器操作系统版本的第四次重要版本发布,RedHat 酝酿发布 RHEL 5 已经超过了两年, 主要变化括 Linux 内核由 2.6.9 升级为 2.6.18,支持 Xen 虚拟化技术,集群存储等。 RHEL 5 的版本主要分为 Sever 和 Desktop 两个版本。 具体来说,Server 版本分为: · Red Hat Enterprise Linux Advanced Platform - 对应以前的 Red Hat Enterprise Linux AS · Red Hat Enterprise Linux - 对应以前的Red Hat Enterprise Linux AS Desktop 版本分为: · Red Hat Enterprise Linux Desktop - 对应以前的 Red Hat Desktop · Red Hat Enterprise Linux Desktop with Workstation option - 对应以前的 Red Hat Enterprise Linux WS 主要的功能括: 1. 虚拟化技术 - 在各种平台上支持虚拟化技术 - 在 Red Hat Enterprise Linux Advanced Platform 支持存储与扩展的服务器虚拟化技术 - Red Hat Network 提供各种虚拟化系统的支持 - virt-manager,libvirt/virsh管理工具 2. 内核与性能 - 基于 Linux 2.6.18 内核 - 支持多核处理器 - 广泛的新硬件支持 - 更新的基于 Kexec/Kdump 的 Dump 支持 - 支持 Intel Network Accelerator Technology (IOAT) - 对于大型 SMP 系统技持的增强 - 增强的管道缓存 - 内核缓存接合能力用于改进IO缓存操作 3. 安全 - SELinux 增强 - 图形化 SELinux 管理界面 - 集成的目录和安全机制 - 增强的 IPESEC 提高安全与性能 - 新的审计机制用于提供新的搜索、报表和实时监控的能力 4. 网络与互操作性 - 支持 Autofs,FS-Cache 和 iSCSI - 增强的 IPv6 支持 - 改进的 Microsoft® 文件/打印和 Active Directory 集成 5. 桌面 - 更新的管理工具、应用程序和对笔记本的支持 - 改进的 ACPI 支持,括 Suspend to Disk - 智能卡登录,括 PKI/Kerberos 认证 - 集成的多媒体支持 - 增强的即插即用支持 - Network Manager 提供自动的有线和无线网络配置 - 基于 AIGLX/Compiz 的图形化界面(支持淡化、透明等效果) 6. 开发环境 - 增强的开发工具,括 System Tap 和 Frysk - GCC4.1 和 glibc 2.5 工具链 7. 存储 - 支持根设置多路 IO(MPIO),提高可用性 - 服务器产品中含单系统/客户的 Red Hat Global File System 支持 - 块设备数据加密支持 8. 管理 - 安装过程更新简化系统配 - 基于 Yum/Pup 的 Red Hat Network 更新 - Conga 集群和存储管理
### 回答1: 单片机差分升级是一种升级方式,它能够在保证升级过程安全和可靠的前提下,减少升级时间和数据大小,提高了升级效率。而在单片机差分升级中,上位机软件分则是一种将整个升级拆分成多个小逐步传输的方法。 在单片机差分升级过程中,由于升级的大小可能较大,并且在传输过程中还需要保证数据的完整性和准确性,因此一次性将整个升级传输到单片机可能会存在困难。因此,将升级拆分成多个小,逐步将其传输到单片机,可以降低传输的压力和出错概率,提高升级的稳定性和成功率。 在实践中,上位机软件分具体操作过程一般为:首先将整个升级分割成多个块,然后依次将每个块传输到单片机,单片机接收到每个块时即可进行验证和更新操作。在这个过程中,需要确保每个小块的大小和顺序都能够正确匹配,同时还需要确定数据传输的方式和协议,以确保整个升级过程的成功和重新升级的可行性。 总的来说,单片机差分升级和上位机软件分是在保证升级安全和效率的前提下,提高升级精度和稳定性的有效措施。通过这种方法,可以更好地实现单片机的远程升级,减少出错和重复升级的可能,从而提高产品的质量和可靠性。 ### 回答2: 单片机差分升级FOTA)是指在不需要将整个程序烧录到芯片中的情况下,仅仅升级芯片中的一部分程序。而上位机软件分是指将大文件切割成多个小文件传输,以提高传输效率和稳定性。这两个概念的结合,可以为单片机升级提供更加高效的解决方案。 单片机差分升级需要将新程序与旧程序进行比较,找出差异部分,将差异部分烧录到芯片中,从而实现升级。上位机软件分则可以将大文件切割成多个小文件,并分为多个逐个传输,这样可以避免传输中断或错误,提高传输效率和稳定性。将差分升级和上位机软件分相结合,可以使单片机升级更加高效并且更加安全。 对于大功率设备或者移动设备,上位机软件分更是必不可少的方案。这些设备通常数据传输量大,而通信环境不够稳定,使用上位机软件分可以减少意外中断或者传输错误的影响,有效减少重传的次数,提高数据传输效率和可靠性。 总之,单片机差分升级和上位机软件分的相结合能够为单片机升级提供更加高效和安全的解决方案,尤其是对于大功率和移动设备,更是不可或缺的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值