我的NPI项目 - OTA upgrade是什么?

Google OTA

Google OTA 即 Google Over-The-Air,是谷歌为 Android 设备提供的一种无线软件更新技术,通过该技术,用户可以在不使用电脑等外部设备的情况下,直接通过网络下载并安装操作系统、应用程序或固件的更新包,实现设备系统和软件的升级与维护。以下是关于它的一些介绍:

更新流程:

  • 检查更新:Android 设备会定期与 Google 的 OTA 服务器进行通信,检查是否有可用的更新。如果有更新,服务器会将更新信息推送给设备,其中包括 OTA 更新包的下载地址和版本信息等。
  • 下载更新包:设备上的 Update 程序会根据接收到的信息,将更新包下载到设备的 cache 分区,并提醒用户有可用的更新。
  • 重启进入 recovery 模式:用户选择安装更新后,设备会重启并进入 recovery 模式,此时不再启动 boot 分区下的运行环境,而是启动 recovery 分区下的运行环境。
  • 校验与解压:recovery 运行环境初始化时会启动 recovery 二进制程序,并根据 /cache/recovery/command 中的命令对更新包进行操作。首先会对更新包中 /res/key 的签名进行校验,若校验失败则中断升级;校验通过后,会对更新包中的数据进行解压。
  • 分区更新:Recovery 二进制程序根据解压出的数据对 boot、system 和 vender 等分区进行相应更新,对 system 分区的更新也包含了新的 recovery 分区的更新。
  • 重启设备:更新完成后,设备会重启,载入新的 boot 分区,并执行升级后的 system 分区中的二进制文件。系统启动时还会校验 recovery 分区,若与升级时保存在 system 分区下的信息不一致,则会对 recovery 进行更新,至此系统更新完成。

更新包类型:

  • 全量更新包 :包含了整个 system 分区中的数据文件,利用全量更新包升级类似于对电脑重新安装系统,会格式化系统分区,并将新系统数据写入分区。
    • 差分更新包:仅包含两个版本之间改动的部分,利用差分包升级不会格式化 system 分区,只是对其中部分存储段的内容进行重写,这样可以减少下载的数据量,加快更新速度。
  • 支持设备:Google 的 OTA 更新主要面向其旗下的 Pixel 系列设备,如 Pixel 6、Pixel 7、Pixel 8 以及后续的 Pixel 9 系列等,同时早期的 Nexus 系列设备在支持周期内也可通过 OTA 获取更新。

通过 OTA 更新,Google 能够方便快捷地向用户推送系统修复、性能优化、新功能添加等内容,有助于提升设备的稳定性、安全性和用户体验,同时也便于用户及时获取最新的软件版本,而无需手动从复杂的渠道下载和安装更新。

定制OTA过程

Side loader

Side loader是在Android早期时候支持的一种系统升级方法.

首先导入需要使用的OS包文件到SD卡;

插入SD卡到主机;

重启系统进入,recovery mode, 从菜单中选择system upgrade, 选择之前存在SD中的镜像文件.

进入系统升级过程;

重启;

A/B system 升级

为了更好的满足客户需求和使用体验, Google对side loader进一步优化,提出了A/B system 升级的概念,A/B system 升级的优势:

  1. 不用重启进入recovery mode

  2. 可以有效防止,side loader模式下, 升级失败后系统无法开机的问题.

Google对A/B系统升级的解释如下:

为什么被成为Legacy A/B system 升级,是因为Google目前有更好的升级方案, 这个我们下面再说.A/B系统升级又被称之为无缝升级.

优势

优势很明显, 在系统运行过程中进行系统升级. 如果重启失败, 那么系统会boot回之前的分区.举个例子,当前运行在A分区, 然后,在A分区的系统中,进行B分区的系统升级,升级成功之后,重启进入B分区,如果B分区出现了无法开机的问题,系统还可以boot回A分区; 不需要占用更多的Cache分区;

相关推荐
汤姆宝库1 小时前
世界模型深拆:视频生成、潜在模拟与物理直觉
人工智能
weixin_468466854 小时前
从“看懂”到“做到”:视觉-语言-动作模型如何让机器人真正执行指令
人工智能·ai·机器人·大语言模型·前沿科技
朋友圈自动点赞工具4 小时前
科学AI插件化:从蛋白质结构到古籍修复
人工智能
龙粤GEO5 小时前
实体Entity在GEO中代表什么含义
人工智能
剑雨巍巍6 小时前
AI Agent面试之基础概念
人工智能
微帧Visionular6 小时前
AI视频单帧清晰,播放时却闪烁,原因是什么?
人工智能·深度学习·音视频
武子康6 小时前
MultiNet6 空闲崩溃:`EXCVADDR=0x8` 后又出现 `CORRUPT HEAP`
人工智能·后端·agent
云智慧AIOps社区6 小时前
智能巡检机器人应用场景解析:机房巡检、园区安防、管廊巡视与展厅导览
人工智能·机器人·具身智能·智能巡检机器人·企业级智能巡检机器人·机房巡检机器人·导览机器人
EnCi Zheng6 小时前
Agent 如何进行工具调用:从一次 Function Calling 到生产级工具编排的完整链路
大数据·人工智能·agent·ai编程·工具调用
赛博守夜人6 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全