温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
跨固件
平台
升级
系统
研究
纪大峣
第 39 卷 第 7 期 福 建 电 脑 Vol.39 No.7 2023 年 7 月 Journal of Fujian Computer Jul.2023 纪大峣,1983年生,男,主要研究方向为嵌入式系统、操作系统、智能计算。E-mail:。跨固件平台升级系统的研究 纪大峣(瑞芯微电子股份有限公司研发部 福州 350003)摘 要 Android 固件平台的平台固件承载着 SoC 芯片原厂对固件平台的最新研究成果。如何在 Android 跨大版本升级时在保留用户数据的同时升级对应新版本 Android 固件平台的系统固件和平台固件是 Android 跨大版本升级的核心问题。此外如何避免端到端的定制开发,是解决设备厂商 Android 跨大版本升级困境的关键。为此,本文提出一种统一的跨固件平台升级系统,通过对 Android 固件平台的 Android 系统固件和平台固件进行统一的多平台兼容设计在一个固件平台上实现统一的跨固件平台升级系统,有效解决现有方法无法在保留用户数据的基础上同步升级对应新版本 Android 固件平台的平台固件问题和大量端到端定制开发导致的维护问题。实验结果验证了该方法能够在升级后保留用户数据并实现固件平台的完全升级,同时无缝支持将多个旧版本 Android 固件平台升级到新版本 Android 固件平台,已经在大规模设备上广泛应用。关键词 操作系统;固件平台;固件升级;Android 大版本升级 中图法分类号 TP393 DOI:10.16707/ki.fjpc.2023.07.007 A Unified Cross-Firmware Platform Upgrade System JI Dayao(Department of Research and Development,Rockchip Electronics Co.,Ltd,Fuzhou,China,350003)Abstract The platform firmware in the Android firmware platform carries the latest research results of the SoC vendor on the firmware platform,so how to upgrade the system firmware and platform firmware of the corresponding new version of the Android firmware platform on the basis of keeping user data when upgrading across major versions of Android is the core problem of Android cross-major version upgrade;In addition,how to avoid end-to-end custom development is the key to solving the dilemma of cross-major version upgrade of Android by device manufacturers.To this end,this paper proposes a Unified Cross-Firmware Platform Upgrade System,UCFPUS,which realizes a unified cross-firmware platform upgrade system on one firmware platform by carrying out a unified multi-platform compatible design of Android system firmware and platform firmware of the Android firmware platform,which effectively solves the maintenance problems caused by the existing methods that cannot synchronously upgrade the corresponding new version of the Android firmware platform on the basis of keeping user data.Experimental results verify that the proposed method can keep user data and achieve a complete upgrade of the firmware platform after the upgrade,and seamlessly supports the upgrade of multiple old versions of Android firmware platform to the new version of the Android firmware platform,which has been widely used in large-scale devices.Keywords Operating System;Firmware Platform;Firmware Upgrade;Android Major Version Upgrade 1 引言 Android 系统基本上每年都发布一个大版本1。当发布一个新的 Android 大版本时,SoC(System on Chip)芯片原厂都会基于新版本 Android 系统开发对应 SoC 芯片的新一代固件平台。新的固件平台除了基于新发布的 Android 大版本外,通常在平台的2023 年 福 建 电 脑 31 其他基础技术方面也会进行相应更新,将最新的研究成果和对平台的思考和重新设计在新平台上体现出来。这会不可避免地导致对应 SoC 芯片的新Android 固件平台与早期平台存在显著差异,如固件设计发生变化、分区表类型和分区设计不一致、用户数据分区的加密方式发生变化等。Android系 统 在 智 能 物 联 网(Artificial Intelligence of Things,AIoT)边缘设备中得到越来越广泛的应用2-5。同时,AIoT 边缘设备的生命周期越来越长。这就意味着很多已经出货的遗留设备存在强烈地从旧版本 Android 系统通过固件空中接口(Firmware-Over-The-Air,FOTA)升级到新版本的需求,从而能够无缝体验新版本 Android 系统的新特性。同时厂商通过承诺所售设备在其生命周期内能够通过 FOTA 无缝升级到后续新版本 Android系统,来提高产品对客户的吸引力6。现有的将旧版本 Android 系统升级到新版本的方法,为了能够保留设备中当前所有可读写用户数据分区里的数据,同时也为了能够与现有的Android FOTA 流程无缝兼容,通常只升级新版本Android固件平台中Android开放源码项目(Android Open Source Project,AOSP)代码所对应的系统固件6-7,即只关注 Android 版本本身的升级,而忽略新版本固件平台中的非系统固件(即平台固件)的升级。由于一个 SoC 芯片的新版本 Android 固件平台除了包括新版本 Android 系统固件外,更重要的是新的非系统固件的更新换代。SoC 芯片原厂通常会将对芯片固件平台的最新研究成果融入新版本Android 固件平台的非系统固件上。这就意味着此类方法在将旧版本 Android 升级到新版本后,无法享受到新版本 Android 固件平台中非系统固件更新所带来的新技术和新设计。同时该类 Android 大版本升级方法通常都是针对每一个特定的设备型号分别进行端到端的定制开发。具体来说,每一个设备型号,都需要针对某两个特定的 Android 大版本进行定制开发,以便将某一特定设备型号的某一特定旧 Android 系统版本升级到某一特定新 Android 系统版本6。这种定制通常不具有通用性,导致开发工作量大且固件代码管理复杂,需要针对特定型号和特定旧 Andriod 系统版本分别进行单独管理和维护。同时,当对应 SoC芯片的新固件平台发布时,其早期 Android 版本的固件平台通常都已经被用于开发大量的产品。而且这些早期版本不是一个版本,通常是好几个版本。当SoC芯片的生命周期越来越长时,其早期Android版本的固件平台会越来越多,导致端到端定制的工作量和维护量成倍增长,产生大量的定制固件平台变种。为了解决当前将旧版本 Android 系统升级到新版本时没有同步升级对应新版本 Android 固件平台的非系统固件,从而无法体验新固件平台引入的新技术成果问题,也为了解决 Android 跨大版本互升时端到端定制开发产生的大量不兼容变种固件平台代码导致的开发工作量大、固件代码管理复杂问题,本文设计和实现了一种统一的跨固件平台升级系统 UCFPUS(A Unified Cross Firmware Platform Update System)。采用 UCFPUS 后,在将旧版本Android 系统升级到新版本时,既能够保留当前设备中所有用户可读写分区中的用户数据,又能够将新版本 Android 固件平台中的系统固件和非系统固件同步升级,使得升级后的设备能够完全享受新固件平台中的各种新技术。UCFPUS 作为一个统一的跨固件平台升级系统,可以无缝集成到 SoC 芯片新版本 Android 固件平台,统一支持将多个旧版本Android 固件平台升级到新版本,有效解决设备厂商的 Android 大版本互升困境,提高产品吸引力和用户满意度。2 相关研究 现有的将旧版本 Android 系统升级到新版本的方法主要分为两大类:一类是固件平台的完全升级,另外一类是 Android 系统固件的升级。固件平台的完全升级指的是将包括分区表在内的所有固件全套更新。升级后的效果,相当于通过上位机烧录新版本 Android 固件平台的全套固件。由于新版本固件平台相对旧版本的分区表变化不可预测,因此此类方法需要处理分区表任意变更时的 FOTA 场景8-11。仅支持部分分区表变更的方法通常难以完全满足需求。与此同时,由于分区表的任意变更意味着设备中的可读写用户数据分区中的数据在 FOTA 升级后将无法直接保留,在该类方法中,新版本 Android 固件平台只需要一个通用的包括所有固件的固件升级包即可。多个旧版本Android 都可以使用同一个固件升级包来将设备FOTA 升级到新版本 Android 固件平台8-11。例如某一厂商基于某一 SoC 芯片的 Android 9 固件平台、Android 10 固件平台和 Android 11 固件平台分别开32 纪大峣:跨固件平台升级系统的研究 第 7 期 发了相同硬件的设备,当该 SoC 芯片的 Android 12固件平台发布后,如果要将分别搭载 Android 9、Android 10 和 Android 11 固件的遗留设备全部升级到 Android 12 固件平台,只需要制作一个包含Android 12 固件分区表在内的固件升级包,然后将该固件升级包分别推送到对应的搭载 Android 9、Android 10 和 Android 11 固件的遗留设备来实现将对应旧版本 Android 固件平台 FOTA 的升级。但是此类方法通常需要依赖外置存储介质(如 U 盘),并且升级后无法直接保留可读写用户数据分区里的数据8-9。而很多设备部署时并没有标配外置存储。有些方法虽然不需要依赖外置存储,但是对应方法的复杂度高且通常无法直接保留用户分区数据,需要用户干预进