CN115827046A - 实现spl分区ota升级的方法及装置、终端设备、芯片 - Google Patents

实现spl分区ota升级的方法及装置、终端设备、芯片 Download PDF

Info

Publication number
CN115827046A
CN115827046A CN202211350379.XA CN202211350379A CN115827046A CN 115827046 A CN115827046 A CN 115827046A CN 202211350379 A CN202211350379 A CN 202211350379A CN 115827046 A CN115827046 A CN 115827046A
Authority
CN
China
Prior art keywords
partition
spl
target
slot
bak
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
Application number
CN202211350379.XA
Other languages
English (en)
Inventor
李夏河
黄志鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Ziguang Zhanrui Technology Co ltd
Original Assignee
Xiamen Ziguang Zhanrui Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Ziguang Zhanrui Technology Co ltd filed Critical Xiamen Ziguang Zhanrui Technology Co ltd
Priority to CN202211350379.XA priority Critical patent/CN115827046A/zh
Publication of CN115827046A publication Critical patent/CN115827046A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请公开一种实现SPL分区OTA升级的方法及装置、终端设备、芯片,该方法包括:通过OTA服务下载系统升级包;将所述系统升级包更新到所述设备的目标分区中,其中用户分区的目标分区为slot B或slot A,SPL分区的目标分区为SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区;在所有目标分区数据更新之后,将所述目标分区设置为激活分区;重启系统,并从所述目标分区进行加载。利用本申请方案,可以实现旧有不支持V‑AB系统的处理器芯片的OTA升级。

Description

实现SPL分区OTA升级的方法及装置、终端设备、芯片
技术领域
本申请涉及计算机技术领域,具体涉及一种实现SPL分区OTA升级的方法及装置、终端设备、芯片。
背景技术
目前,Android(安卓)系统的更新推出了新的升级方案,即V-AB(Virtual AB,虚拟AB)升级。在使用V-AB升级方案时,为了不影响用户体验,还增加了回退(Rollback)功能。AB方案是双分区双系统,每个镜像都是双份,分别对应两个分区。在V-AB方案中将A分区命名为slot A(槽A),B分区命名为slot B(槽B)。在两个slot之间螺旋式切换升级,升级时终端设备运行在一个slot上,后台对另一个空闲slot进行升级。
对于一些旧的不支持V-AB系统的处理器芯片,SPL(Second Program Loader,二级程序加载器)分区的加载方式是将SPL分为主SPL分区和SPL_BAK(备份SPL)分区,主SPL分区和SPL_BAK中的程序版本相同,只有当主SPL分区加载异常时才会从SPL_BAK分区加载。
由于ROM boot(又称ROM code)不可修改的特点,对于SPL分区,则无法实现基于V-AB技术的A/B分区的选择加载。而且,如果采用基于V-AB系统对SPL主分区进行OTA(Over-the-Air Technology,空间下载技术)升级,在升级过程中一旦出现异常中断,则很难保证SPL分区的程序版本与其他分区的程序版本一致,进而会导致设备变砖。
发明内容
本申请实施例提供一种实现SPL分区OTA升级的方法及装置、终端设备、芯片,以实现旧有不支持V-AB系统的处理器芯片的OTA升级。
为解决上述技术问题,本申请实施例提供如下技术方案:
本申请实施例提供一种基于OTA实现SPL分区升级的方法,所述方法包括:
通过OTA服务下载系统升级包;
将所述系统升级包更新到目标分区中,其中用户分区的目标分区为slot B或slotA,SPL分区的目标分区为SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区;
在所有目标分区数据更新之后,将所述目标分区设置为激活分区;
重启系统,并从所述目标分区进行加载。
可选地,所述用户分区包括boot分区、dtbo分区、system分区。
可选地,所述修改主SPL分区包括:以可恢复方式修改主SPL分区中的校验码数据。
可选地,所述方法还包括:
在SPL_BAK分区更新完成后,修改主SPL分区之前,在misc分区中设置SPL更新指示标识;
在将所述目标分区设置为激活分区之后,清除所述SPL更新指标标识。
可选地,所述方法还包括:
在从SPL_BAK分区加载时,检查misc分区中是否设置有SPL更新指示标识;
如果有,则确定更新加载失败;
如果没有,则继续执行加载过程。
可选地,所述方法还包括:在重启系统并成功进入系统后,设置所述目标分区加载成功标识,并将SPL_BAK分区更新到主SPL分区。
可选地,所述方法还包括:
在OAT升级异常终止或重启系统加载失败后,将非目标分区设置为激活分区;
恢复主SPL分区,并在misc分区中清除所述SPL更新指示标识。
本申请实施例还提供一种基于OTA实现SPL分区升级的装置,所述装置包括:
下载模块,用于通过OTA服务下载系统升级包;
更新模块,用于将所述系统升级包更新到目标分区中,其中用户分区的目标分区为slot B,SPL分区的目标分区为SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区;
设置模块,用于在所有目标分区数据更新之后,将所述目标分区设置为激活分区;
启动模块,用于重启系统,并从所述目标分区进行加载。
可选地,所述设置模块,还用于在SPL_BAK分区更新完成后,修改主SPL分区之前,在misc分区中设置SPL更新指示标识;在将所述目标分区设置为激活分区之后,清除所述SPL更新指标标识。
可选地,所述启动模块,还用于在从SPL_BAK分区加载时,检查misc分区中是否设置有SPL更新指示标识;如果有,则确定更新加载失败;如果没有,则继续执行加载过程。
可选地,所述设置模块,还用于在重启系统并成功进入系统后,设置所述目标分区加载成功标识,并将SPL_BAK分区更新到主SPL分区。
可选地,所述设置模块,还用于在OAT升级异常终止或重启系统加载失败后,将非目标分区设置为激活分区;恢复主SPL分区,并在misc分区中清除所述SPL更新指示标识。
本申请实施例还提供一种终端设备,包括前面所述的基于OTA实现SPL分区升级的装置。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时使得前面所述方法被执行。
本申请实施例还提供一种芯片,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时使得前面所述方法被执行。
本申请实施例提供的实现SPL分区OTA升级的方法及装置、终端设备、芯片,针对搭载Android V-AB系统的芯片平台,通过OTA服务下载系统升级包到设备本地;将系统升级包更新到所述设备的目标分区中,其中用户分区的目标分区为slot B,SPL分区的目标分区为SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区;在所有目标分区数据更新之后,设置slot B为激活分区。这样,在更新完成后重启系统时,ROM code可以从SPL-BAK分区加载,从而实现SPL分区的OTA升级,并保证了SPL分区版本与用户分区版本的一致性。
进一步地,在重启系统并成功进入系统后,将SPL_BAK分区更新到主SPL分区,使主SPL分区和SPL_BAK中的程序版本保持相同。
进一步地,如果OAT升级异常终止或重启系统加载失败,则通过恢复主SPL分区,可以实现SPL分区的回滚,在系统重启时,从主SPL分区加载,从而回退到升级前的系统版本,实现系统的正常启动。
附图说明
图1是本申请实施例基于OTA实现SPL分区升级的方法的一种流程图;
图2是本申请实施例基于OTA实现SPL分区升级的方法的一种具体实现流程图;
图3是本申请实施例基于OTA实现SPL分区升级的装置的一种结构示意图。
具体实施方式
为使本申请的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本申请的具体实施例做详细的说明。
ROM code是由处理器厂家固化到芯片内部ROM(Read-Only Memory,只读存储器)中的一段代码,其功能是对处理器进行初始化,并将SPL加载到片内RAM(Random AccessMemory,随机存取存储器)中;SPL的主要作用就是引导系统启动,运行SPL,识别加载bootloader(引导装载程序,也称为Bootloader)到片内RAM,最后跳转执行Bootloader。
OTA升级方式是通过移动通信的空中接口对SIM(Subscriber Identity Module,用户识别模块)卡数据及应用进行远程管理的技术。OTA升级是目前智能手机操作系统等提供的标准软件升级方式。它功能强大,可以无损失升级系统,主要通过无线网络自动下载OTA升级包、自动升级。
在V-AB系统中,将A分区命名为slot A,B分区命名为slot B。采用A/B分区结构,能够实现无缝升级。升级时终端设备运行在一个slot上(slotA/slotB),后台对另一个slot(slot B/slot A)进行升级。由于A/B分区结构可以实现一边从服务端获取OTA数据,一边直接写入待升级的slot,不需要临时存储OTA包的空间。
假设当前系统为slot A,V-AB方案中系统升级过程如下:
(1)触发升级动作后,检查用户空间是否能够满足升级需求。
如果满足,下载升级包update.zip;如果不满足,则终止升级。
(2)升级程序updata_engine对升级包update.zip进行校验。
如果校验通过,继续执行升级流程;如果校验不通过,则终止升级。
(3)升级程序updata_engine将准备升级的slot标记为unsuccessful状态。
(4)对升级镜像payload.bin进行校验。
如果校验通过,继续升级;如果校验不通过,则终止升级。
(5)升级程序对准备升级的slot进行升级,对super(超级)分区中的两个逻辑分区进行snapshot(快照)动作。
(6)升级程序对升级完成分区中的数据进行校验,校验完成后提示用户重启。
(7)重启后升级程序对super分区中的逻辑分区slot B进行merge(合并)动作。merge完成后删除delta数据,启动新的系统程序。
由于ROM boot具有不可修改的特点,使得对SPL分区加载方式无法修改,因而对于一些老款处理器芯片,SPL分区也无法适应V-AB系统,也无法实现基于V-AB系统的OTA升级方案。
为此,本发明实施例提供一种实现SPL分区OTA升级的方法及系统、终端设备、芯片,针对可以搭载V-AB系统,但SPL分区并不支持V-AB系统的系统平台,实现OTA升级。具体地,通过OTA服务下载系统升级包到设备本地,在进行系统升级包更新时,对于用户分区,将升级包更新到slot B,对于SPL分区,将升级包更新到SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区,从而在更新完成后重启系统时,由于主SPL分区已被破坏,校验无法通过,因此会从SPL_BAK分区加载,从而方便有效地实现SPL分区OTA升级。
如图1所示,本申请实施例基于OTA实现SPL分区升级的方法的一种流程图,包括以下步骤:
步骤101,通过OTA服务下载系统升级包。
步骤102,将所述系统升级包更新到所述设备的目标分区中,其中用户分区的目标分区为slot B或slot A,SPL分区的目标分区为SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区。
所述用户分区包括boot分区、dtbo(DTB Overlay,设备树块覆盖)分区、system分区等。
如果当前系统激活分区为slot A,则用户的目标分区为slot B;如果当前系统激活分区为slot B,则用户的目标分区为slot A。
对于不支持A/B分区的SPL分区,将SPL_BAK分区作为SPL分区的目标分区。将系统升级包更新到SPL_BAK分区。
为了使更新完成后系统重启时能从SPL_BAK分区加载,在本发明实施例中,通过修改主SPL分区,使系统重启时从主SPL分区加载时,校验无法通过,从而改由从SPL_BAK分区加载,实现对系统升级包的加载。
需要说明的是,为了保证在系统加载或更新失败后,能回退到主SPL,重新以旧版本程序启动,对主SPL分区的修改需要以可恢复方式修改,而且由于在SPL分区加载时,需要通过验证码进行校验,因此只需修改其验证码数据(即Magicdata数据)。比如,可以通过异或主SPL分区的Magicdata数据,这样加载过程中主SPL分区无法验证成功,ROM code会从SPL_BAK分区加载,从而达到SPL分区与用户分区版本一致的目标。
步骤103,在所有目标分区数据更新之后,将所述目标分区设置为激活分区。
可以通过修改slot_metadata数据,指引更系统重启从目标分区进行加载。具体地,通过修改目标分区的slot_metadata数据中的优先级(priority)参数,使其值高于非目标分区的slot_metadata数据中的优先级的值。
步骤104,更新完成后重启系统,并从所述目标分区进行加载。
因为在上述步骤103中已将所述目标分区设置为激活分区,因此在重启系统时,会从所述目标分区进行加载。
重启系统的过程如下:
(1)ROM code加载SPL镜像,由于主SPL分区的Magicdata数据已被破坏,因此只能加载SPL_BAK分区。
(2)SPL会根据slot_metadata数据加载U-boot(Universal Boot Loader,通用引导加载程序),根据slot_metadata数据确定当前的激活slot,即优先级高的slot,假设slotB是当前的激活分区,则会从slotB加载U-boot。
(3)SPL根据slot_metadata数据加载SML(Arm Trusted firmware,基于Arm的可信固件)、TOS(Trusty Operating System,可信操作系统)等,并跳转到U-boot继续开机流程。
(4)U-boot根据slot_metadata数据加载内核,此时会从slotB加载。由于slotB还未成功进系统,因此U-boot会将slotB的slot_metadata中的tries_remaining(允许加载的次数)值减1。
如果成功进系统,OTA服务会继续OTA过程,如果无法进系统,则重启流程,尝试下一次重启,直至上述tries_remaining的值为0时,会停止slot B启动并跳到执行回滚。
(5)成功进入系统之后,证明OTA升级的目标版本可以成功开机,此时,需要设置所述目标分区加载成功标识,具体地,OTA会修改slotB的slot_metadata中的successful_boot标识,此标识意味着OTA成功将系统软件从slot A分区切换到了slot B,同时OTA服务会将SPL_BAK分区更新到主SPL。
进一步地,为了保证SPL分区与其他用户分区同步进退,还需要在SPL_BAK分区更新完成后,修改主SPL分区之前,在misc分区中设置SPL更新指示标识,比如,设置SPL更新指示标识spl_adjust_flag为1。相应地,在将所述目标分区设置为激活分区之后,清除所述SPL更新指标标识,比如将SPL更新指示标识spl_adjust_flag清零。misc分区包含了各种以开关量形式保存的系统配置,包括CID(Carrier or Region ID,运营商或地区标识)、USB(Universal Serial Bus,通用串行总线)配置和某些硬件配置等。
相应地,在上述步骤(2)中,SPL会判断上述SPL更新指示标识spl_adjust_flag的值,如果等于1意味着新版本系统更新没有完成,此时,需要对SPL分区进行回滚;如果等于0,则依次按照上述过程执行重启系统的过程。
由于V-AB系统必须支持回滚,即当OTA升级异常终止或者失败时,可以回退到旧版本的功能,为此,本申请方案还提供了OTA升级失败时SPL分区的回滚方法。所谓回滚指的是当OTA升级异常终止或者失败时,设备可以从所述目标分区(比如slot B)回退到非目标分区(比如slot A)并正常开机。
相应地,在本申请方案另一实施例中,在OAT升级异常终止或重启系统加载失败后,将非目标分区设置为激活分区;恢复主SPL分区,并在misc分区中清除所述SPL更新指示标识。
假设将slot B回滚到slot A,则需要执行以下操作:
(1)U-boot通过修改slot_metadata数据,将slot A设置成激活分区,具体地,将slot A的slot_metadata priority值与slot B的slot_metadata priority值直接替换。
(2)U-boot通过恢复主SPL的校验码,保证主SPL可以被正常加载,同时需要将所述SPL更新指示标识spl_adjust_flag清零,保证重启过程正常加载。
(3)系统重启。
下面结合图2进一步详细说明本申请基于OTA实现SPL分区升级的方法的详细过程。
参照图2,是本申请实施例基于OTA实现SPL分区升级的方法的一种具体实现流程图,该实施例假设当前系统运行在slot A分区,目标分区是slotB。图2分别示出了系统升级包加载、系统重启、以及OTA升级异常终止或者系统重启失败后回滚过程。其中:
升级包加载过程如下:
S1:该过程是OTA服务下载并更新镜像数据到设备分区的过程。
S1.1:OTA服务从服务器下载升级包。
S1.2:在执行完上述步骤S1.1之后,OTA服务开始对升级包解包并更新到设备分区,其中用户分区(包含boot、dtbo、system等)将被写到目标分区slot B中。
S1.3:区别于用户分区,SPL分区将被更新到SPL_BAK分区。
S1.4:为了保证SPL分区与其他用户分区同步进退,需要在misc分区中新增spl_adjust_flag,在执行步骤S1.5即破坏主SPL分区之前将其设置成1。
S1.5:新版本的SPL被更新到SPL_BAK分区后,因此需要将主SPL分区进行破坏,才能保证更新完成后重启过程中ROM code从SPL_BAK分区加载,以此达到SPL分区与用户分区版本一致的目标。
其中,破坏主SPL分区方法可以是异或主SPL分区的Magicdata数据,这样加载过程主SPL分区无法验证成功,ROM code会从SPL_BAK分区加载。
S1.6:在上述OTA服务完成所有分区数据更新之后,会修改slot_metadata数据,指引后续系统重启时从slot B进行加载。具体实现方法是通过修改slot B分区的slot_metadata中的priority值,使其高于slot A分区的slot_metadata priority值。
S1.7:在上述OTA服务完成slot_metadata数据更新之后,将上述步骤S1.4中设置的spl_adjust_flag清零。
上述OTA服务完成镜像更新及slot_metadata修改之后,执行重启系统的过程,即进入S2所示的流程。
系统重启过程如下:
S2:重启从slot B分区进行加载,其实现办法是通过修改slot B的slot_metadata中priority,使其高于slot A的slot_metadata priority值。
S2.1:ROM code加载SPL镜像,由于主SPL分区已被破坏,因此只能加载SPL_BAK分区。
S2.2:SPL会根据slot_metadata加载U-boot,slot B分区是当前的激活分区,因此U-boot会从slot B分区加载。
S2.3:SPL会判断spl_adjust_flag值,如果spl_adjust_flag=1,则意味着需要对SPL分区进行回滚直接跳到S3.2对SPL进行回滚。
S2.4:SPL根据slot_metadata加载SML、TOS等分区,并跳转到U-boot继续执行开机系统重启流程。
S2.5:U-boot根据slot_metadata加载内核,此时会从slot B分区加载。由于slotB分区还未成功进入系统,因此U-boot会将slot B分区的slot_metadata中的tries_remaining值减1。
S2.6:tries_remaining等于零时会停止slot B分区启动并跳到S3执行回滚。
S2.7:如果成功进入系统,OTA服务会继续OTA过程;如果无法进入系统,则跳到S2重启流程,尝试下一次重启。
S2.8:成功进入系统之后,说明OTA升级的目标版本可以成功开机,OTA服务修改slot B的slot_metadata中的successful_boot标识,此标识意味着OTA服务成功将系统软件从slot A分区切换到slot B分区,同时OTA服务会将SPL_BAK分区更新到主SPL分区。
OTA失败时SPL分区的回滚过程如下:
S3:当OTA异常终止或者失败时,从目标分区即slot B分区回退到非目标分区,即slot A分区,并正常开机。
S3.1:U-boot通过修改slot_metadata,将slot A分区设置为激活slot,具体实现方式是将slot A分区的slot_metadata priority值与slot B分区的相应值直接替换。
S3.2:U-boot通过取消主SPL分区的Magicdata的异或,即恢复主SPL分区的Magicdata,保证主SPL分区可以被正常加载,同时需要将spl_adjust_flag清零,保证重启过程正常加载。
上述过程完成后,重新执行S2的重启流程。
本申请实施例提供的实现SPL分区OTA升级的方法,针对搭载Android V-AB系统的芯片平台,通过OTA服务下载系统升级包到设备本地;将系统升级包更新到所述设备的目标分区中,其中用户分区的目标分区为slot B,SPL分区的目标分区为SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区;在所有目标分区数据更新之后,设置slot B为激活分区。这样,在更新完成后重启系统时,SPL可以从SPL-BAK分区加载,从而实现SPL分区的OTA升级,并保证了SPL分区版本与用户分区版本的一致性。
进一步地,在重启系统并成功进入系统后,将SPL_BAK分区更新到主SPL分区,使主SPL分区和SPL_BAK中的程序版本保持相同。
进一步地,如果OAT升级异常终止或重启系统加载失败,则通过恢复主SPL分区,可以实现SPL分区的回滚,在系统重启时,从主SPL分区加载,从而回退到升级前的系统版本,实现系统的正常启动。
相应地,本申请还提供一种基于OTA实现SPL分区升级的装置,如图3所示,是该装置的一种结构示意图。
该基于OTA实现SPL分区升级的装置300包括以下各模块:
下载模块301,用于通过OTA服务下载系统升级包;
更新模块302,用于将所述系统升级包更新到所述设备的目标分区中,其中用户分区的目标分区为slot B,SPL分区的目标分区为SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区;
设置模块303,用于在所有目标分区数据更新之后,将所述目标分区设置为激活分区;
启动模块304,用于重启系统,并从所述目标分区进行加载。
进一步地,所述设置模块303还用于在重启系统并成功进入系统后,设置目标分区加载成功标识,并将SPL_BAK分区更新到主SPL分区。
进一步地,为了保证在OAT升级异常终止或重启系统加载失败后,能够回退到升级前的原有程序,实现系统的正常启动。在本申请装置另一实施例中,所述设置模块303还用于在SPL_BAK分区更新完成后,修改主SPL分区之前,在misc分区中设置SPL更新指示标识;在将所述目标分区设置为激活分区之后,清除所述SPL更新指标标识。另外,所述设置模块303还用于在OAT升级异常终止或重启系统加载失败后,将非目标分区设置为激活分区;恢复主SPL分区,并在misc分区中清除所述SPL更新指示标识。
相应地,所述启动模块304还用于在从SPL_BAK分区加载时,检查misc分区中是否设置有SPL更新指示标识;如果有,则确定更新加载失败;如果没有,则继续执行加载过程。
利用本申请实施例提供的实现SPL分区OTA升级的装置,可以实现SPL分区的OTA升级,并保证了SPL分区版本与用户分区版本的一致性。而且,在OAT升级异常终止或重启系统加载失败后,通过恢复主SPL分区可以回退到升级前的系统版本,实现系统的正常启动。
相应地,本申请实施例还提供一种终端设备,包括上述基于OTA实现SPL分区升级的装置。
相应地,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时使得图1或图2所述方法被执行。
相应地,本申请实施例还提供一种芯片,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时使得图1或图2所述方法被执行。
在具体实施中,上述实现SPL分区OTA升级的装置可以对应于网络设备和/或终端设备中相应功能的芯片,例如SOC(System-On-a-Chip,片上系统)、基带芯片、芯片模组等。
在具体实施中,关于上述实施例中描述的各个装置、产品包含的各个模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。
例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/“,表示前后关联对象是一种“或”的关系。
本申请实施例中出现的“多个”是指两个或两个以上。
本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
本申请所提供的各实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理布置,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
虽然本申请披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。

Claims (15)

1.一种基于OTA实现SPL分区升级的方法,其特征在于,所述方法包括:
通过OTA服务下载系统升级包;
将所述系统升级包更新到目标分区中,其中用户分区的目标分区为slot B或slot A,SPL分区的目标分区为SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区;
在所有目标分区数据更新之后,将所述目标分区设置为激活分区;
重启系统,并从所述目标分区进行加载。
2.根据权利要求1所述的方法,其特征在于,所述用户分区包括boot分区、dtbo分区、system分区。
3.根据权利要求1所述的方法,其特征在于,所述修改主SPL分区包括:
以可恢复方式修改主SPL分区中的校验码数据。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
在SPL_BAK分区更新完成后,修改主SPL分区之前,在misc分区中设置SPL更新指示标识;
在将所述目标分区设置为激活分区之后,清除所述SPL更新指标标识。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在从SPL_BAK分区加载时,检查misc分区中是否设置有SPL更新指示标识;
如果有,则确定更新加载失败;
如果没有,则继续执行加载过程。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在重启系统并成功进入系统后,设置所述目标分区加载成功标识,并将SPL_BAK分区更新到主SPL分区。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在OAT升级异常终止或重启系统加载失败后,将非目标分区设置为激活分区;
恢复主SPL分区,并在misc分区中清除所述SPL更新指示标识。
8.一种基于OTA实现SPL分区升级的装置,其特征在于,所述装置包括:
下载模块,用于通过OTA服务下载系统升级包;
更新模块,用于将所述系统升级包更新到目标分区中,其中用户分区的目标分区为slot B,SPL分区的目标分区为SPL_BAK分区,并在SPL_BAK分区更新完成后,修改主SPL分区;
设置模块,用于在所有目标分区数据更新之后,将所述目标分区设置为激活分区;
启动模块,用于重启系统,并从所述目标分区进行加载。
9.根据权利要求8所述的装置,其特征在于,
所述设置模块,还用于在SPL_BAK分区更新完成后,修改主SPL分区之前,在misc分区中设置SPL更新指示标识;在将所述目标分区设置为激活分区之后,清除所述SPL更新指标标识。
10.根据权利要求9所述的装置,其特征在于,
所述启动模块,还用于在从SPL_BAK分区加载时,检查misc分区中是否设置有SPL更新指示标识;如果有,则确定更新加载失败;如果没有,则继续执行加载过程。
11.根据权利要求10所述的装置,其特征在于,
所述设置模块,还用于在重启系统并成功进入系统后,设置所述目标分区加载成功标识,并将SPL_BAK分区更新到主SPL分区。
12.根据权利要求10所述的装置,其特征在于,
所述设置模块,还用于在OAT升级异常终止或重启系统加载失败后,将非目标分区设置为激活分区;恢复主SPL分区,并在misc分区中清除所述SPL更新指示标识。
13.一种终端设备,其特征在于,包括如权利要求8至12任一项所述的基于OTA实现SPL分区升级的装置。
14.一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时使得权利要求1至7中任一项所述方法被执行。
15.一种芯片,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时使得权利要求1至7中任一项所述方法被执行。
CN202211350379.XA 2022-10-31 2022-10-31 实现spl分区ota升级的方法及装置、终端设备、芯片 Pending CN115827046A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211350379.XA CN115827046A (zh) 2022-10-31 2022-10-31 实现spl分区ota升级的方法及装置、终端设备、芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211350379.XA CN115827046A (zh) 2022-10-31 2022-10-31 实现spl分区ota升级的方法及装置、终端设备、芯片

Publications (1)

Publication Number Publication Date
CN115827046A true CN115827046A (zh) 2023-03-21

Family

ID=85525922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211350379.XA Pending CN115827046A (zh) 2022-10-31 2022-10-31 实现spl分区ota升级的方法及装置、终端设备、芯片

Country Status (1)

Country Link
CN (1) CN115827046A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687663A (zh) * 2024-02-04 2024-03-12 湖北芯擎科技有限公司 基于ota的分区动态调整方法、装置、设备及存储介质
CN118227383A (zh) * 2024-05-22 2024-06-21 湖北芯擎科技有限公司 槽位一致性控制方法、装置、设备及可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687663A (zh) * 2024-02-04 2024-03-12 湖北芯擎科技有限公司 基于ota的分区动态调整方法、装置、设备及存储介质
CN117687663B (zh) * 2024-02-04 2024-04-16 湖北芯擎科技有限公司 基于ota的分区动态调整方法、装置、设备及存储介质
CN118227383A (zh) * 2024-05-22 2024-06-21 湖北芯擎科技有限公司 槽位一致性控制方法、装置、设备及可读存储介质
CN118227383B (zh) * 2024-05-22 2024-07-30 湖北芯擎科技有限公司 槽位一致性控制方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN115827046A (zh) 实现spl分区ota升级的方法及装置、终端设备、芯片
CN106610840A (zh) 一种无线固件升级方法及系统
CN106775610B (zh) 一种电子设备启动方法及一种电子设备
WO2009046284A1 (en) Firmware image update and management
CN110543321A (zh) Ota升级方法、装置、终端以及计算机可读存储介质
CN104915226A (zh) 一种网络设备软件启动方法、装置及网络设备
WO2018024198A1 (zh) 机顶盒的应用程序升级方法、系统及机顶盒
CN112860291B (zh) 固件升级方法及装置
CN113626059B (zh) 系统升级方法、摄像机及计算机可读存储介质
CN114153484A (zh) 更新程序的运行方法、装置、电子装置和存储介质
CN112860297A (zh) 基于汽车双目相机的存储系统和系统更新方法
CN110908722B (zh) 应用于操作系统启动的方法、装置、电子设备及存储介质
WO2021012170A1 (zh) 固件启动方法、设备及计算机可读存储介质
CN110069272A (zh) 逻辑文件升级的方法和电子设备
CN115658152A (zh) 固件升级方法、固件、电子设备和计算机可读存储介质
CN114995852A (zh) 一种设备升级方法、设备及计算机可读存储介质
CN110309018B (zh) 充电设备系统切换方法、充电设备及可读存储介质
CN113190244A (zh) 无线模组升级的方法、装置、计算机设备和存储介质
CN112527342A (zh) 一种在应用可编程iap固件升级方法、装置和设备
WO2017097180A1 (zh) 一种快速启动基站的方法及装置
CN113791810B (zh) 基于zynq平台的远程升级方法、装置及系统
CN104375863A (zh) 嵌入式系统中一种在线升级程序的方法
CN114064097B (zh) 软件升级方法、终端设备及存储介质
CN109976940A (zh) 一种软启动网络设备
CN114546456B (zh) 一种升级方法、装置及电子设备

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