CN114090028A - 系统升级方法、电子设备及存储介质 - Google Patents
系统升级方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114090028A CN114090028A CN202111397208.8A CN202111397208A CN114090028A CN 114090028 A CN114090028 A CN 114090028A CN 202111397208 A CN202111397208 A CN 202111397208A CN 114090028 A CN114090028 A CN 114090028A
- Authority
- CN
- China
- Prior art keywords
- upgrade
- package
- information
- upgrading
- electronic device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种系统升级方法、电子设备及存储介质,所述方法包括:获取升级包,对升级包进行解析,获取升级包的分发信息,所述分发信息包括升级包中至少一镜像包的位置信息、容量信息、对应的升级执行体信息及关联设备信息;从升级包获取至少一升级执行体,根据升级执行体信息、位置信息和容量信息从升级包中读取至少一升级执行体对应的镜像包,至少一升级执行体包括自定义的与电子设备适配的升级引导信息;及运行至少一升级执行体,基于升级执行体对应的镜像包和关联设备信息,并根据升级引导信息而对电子设备的系统进行升级。本申请基于自定义有升级操作的升级执行体对电子设备的系统进行升级,有效提高了系统升级效率。
Description
技术领域
本申请涉及系统管理技术领域,尤其涉及一种系统升级方法、电子设备及存储介质。
背景技术
嵌入式系统具有专用性和高集成性,可以满足用户对于电子设备的特定功能需求,已广泛应用于各类电子设备,例如电动汽车等。为增强嵌入式系统的功能多样性或维持嵌入式系统的稳定性,需要频繁对嵌入式系统进行各项升级。嵌入式系统通常在主控板内置有升级程序,通过升级程序内预设的升级操作对主系统或外设进行升级,在对主系统进行升级时将升级包中的不同镜像写入不同的存储介质分区,在对外设进行升级时基于不同的升级协议将不同的镜像发送至不同的外设。
然而,由于嵌入式系统的硬件模块可以弹性设置,其硬件平台、存储介质或外设的类型或版本可能存在变更,如此在对嵌入式系统进行升级前,需要频繁地对升级程序本身进行升级,以增加对应的兼容性,从而影响嵌入式系统的系统升级效率。
发明内容
有鉴于此,有必要提供一种系统升级方法、电子设备及存储介质,以解决嵌入式系统在系统升级前需要频繁对升级程序进行升级,进而影响系统升级效率的技术问题。
本申请提供一种系统升级方法,所述方法包括:
获取升级包,并对所述升级包进行解析,获取所述升级包中的分发信息,所述分发信息包括所述升级包中至少一镜像包的位置信息、容量信息、对应的升级执行体信息及关联设备信息;
从所述升级包获取至少一升级执行体,根据所述升级执行体信息、位置信息和容量信息从所述升级包中读取所述至少一升级执行体对应的镜像包,所述至少一升级执行体包括自定义的与电子设备适配的升级引导信息;及
运行所述至少一升级执行体,基于所述至少一升级执行体对应的镜像包和所述关联设备信息,根据所述升级引导信息对所述电子设备的系统进行升级。
可选地,所述获取升级包包括:在对所述电子设备的系统进行升级时,基于预设的升级方式获取所述升级包,其中,所述预设的升级方式为在线升级或离线升级。
可选地,所述位置信息为偏移量信息,根据所述升级执行体信息、位置信息和容量信息从所述升级包中读取所述至少一升级执行体对应的镜像包包括:根据所述升级执行体信息确定所述升级执行体对应的镜像包,并基于所述偏移量信息确定所述升级执行体对应的镜像包在所述升级包中的位置;
根据所述升级执行体对应的镜像包在所述升级包中的位置和所述容量信息从所述升级包中读取所述镜像包;及对所述镜像包的文件完整性进行校验。
可选地,所述升级引导信息包括所述电子设备的硬件平台对应的升级框架,所述根据所述升级引导信息而对所述电子设备的系统进行升级包括:基于所述升级框架以及所述关联设备信息,所述升级执行体将所述镜像包写入关联的存储介质,并加载所述镜像包对所述电子设备的主系统进行升级;或,所述升级执行体将所述镜像包传输至关联的外设,所述外设加载所述镜像包对固件进行升级。
可选地,所述升级引导信息还包括所述电子设备的存储介质对应的写入操作,所述根据所述升级引导信息而对所述电子设备的系统进行升级包括:基于所述升级框架以及所述关联设备信息,所述升级执行体执行所述写入操作将所述镜像包写入关联的存储介质,并加载所述镜像包对所述电子设备的主系统进行升级。
可选地,所述升级引导信息还包括所述电子设备的外设对应的通信协议,所述根据所述升级引导信息而对所述电子设备的系统进行升级包括:基于所述升级框架以及所述关联设备信息,所述升级执行体基于所述通信协议将所述镜像包传输至关联的外设,所述外设加载所述镜像包对固件进行升级。
可选地,所述升级引导信息还包括所述升级执行体的类型,所述升级执行体的类型为全量升级执行体或差分升级执行体,所述根据所述升级引导信息而对所述电子设备的系统进行升级包括:基于所述升级框架以及所述关联设备信息,所述全量升级执行体通过对应的镜像包对所述电子设备的主系统或外设的固件进行全量升级;或所述差分升级执行体通过对应的镜像包对所述电子设备的主系统或外设的固件进行差分升级。
可选地,所述方法还包括:根据所述电子设备的硬件平台确定预设的升级框架;根据所述电子设备的存储介质确定预设的写入操作;根据所述电子设备的外设确定预设的通信协议;及根据所述预设的升级框架、所述预设的写入操作、所述预设的通信协议及所述镜像包的类型,生成所述镜像包对应的升级执行体。
本申请还提供一种电子设备,包括:
处理器;以及
存储器,所述存储器中存储有多个程序模块,所述多个程序模块由所述处理器加载并执行上述的系统升级方法。
本申请还提供一种计算机可读存储介质,其上存储有至少一条计算机指令,所述指令由处理器并加载执行上述的系统升级方法。
上述系统升级方法、电子设备及存储介质通过升级包中的升级执行体基于升级引导信息执行系统升级,升级执行体中的升级引导信息可以自定义以适配电子设备的硬件平台,如此,即使电子设备的硬件发生变更,也无需对电子设备本身的升级程序进行升级,有效提高了电子设备的系统升级效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请较佳实施方式提供的系统升级方法的应用环境架构示意图。
图2是本申请较佳实施方式提供的系统升级方法的流程图。
图3是本申请较佳实施方式提供的升级包的数据结构示意图。
图4是本申请较佳实施方式提供的电子设备的外设连接示意图。
图5是本申请较佳实施方式提供的从升级包中读取升级执行体对应的镜像包的流程图。
图6是本申请较佳实施方式提供的典型的嵌入式系统的存储介质分区的示意图。
图7是本申请较佳实施方式提供的典型的嵌入式系统的存储介质类型的示意图。
图8是本申请较佳实施方式提供的制作升级包的流程图。
图9是本申请较佳实施方式提供的电子设备的结构示意图。
主要元件符号说明
电子设备 1
处理器 10
存储器 20
计算机程序 30
主控板 100
升级程序 101
外设 102
服务器 2
云端 3
终端设备 4
移动存储设备 5
如下具体实施方式将结合上述附图进一步说明本申请。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施例对本申请进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
请参阅图1所示,为本申请较佳实施方式提供的系统升级方法的应用环境架构示意图。
本申请中的系统升级方法应用在电子设备1中,所述电子设备1可以与至少一服务器2、云端3、终端设备4、及/或移动存储设备5通过网络建立通信连接。所述网络可以是有线网络,也可以是无线网络,例如无线电、无线保真(Wireless Fidelity,WIFI)、蜂窝、卫星、广播等。蜂窝网络可以是4G网络或5G网络。
所述电子设备1可以为安装有系统升级程序的电子设备,例如智能手机、个人电脑、智能家居设备、电动车等。所述服务器2可以是单一的服务器、服务器集群等。所述云端3由电子设备1的服务提供商运行,可以包括多个服务器。所述终端设备4可以是智能手机、个人电脑等,其可以与所述电子设备1相同,也可以不同。所述移动存储设备5可以是U盘、移动硬盘等。
请参阅图2所示,为本申请较佳实施方式提供的系统升级方法的流程图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。
S201,获取升级包,并对所述升级包进行解析,获取所述升级包中的分发信息。
在一实施方式中,所述升级包是用于对电子设备的系统进行升级的总包文件。获取升级包包括:在对所述电子设备的系统进行升级时,基于预设的升级方式获取所述升级包。其中,所述预设的升级方式可以为在线升级或离线升级。
具体地,若所述预设的升级方式为在线升级,通过互联网或移动通信网络接收任意与电子设备通信的设备发送的升级包,以获取所述升级包。此时,所述远程设备可以是图1中的服务器、云端或终端设备。所述在线升级可以是远程升级或OTA(Over-The-AirTechnology,空中下载技术)升级。若所述预设的升级方式为离线升级,通过互联网或移动通信网络以外的方式(例如蓝牙、局域网、USB连接等)获取所述升级包。所述离线升级可以是U盘升级,所述U盘升级为接收任意与电子设备通过USB连接的移动存储设备发送的升级包,以获取所述升级包。所述离线升级还可以是本地升级,所述本地升级为从所述电子设备的存储器中读取预先存储的升级包。
请参阅图3所示,在一实施方式中,所述升级包包括,但不仅限于,包头、分发信息、至少一镜像包、升级执行体程序库及总包校验码。所述包头用于记录所述升级包的摘要信息,所述摘要信息包括所述升级包的哈希值、数字签名信息、升级包的长度、版本信息、公司信息、镜像包数量。所述分发信息包括所述至少一镜像包的位置信息、容量信息、对应的升级执行体信息及关联设备信息。所述分发信息用于记录镜像包在升级包中的存储位置、镜像包与升级执行体之间的对应关系以及升级执行体基于对应的镜像包进行系统升级时的关联设备,所述关联设备包括,但不局限于镜像包的写入位置,例如存储介质的分区、外设等。所述镜像包为对电子设备的主系统或外设的固件进行升级的镜像文件、驱动程序等,其格式可以是二进制格式或压缩格式。所述升级执行体程序库包括至少一升级执行体。所述升级执行体为用于执行系统升级进程的程序。在本实施方式中,每个镜像包使用一个升级执行体进行升级。在其他实施方式中,多个镜像包可以共用一个升级执行体进行升级。例如,在系统升级过程中,升级执行体是对存储介质执行擦除、写入、检验的程序,对外设进行升级的升级执行体是通过通信协议下发镜像包至外设,并获取外设返回的升级结果的程序。所述升级执行体还可以包含系统升级中所有与硬件相关的信息,例如分区信息、传输通道信息等。所述总包校验码为CRC(循环冗余校验码)校验码。在获取所述升级包后,通过所述总包校验码验证所述升级包的文件完整性。
请参阅图4所示,所述电子设备1包括主控板100、升级程序101及多个外设102。所述服务器2对所述升级程序101进行管理,例如对升级程序101进行升级或存储所述电子设备1上传的升级程序101的数据。在一实施方式中,在获取所述升级包后,通过电子设备内置的升级程序101对所述升级包进行解析,以获取所述升级包中的所述分发信息。其中,所述升级程序101为固化在所述电子设备的主控板中,专用于系统升级的程序。
S202,从所述升级包中获取至少一升级执行体,根据所述升级执行体信息、位置信息和容量信息从所述升级包中读取所述至少一升级执行体对应的镜像包。
在一实施方式中,从所述升级包中获取至少一升级执行体包括:若所述升级包包括多个升级执行体,从所述升级执行体程序库中获取任一升级执行体。若所述升级包包括一个升级执行体,从所述升级执行体程序库中获取所述升级执行体。
在一实施方式中,所述镜像包的位置信息包括所述镜像包的偏移量信息(offset),用于定位所述镜像包在所述升级包中的位置。所述容量信息为所述镜像包对应的数据块大小。所述升级执行体信息为所述镜像包对应的升级执行体的文件名称或位置。所述关联设备信息为所述电子设备中参与系统升级的设备。其中,所述设备可以是所述电子设备的处理器、存储介质及/或外设,所述外设可以是传感器、显示屏、音频组件等。
请参阅图5所示,在一实施方式中,根据所述升级执行体信息、位置信息和容量信息从所述升级包中读取所述至少一升级执行体对应的镜像包包括:
S2021,基于所述偏移量信息确定所述升级执行体对应的镜像包在所述升级包中的位置。
在一实施方式中,基于所述偏移量信息确定所述升级执行体对应的镜像包在所述升级包中的位置包括:通过所述偏移量信息确定所述镜像包对应的数据块在所述升级包中的开始位置。
S2022,根据所述升级执行体对应的镜像包在所述升级包中的位置和所述容量信息从所述升级包中读取所述镜像包。
在一实施方式中,从所述升级包中读取所述镜像包包括:在所述升级包中从所述开始位置读取与所述容量信息对应大小的数据块,从而获得所述镜像包。
S2023,对所述镜像包的文件完整性进行校验。
在一实施方式中,对所述镜像包的文件完整性进行校验包括:通过CRC校验码对所述镜像包的文件完整性进行校验。若确定所述镜像包的文件不完整,通过所述升级执行体重新读取所述镜像包,并输出提示信息。
S203,运行所述至少一升级执行体,基于所述至少一升级执行体对应的镜像包和所述关联设备信息,根据升级引导信息对所述电子设备的系统进行升级。
在一实施方式中,所述至少一升级执行体包括自定义的与电子设备适配的所述升级引导信息,需要说明的是,与电子设备适配是指与电子设备的硬件或硬件平台兼容。所述电子设备的系统包括主系统或外设的固件。
在一实施方式中,所述升级引导信息包括所述电子设备的硬件平台对应的升级框架。其中,所述升级框架为所述电子设备的硬件平台基于镜像包进行系统升级的逻辑操作顺序。例如,所述升级框架包括将镜像包写入的存储介质的目标分区,然后由存储介质分区中的引导程序或系统加载所述镜像包。需要说明的是,所述硬件平台为所述电子设备的运行环境,例如个人电脑(PC)系统、嵌入式系统等。
在一实施方式中,所述根据所述升级引导信息对所述电子设备的系统进行升级包括:基于所述升级框架以及所述关联设备信息,所述升级执行体将所述镜像包写入关联的存储介质,并加载所述镜像包对所述电子设备的主系统进行升级;或,所述升级执行体将所述镜像包传输至关联的外设,所述外设加载所述镜像包对固件进行升级。
需要说明的是,不同的硬件平台在执行系统升级的过程中,升级框架也不同。例如,在个人电脑系统中,升级框架包括将U盘或本地存储的WINDOWS系统的升级文件写入系统盘,以覆盖WINDOWS系统的原系统文件,再由主板的BIOS重新启动WINDOWS系统以加载所述升级文件,从而进行系统升级。在嵌入式系统中,升级框架包括将镜像包中的内核(kernel)升级文件和根文件系统(rootfs)的升级文件分别写入所述电子设备的存储介质对应的分区,然后由另一存储介质的引导加载程序(bootloader)加载kernel升级文件,再由kernel加载rootfs升级文件,直至进入可操作的界面,从而进行系统升级。
请参阅图6所示,为典型的嵌入式系统的存储介质分区示意图。在所述嵌入式系统中,引导加载程序bootloader存储在主板上的串行闪存(SPI FLASH)中的一个分区,kernel和rootfs分别存储在内嵌式存储器(EMMC)的一个分区。然而,不同厂商会根据各自的特性为生产的嵌入式系统提供不相同的存储布局和加载方式,例如可能有多级bootloader,可能不需要SPI FLASH,存储介质可能是与非门存储器(NAND FLASH),同一存储介质的分区也可能各不相同。这些差异会导致不同厂商提供的硬件平台不能通用,使得主控板上的升级程序也无法通用,若电子设备的硬件平台发生变更,原来的升级程序无法执行系统升级。
在所述电子设备进行系统升级的过程中,基于所述升级框架将镜像包中的系统文件写入存储介质对应的分区,再由存储介质的指定分区中的加载程序对写入的系统文件进行加载,以完成系统升级。
本申请在升级包中设置升级执行体,并在升级执行体中自定义设置兼容硬件平台的升级框架,使得所述升级程序与硬件平台解耦,如此,本申请的系统升级方法可以应用在任何硬件平台上。
进一步地,所述升级引导信息还包括所述电子设备的存储介质对应的写入操作,所述写入操作包括将所述镜像包写入所述存储介质的操作过程,例如直接写入或先擦除再写入。所述存储介质为主系统存储介质。
所述根据所述升级引导信息对所述电子设备的系统进行升级包括:基于所述升级框架以及所述关联设备信息,所述升级执行体执行所述写入操作将所述镜像包写入关联的主系统存储介质,并加载所述镜像包对所述电子设备的主系统进行升级。
请参阅图7所示,厂商对于同一硬件平台所选用的与CPU(中央处理器)连接的存储介质也可能不同,例如,存储介质可能选用EMMC、NAND FLASH、SPI FLASH、或外部安全数码存储卡(SD卡)。不同存储介质的写入操作也不同,例如NAND FLASH需要先擦除原存储数据,再写入新的数据。EMMC则可以直接写入新的数据。在现有的系统升级过程中,所述升级程序需要兼容可能的备选存储介质,从而造成较多的维护工作,增加设计成本。
例如,所述电子设备的存储介质为NAND FLASH。在所述电子设备进行系统升级的过程中,基于所述升级框架,所述升级执行体执行所述写入操作将存储介质对应的分区存储的原数据擦除,然后将镜像包中的系统文件写入分区,再由加载程序对写入的系统文件进行加载,以完成系统升级。
本申请在升级包中的升级执行体自定义兼容存储介质的写入操作,无需对主控板的升级程序设置存储介质的兼容性,从而减少维护工作。
进一步地,所述升级引导信息还包括所述电子设备的外设对应的通信协议,所述通信协议为所述电子设备与外设进行通信和数据传输的物理协议。例如,所述通信协议可以是通用异步收发传输器(UART)协议、串行总线(I2C)协议、串行外设接口(SPI)协议、以太网(ETH)协议等。
在一实施方式中,所述根据所述升级引导信息对所述电子设备的系统进行升级包括:基于所述升级框架以及所述关联设备信息,所述升级执行体基于所述通信协议将所述镜像包传输至关联的外设,所述外设加载所述镜像包对固件进行升级。
如图4所示,在所述电子设备1中,主控板100管理多个外设102,例如音频组件、传感器、显示屏等。由于外设数量较多,通常通过服务器2对外设102的固件版本进行管理。在现有的系统升级过程中,若主控板上的升级程序执行对外设的升级,需要基于主控板与不同外设之间不同的通信方式(UART、I2C、SPI、ETH等)支持对应的通信协议。然而,若外设产生替换,同时旧的升级程序不支持新外设,则需先对升级程序进行升级,以增加兼容性,再基于升级程序对新外设进行升级。或者外设版本产生更新,并采用了新的通信协议,与升级程序中的旧通信协议不兼容,如此也需要先对主控板上的升级程序进行升级,使其支持升级新版本外设的通信协议。此外,若外设变更频繁,需要频繁对升级程序中的通信协议进行更新,也会增加服务器对外设版本的管理难度。
在本申请中,升级包中的升级执行体包含传输镜像包对外设进行升级的通信协议,采用自定义的升级执行体即可对新外设或新版本的外设进行固件升级,无需对主控板内的升级程序进行升级。同时,也简化了服务器对升级程序和外设的版本管理。
进一步地,所述升级引导信息还包括所述升级执行体的类型,所述升级执行体的类型为全量升级执行体或差分升级执行体。其中,若所述升级执行体对应的镜像包为全量包,则所述升级执行体为全量升级执行体,若所述升级执行体对应的镜像包为差分包,则所述升级执行体为差分升级执行体。
在一实施方式中,所述根据所述升级引导信息对所述电子设备的系统进行升级包括:基于所述升级框架以及所述关联设备信息,所述全量升级执行体通过对应的镜像包对所述电子设备的主系统或外设的固件进行全量升级;或所述差分升级执行体通过对应的镜像包对所述电子设备的主系统或外设的固件进行差分升级。
具体地,所述全量升级执行体通过对应的镜像包对所述电子设备的主系统或外设的固件进行全量升级包括:所述全量升级执行体将全量镜像包写入关联的存储介质,以完整地替换旧的主系统文件,并在重启主系统时加载所述全量镜像包,以完成主系统的升级。或,所述全量升级执行体将全量镜像包传输至关联的外设,以完整地替换外设中的旧固件,并在重启外设时加载所述全量镜像包,以完成固件的升级。
所述差分升级执行体通过对应的镜像包对所述电子设备的主系统或外设的固件进行差分升级包括:所述差分升级执行体将差分镜像包与所述存储介质中的旧的主系统文件进行比对以确定差异文件,将所述差异文件写入所述存储介质,将所述差异文件与所述旧主系统文件打包成新的主系统文件,并重启系统加载新的主系统文件,以完成主系统升级。或,所述差分升级执行体将差分镜像包与所述外设中的旧固件进行比对以确定差异文件,将所述差异文件写入所述外设,将所述差异文件与所述旧固件打包成新的固件,并重启外设加载新的固件,以完成固件升级。
在现有的系统升级过程中,主控板内的升级程序通常需要同时兼容全量升级和差分升级,本申请通过在升级包加入与镜像包类型对应的升级执行体,减少了升级程序中对于全量升级和差分升级的兼容设计。
在其他实施方式中,所述升级引导信息可包括Recovery升级操作。所述升级执行体执行所述Recovery升级操作对电子设备的主系统进行更新,具体包括:若所述升级引导信息中包括Recovery升级操作,在读取镜像包后,重启电子设备的系统,并进入Recovery模式,在Recovery模式下将镜像包写入存储介质的分区,然后再次重启以加载镜像包,从而进行Recovery升级。
在其他实施方式中,所述升级引导信息可包括A/B系统升级操作。所述升级执行体执行所述A/B系统升级操作对电子设备的主系统进行更新,具体包括:若所述电子设备的存储介质分区中存储有A、B两套系统,且所述升级引导信息中包括A/B系统升级操作,在读取镜像包后,确定当前系统未被启动的存储介质分区,将所述镜像包写入当前系统未被启动的存储介质分区,并加载所述镜像包,若系统升级成功,则切换至升级成功的系统进行运行,从而进行A/B系统升级,若系统未升级成功则继续运行原系统。
进一步地,在对电子设备进行系统升级之前,还可以预先制作升级执行体和升级包。请参阅图8所示,为本申请一实施方式提供的制作升级包的流程图。
S801,将电子设备的主系统或外设固件的升级文件生成镜像包。
在一实施方式中,所述镜像包的格式与所述升级文件的格式相同。在其他实施方式中,将所述升级文件进行格式转换以生成所述镜像包,例如,格式转换为压缩。
在一实施方式中,所述镜像包的类型包括全量镜像包和差分镜像包。基于完整的所述升级文件生成的镜像包为全量镜像包。基于预设算法确定所述升级文件的当前版本与上一版本的差异文件,基于所述差异文件生成的镜像包为差分镜像包。例如,所述预设算法为字符串匹配算法或哈希算法。
S802,根据所述电子设备的硬件平台确定预设的升级框架。
在一实施方式中,所述升级框架为所述电子设备的硬件平台基于镜像包进行系统或外设固件升级的逻辑操作顺序。
S803,根据所述电子设备的存储介质确定预设的写入操作。
在一实施方式中,所述写入操作为将镜像包写入所述存储介质时所执行的操作,所述存储介质为主系统存储介质。
S804,根据所述电子设备的外设确定预设的通信协议。
在一实施方式中,所述通信协议为所述电子设备将镜像包传输至外设时所采用的物理协议。
S805,根据所述预设的升级框架、所述预设的写入操作、所述预设的通信协议及所述镜像包的类型生成所述镜像包对应的升级执行体。
在一实施方式中,若所述镜像包为全量镜像包,则对应的升级执行体为全量升级执行体,若所述镜像包为差分镜像包,则对应的升级执行体为差分升级执行体。将所述预设的升级框架、所述预设的写入操作、所述预设的通信协议、全量升级操作或差分升级操作编译为程序,以生成所述镜像包对应的升级执行体。
S806,将包头、分发信息、镜像包、升级执行体程序库及总包校验码打包形成升级包。
在一实施方式中,所述升级包包括一个或多个镜像包,所述升级执行体程序库包括一个或多个升级执行体,所述升级执行体与所述镜像包一一对应。所述包头包括所述升级包的摘要信息。所述分发信息包括如上所述的镜像包的相关信息。所述总包校验码为CRC码。
请参阅图9所示,为本申请较佳实施方式提供的电子设备的结构示意图。
所述电子设备1包括,但不仅限于,处理器10、存储器20、存储在所述存储器20中并可在所述处理器10上运行的计算机程序30。例如,所述计算机程序30为系统升级程序。所述处理器10执行所述计算机程序30时实现系统升级方法中的步骤,例如图2所示的步骤S201~S203,图5所示的S2021~S2023,图8所示的S801~S806。
示例性的,所述计算机程序30可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器10执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序30在所述电子设备1中的执行过程。
本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。
所述处理器10可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器10也可以是任何常规的处理器等,所述处理器10是所述电子设备1的控制中心,利用各种接口和线路连接整个电子设备1的各个部分。
所述存储器20可用于存储所述计算机程序30和/或模块/单元,所述处理器10通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述电子设备1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括易失性和非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他存储器件。
所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)。
本申请所述计算机可读存储介质的具体实施方式的拓展内容与上述系统升级方法各实施例基本相同,在此不做赘述。
本申请提供的系统升级方法、电子设备及存储介质通过升级包中预设的升级执行体执行系统升级,升级执行体可以自定义以适配不同硬件平台、存储介质、外设及镜像包类型,无需对电子设备本身的升级程序进行升级,有效提高了系统升级效率。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由同一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。
Claims (10)
1.一种系统升级方法,其特征在于,所述方法包括:
获取升级包,并对所述升级包进行解析,获取所述升级包中的分发信息,所述分发信息包括所述升级包中至少一镜像包的位置信息、容量信息、对应的升级执行体信息及关联设备信息;
从所述升级包获取至少一升级执行体,根据所述升级执行体信息、位置信息和容量信息从所述升级包中读取所述至少一升级执行体对应的镜像包,所述至少一升级执行体包括自定义的与电子设备适配的升级引导信息;及
运行所述至少一升级执行体,基于所述至少一升级执行体对应的镜像包和所述关联设备信息,根据所述升级引导信息对所述电子设备的系统进行升级。
2.如权利要求1所述的系统升级方法,其特征在于,所述获取升级包包括:
在对所述电子设备的系统进行升级时,基于预设的升级方式获取所述升级包,其中,所述预设的升级方式为在线升级或离线升级。
3.如权利要求1所述的系统升级方法,其特征在于,所述位置信息为偏移量信息,根据所述升级执行体信息、位置信息和容量信息从所述升级包中读取所述至少一升级执行体对应的镜像包包括:
根据所述升级执行体信息确定所述升级执行体对应的镜像包,并基于所述偏移量信息确定所述升级执行体对应的镜像包在所述升级包中的位置;
根据所述升级执行体对应的镜像包在所述升级包中的位置和所述容量信息从所述升级包中读取所述镜像包;及
对所述镜像包的文件完整性进行校验。
4.如权利要求1所述的系统升级方法,其特征在于,所述升级引导信息包括所述电子设备的硬件平台对应的升级框架,所述根据所述升级引导信息而对所述电子设备的系统进行升级包括:
基于所述升级框架以及所述关联设备信息,所述升级执行体将所述镜像包写入关联的存储介质,并加载所述镜像包对所述电子设备的主系统进行升级;或,所述升级执行体将所述镜像包传输至关联的外设,所述外设加载所述镜像包对固件进行升级。
5.如权利要求4所述的系统升级方法,其特征在于,所述升级引导信息还包括所述电子设备的存储介质对应的写入操作,所述根据所述升级引导信息而对所述电子设备的系统进行升级包括:
基于所述升级框架以及所述关联设备信息,所述升级执行体执行所述写入操作将所述镜像包写入关联的存储介质,并加载所述镜像包对所述电子设备的主系统进行升级。
6.如权利要求5所述的系统升级方法,其特征在于,所述升级引导信息还包括所述电子设备的外设对应的通信协议,所述根据所述升级引导信息而对所述电子设备的系统进行升级包括:
基于所述升级框架以及所述关联设备信息,所述升级执行体基于所述通信协议将所述镜像包传输至关联的外设,所述外设加载所述镜像包对固件进行升级。
7.如权利要求6所述的系统升级方法,其特征在于,所述升级引导信息还包括所述升级执行体的类型,所述升级执行体的类型为全量升级执行体或差分升级执行体,所述根据所述升级引导信息而对所述电子设备的系统进行升级包括:
基于所述升级框架以及所述关联设备信息,所述全量升级执行体通过对应的镜像包对所述电子设备的主系统或外设的固件进行全量升级;或所述差分升级执行体通过对应的镜像包对所述电子设备的主系统或外设的固件进行差分升级。
8.如权利要求1至7中任一项所述的系统升级方法,其特征在于,所述方法还包括:
根据所述电子设备的硬件平台确定预设的升级框架;
根据所述电子设备的存储介质确定预设的写入操作;
根据所述电子设备的外设确定预设的通信协议;及
根据所述预设的升级框架、所述预设的写入操作、所述预设的通信协议及所述镜像包的类型,生成所述镜像包对应的升级执行体。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;以及
存储器,所述存储器中存储有多个程序模块,所述多个程序模块由所述处理器加载并执行如权利要求1至8中任一项所述的系统升级方法。
10.一种计算机可读存储介质,其上存储有至少一条计算机指令,其特征在于,所述指令由处理器加载并执行如权利要求1至8中任一项所述的系统升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111397208.8A CN114090028A (zh) | 2021-11-23 | 2021-11-23 | 系统升级方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111397208.8A CN114090028A (zh) | 2021-11-23 | 2021-11-23 | 系统升级方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090028A true CN114090028A (zh) | 2022-02-25 |
Family
ID=80303597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111397208.8A Pending CN114090028A (zh) | 2021-11-23 | 2021-11-23 | 系统升级方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090028A (zh) |
-
2021
- 2021-11-23 CN CN202111397208.8A patent/CN114090028A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8719810B2 (en) | Program upgrade system and method for over the air-capable mobile terminal | |
CN109933348B (zh) | 一种电子控制单元中Bootloader的更新方法和装置 | |
US8539471B2 (en) | Updating firmware of an electronic device | |
CN106293507B (zh) | 具有外部存储器的电子设备及操作电子设备的方法 | |
CN110597542B (zh) | 软件自动ota升级方法及装置、电子设备 | |
KR101555210B1 (ko) | 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치 | |
EP3007062A1 (en) | Firmware upgrade method and apparatus, and communication device | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
KR20080008425A (ko) | 전자 장치에서의 3-단계 부팅 프로세스 | |
CN108509215B (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
KR20120109800A (ko) | Fota 기반의 데이터 갱신 방법 및 이를 지원하는 휴대 단말기 | |
CN110515671B (zh) | 初始化方法、初始化装置、终端设备及可读存储介质 | |
US20050010914A1 (en) | Method for upgrading firmware | |
CN110134423B (zh) | 固件的更新方法、装置及计算机可读存储介质 | |
CN113064610A (zh) | 一种更新bios的方法、装置及介质 | |
CN114090028A (zh) | 系统升级方法、电子设备及存储介质 | |
CN115951920A (zh) | 移动设备升级方法、装置、存储单元和移动设备 | |
CN114296764A (zh) | 系统升级方法、装置、存储介质和电子设备 | |
CN112817622A (zh) | 一种bios刷新方法、装置、电子设备和存储介质 | |
CN114237675A (zh) | 一种Android系统升级方法、装置、机顶盒及存储介质 | |
CN113703801A (zh) | 一种车载终端固件升级方法及电子装置 | |
CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
CN110134456A (zh) | 用于管理操作系统的方法、装置、设备和存储介质 | |
CN114443582B (zh) | 一种操作系统上文件系统挂载方法、装置、设备及介质 | |
CN116954674A (zh) | eMMC固件升级方法、固件升级设备和存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |