本申请提供了一种冷补丁的升级方法、设备、存储介质及计算机程序产品,该方法应用于数据存储结构为虚拟AB模式的电子设备,电子设备以虚拟AB模式的启动方式进行冷补丁升级时,在将启动顺序从由第一静态分区启动变更为从升级后的第二静态分区启动前,通过判断第二静态分区是否可用,在第二静态分区不可用时,设置电子设备以Recovery模式启动,将第二静态分区作为备份分区,触发第一静态分区从第二静态分区复制补丁文件,在完成补丁文件的复制后,再采用虚拟AB的启动方式以第一静态分区为启动入口重启电子设备,从而不论第二静态分区是否可用,都能够实现冷补丁升级,进而提高了冷补丁的升级成功率,并提高产品的可靠性。并提高产品的可靠性。并提高产品的可靠性。
【技术实现步骤摘要】
冷补丁的升级方法、设备、存储介质及计算机程序产品
[0001]本申请涉及计算机
,尤其涉及一种冷补丁的升级方法、设备、存储介质及计算机程序产品。
技术介绍
[0002]目前,对电子设备,例如手机进行软件升级的方法中,有热补丁升级和冷补丁升级两种方式。热补丁升级是对代码段的替换,因此能够在不中断业务运行的情况下实现对软件的局部修改,即热补丁不需要重启;而冷补丁是对执行体(具体为进程)本身替换,而进程的修复需要对一些底层资源进行重新分配,因此冷补丁升级需要重启。而对于冷补丁升级方式,在现有技术的应用场景中,启动电子设备的方式又可以分为恢复(Recovery)模式(也可以称为非AB模式)、AB(FULL
‑
AB)模式和虚拟AB模式。
[0003]以启动方式为虚拟AB模式(也可以理解为数据存储结构为虚拟AB模式)的电子设备为例,在进行冷补丁升级时,如果手机当前运行在第一静态分区,由于第一静态分区正在使用,因此不能对第一静态分区进行冷补丁升级操作,此时需要对第二静态分区进行冷补丁升级操作,即将补丁文件写入到第二静态分区中与补丁文件对应的子分区,并且完成将补丁文件写入到第二静态分区中与补丁文件对应的子分区后,直接将启动顺序变更为从第二静态分区启动,然后按照变更后的启动顺序重启电子设备。但是,在实际的应用场景中,第二静态分区可能会因为镜像有物理损坏、字节(bit)跳变等原因导致不可用,因此上述冷补丁升级方式可能根本无法启动第二静态分区,这就会导致冷补丁升级失败,对于这种情况手机可能会回滚到第一静态分区,即恢复到冷补丁升级前的版本,更严重的可能会导致手机无法开机。
技术实现思路
[0004]为了解决上述技术问题,本申请提供一种冷补丁的升级方法、设备、存储介质及计算机程序产品,旨在解决上述技术问题,以使电子设备能够在第二静态分区不可用时,借助第一静态分区完成冷补丁升级,从而提高冷补丁的升级成功率,并提高产品的可靠性。
[0005]第一方面,本申请提供一种冷补丁的升级方法,应用于电子设备,电子设备包括处理器以及存储器,存储器包括基础分区、第一静态分区、第二静态分区、动态分区以及用户数据分区,第一静态分区包括多个子分区,第二静态分区包括多个子分区,且第一静态分区的多个子分区分别与第二静态分区的多个子分区一一对应,方法包括:在启动时加载基础分区,并获取基础分区中记录的启动顺序;在启动顺序为从第一静态分区启动时,加载第一静态分区和动态分区的数据以运行操作系统;在启动后,获取第一冷补丁包,第一冷补丁包包括第一补丁文件,第一补丁文件对应于第一子分区和第二子分区,第一子分区为第二静态分区的一个子分区,第二子分区为第一静态分区中与第一子分区对应的子分区;根据第一补丁文件对第一子分区进行数据写入操作;确定第二静态分区是否可以启动;在确定第二静态分区不可以启动时,将电子设备以Recovery模式启动;在电子设备进入Recovery模
式后,将第一子分区中的文件复制到第二子分区;根据启动顺序重启电子设备,使电子设备依次加载基础分区、第一静态分区和动态分区的数据以运行操作系统。
[0006]由此,本申请实施例提供的方法,在对第二静态分区中的需要升级的第一子分区升级完后,即完成第一补丁文件到第一子分区的写入操作后,通过根据第二静态分区对应的启动标识确定第二静态分区是否可用,即是否能够以第二静态分区为启动入口重启电子设备,在启动标识为不可用时,借助当前运行的第一静态分区完成冷补丁升级,从而提高冷补丁的升级成功率,并提高产品的可靠性。
[0007]根据第一方面,根据第一补丁文件针对第一子分区进行数据写入操作,包括:根据启动顺序,将当前未启动的第二静态分区确定为本次冷补丁升级要操作的静态分区;根据第一补丁文件,将第二静态分区中的第一子分区确定为本次冷补丁升级要操作的子分区;获取第一子分区的路径地址;根据路径地址,将第一补丁文件写入第一子分区。这样就可以精准的确定本次冷补丁升级操作是对哪一静态分区的子分区进行写入处理,从而保证本次获取到的冷补丁包中的补丁文件能够准确的写入到正确的子分区。
[0008]根据第一方面,或者以上第一方面的任意一种实现方式,确定第二静态分区是否可以启动,包括:从基础分区中获取第二静态分区对应的启动标识;根据启动标识,确定第二静态分区是否可以启动。由于冷补丁升级过程中,基础分区通常是不会进行升级的,因而用来记录第一静态分区和第二静态分区是否可用的启动标识是记录在基础分区中的,从而标识第一静态分区和第二静态分区的启动标识不会因为冷补丁升级丢失。
[0009]根据第一方面,或者以上第一方面的任意一种实现方式,根据启动标识,确定第二静态分区是否可以启动,包括:在启动标识为unBootable时,确定第二静态分区不可以启动;在启动标识为Bootable时,确定第二静态分区可以启动。由于虚拟AB模式下,以双分区形式存在的第一静态分区和第二静态分区存在一个能够标识分区能否启动的标识,具体为用Bootable标识该静态分区包含了一个完整的可以启动的系统,用unBootable标识该静态分区对应的启动系统不完整,如某个或某几个子分区存在镜像物理损坏或bit跳变,因此通过识别基础分区中记录的启动标识具体是unBootable还是Bootable,便可以确定该静态分区是否可以启动。
[0010]根据第一方面,或者以上第一方面的任意一种实现方式,在从基础分区中获取第二静态分区对应的启动标识之前,方法还包括:获取第二静态分区中X
‑
loader子分区中记录的第二静态分区对应的启动标识;将第二静态分区对应的启动标识记录到基础分区中。每一静态分区的启动标识是在静态分区中X
‑
loader子分区中记录的,而基础分区能够访问每一静态分区的X
‑
loader小分区,因此在进行冷补丁升级之前,基础分区便可以确定每一个静态分区对应的启动标识。
[0011]根据第一专利技术,或者以上第一方面的任意一种实现方式,将电子设备以Recovery模式启动,包括:在基础分区中misc子分区中写入启动Recovery模式的第一启动指令;响应于第一启动指令,使电子设备以Recovery模式启动。
[0012]根据第一专利技术,或者以上第一方面的任意一种实现方式,在将第一子分区中的文件复制到第二子分区之后,方法还包括:擦除misc子分区中写入的第一启动指令,以使电子设备按照虚拟AB模式重启。这样,在完成补丁文件的复制后,通过将控制电子设备以Recovery模式启动的启动指令从misc子分区中擦除,从而使得电子设备重启后能够继续按
照虚拟AB模式的启动顺序,依次加载存储器中各个分区的数据以运行操作系统。
[0013]根据第一方面,或者以上第一方面的任意一种实现方式,将第一子分区中的文件复制到第二子分区,包括:在基础分区中cache子分区的comand文件中写入第一补丁文件要升级的子分区的第一升级指令;响应于第一升级指令,将第一子分区中的文件复制到第二子分本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种冷补丁的升级方法,其特征在于,应用于数据存储结构为虚拟AB模式的电子设备,所述电子设备包括处理器以及存储器,所述存储器包括基础分区、第一静态分区、第二静态分区、动态分区以及用户数据分区,所述第一静态分区包括多个子分区,所述第二静态分区包括多个子分区,且所述第一静态分区的多个子分区分别与所述第二静态分区的多个子分区一一对应,所述方法包括:在启动时加载所述基础分区,并获取所述基础分区中记录的启动顺序;在所述启动顺序为从所述第一静态分区启动时,加载所述第一静态分区和所述动态分区的数据以运行操作系统;在启动后,获取第一冷补丁包,所述第一冷补丁包包括第一补丁文件,所述第一补丁文件对应于第一子分区和第二子分区,所述第一子分区为所述第二静态分区的一个子分区,所述第二子分区为所述第一静态分区中与所述第一子分区对应的子分区;根据所述第一补丁文件对所述第一子分区进行数据写入操作;确定所述第二静态分区是否可以启动;在确定所述第二静态分区不可以启动时,将所述电子设备以Recovery模式启动;在所述电子设备进入Recovery模式后,将所述第一子分区中的文件复制到所述第二子分区;根据所述启动顺序重启所述电子设备,使所述电子设备依次加载所述基础分区、所述第一静态分区和所述动态分区的数据以运行所述操作系统。2.根据权利要求1所述的方法,其特征在于,所述根据所述第一补丁文件针对所述第一子分区进行数据写入操作,包括:根据所述启动顺序,将当前未启动的所述第二静态分区确定为本次冷补丁升级要操作的静态分区;根据所述第一补丁文件,将所述第二静态分区中的所述第一子分区确定为本次冷补丁升级要操作的子分区;获取所述第一子分区的路径地址;根据所述路径地址,将所述第一补丁文件写入所述第一子分区。3.根据权利要求1所述的方法,其特征在于,所述确定所述第二静态分区是否可以启动,包括:从所述基础分区中获取所述第二静态分区对应的启动标识;根据所述启动标识,确定所述第二静态分区是否可以启动。4.根据权利要求3所述的方法,其特征在于,所述根据所述启动标识,确定所述第二静态分区是否可以启动,包括:在所述启动标识为unBootable时,确定所述第二静态分区不可以启动;在所述启动标识为Bootable时,确定所述第二静态分区可以启动。5.根据权利要求3所述的方法,其特征在于,在所述从所述基础分区中获取所述第二静态分区对应的启动标识之前,所述方法还包括:获取所述第二静态分区中X
‑
loader子分区中记录的所述第二静态分区对应的启动标识;将所述第二静态分区对应的启动标识记录到所述基础分区中。
6.根据权利要求1所述的方法,其特征在于,所述将所述电子设备以Recovery模式启动,包括:在所述基础分区中misc子分区中写入启动Recovery模式的第一启动指令;响应于所述第一启动指令,使所述电子设备以Reco...
【专利技术属性】
技术研发人员:陈超,王艳召,张赠辉,
申请(专利权)人:荣耀终端有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。