CN116149691A - 一种批量升级方法、装置和存储介质 - Google Patents
一种批量升级方法、装置和存储介质 Download PDFInfo
- Publication number
- CN116149691A CN116149691A CN202111375199.2A CN202111375199A CN116149691A CN 116149691 A CN116149691 A CN 116149691A CN 202111375199 A CN202111375199 A CN 202111375199A CN 116149691 A CN116149691 A CN 116149691A
- Authority
- CN
- China
- Prior art keywords
- system application
- upgrade package
- batch
- path
- batch system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000009434 installation Methods 0.000 claims description 106
- 238000012795 verification Methods 0.000 claims description 52
- 238000005192 partition Methods 0.000 claims description 25
- 238000011084 recovery Methods 0.000 claims description 13
- 230000006855 networking Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000010408 sweeping Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000002000 scavenging effect Effects 0.000 description 1
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/65—Updates
-
- 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
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
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种批量升级方法、装置和存储介质。
背景技术
随着市场竞争日益激烈,系统迭代加快,尤其对系统应用升级迭代提出了更高要求。安卓Android原生系统只支持通过空中下载技术(OTA,Over-the-Air Technology)刷镜像文件(image)进行固件升级以实现批量升级系统应用和单个应用升级。由于固件升级包的大小为几个吉字节(BG,GigaByte),不能进行频繁固件升级,导致无法满足系统应用快速迭代的需求。
发明内容
为解决上述技术问题,本申请实施例提供一种批量升级方法、装置和存储介质,能够与固件升级解耦以实现系统应用的快速迭代。
本申请的技术方案是这样实现的:
本申请实施例提供一种批量升级方法,包括:
确定第一路径,所述第一路径下包括有批量系统应用升级包;
在所述第一路径下获取所述批量系统应用升级包;所述批量系统应用升级包包含至少一个系统应用;
对所述批量系统应用升级包进行安装,以安装所述至少一个系统应用。
在上述方案中,所述对所述批量系统应用升级包进行安装,以安装所述至少一个系统应用之前,所述方法还包括:
判断第一属性标识的值是否等于第一预设值,所述第一属性标识用于表征初始批量系统应用升级包安装前校验成功;其中,所述初始批量系统应用升级包基于云端配置设备下载得到;
若所述第一属性标识等于第一预设值,则确定对所述批量系统应用升级包进行安装;其中,所述批量系统应用升级包基于所述初始批量系统应用升级包安装前校验得。
在上述方案中,所述判断第一属性标识的值是否等于第一预设值之前,所述方法还包括:
接收到关机事件或重启事件,且接收到不立即升级指示,拦截所述关机事件或重启事件,并判断第二属性标识是否为第二预设值,所述第二属性标识用于表征所述初始批量系统应用升级包已成功从所述云端配置设备下载;
若第二属性标识等于第二预设值,则对所述初始批量系统应用升级包进行安装前校验;
若所述初始批量系统应用升级包安装前校验成功,则设置所述第一属性标识为第一预设值,并执行关机或者重启。
在上述方案中,所述若第二属性标识等于第二预设值,则对所述批量系统应用升级包进行安装前校验,至少包括:
若第二属性标识等于第二预设值,创建备份路径,并将安装所述批量系统应用升级包之前的第一路径下的已有的当前批量系统应用升级包拷贝至所述备份路径下;
将所述已有的当前批量系统应用升级包对应的第一路径修改为临时路径;
将第二路径下的初始批量系统应用升级包与所述临时路径下的已有的当前批量系统应用升级包进行合并得到所述批量系统应用升级包,并将所述临时路径下的已有的当前批量系统应用升级包替换为所述批量系统应用升级包。
在上述方案中,所述方法还包括:
若所述初始批量系统应用升级包安装前校验成功,则将存放所述批量系统应用升级包的临时路径修改为所述第一路径;所述批量系统应用升级包基于所述初始批量系统应用升级包和所述已有的当前批量系统应用升级包合并得到;
若所述初始批量系统应用升级包安装前校验失败,则删除所述临时路径及所述临时路下的文件,并将所述备份路径修改为第一路径;
将所述第一路径设置为安装优先级最高的路径。
在上述方案中,所述方法还包括:
在开机联网后下载所述云端配置设备配置的初始批量系统应用升级包至所述第二路径下;
若成功下载所述初始批量系统应用升级包,则对所述初始批量系统应用升级包进行完整性校验;
若完整性校验成功,则将所述第二属性标识设置为第二预设值,并显示升级提示弹窗;所述升级提示弹窗用于接收是否立即升级指示。
在上述方案中,所述确定第一路径之前,所述方法还包括:
解析所述批量系统应用升级包中的第一指定文件得到第一系统版本标识;所述第一系统版本标识用于表征所述批量系统应用升级包对应的系统版本编号;所述第一指定文件用于记录所述批量系统应用升级包中的更新部分的文本信息和所述批量系统应用升级包的应用程序包的信息;
对比所述第一系统版本标识和第二系统版本标识,若所述第二系统版本标识小于所述第一系统版本标识,则确定对所述第一路径下的批量系统应用升级包进行安装;所述第二系统版本标识用于表征电子设备记录的系统版本编号。
在上述方案中,所述方法还包括:
若所述第二系统版本标识大于所述第一系统版本标识,则删除所述第一路径和备份路径下的文件,并清除第一属性标识和第二属性标识,并对系统分区下的系统应用进行安装。
在上述方案中,所述对批量系统应用升级包进行安装之后,所述方法还包括:
检测到存在崩溃的系统应用,判断所述崩溃的系统应用是否为关键系统应用;
若所述崩溃的系统应用为所述关键系统应用,则从备份路径中获取备份批量系统应用升级包;
安装所述备份批量系统应用升级包,以进行系统版本回退。
在上述方案中,所述解析所述批量系统应用升级包中的第一指定文件得到第一系统版本标识之前,所述方法还包括:
若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识小于或等于所述第二系统版本标识,则先进入恢复(recovery)模式以修改系统分区,更新所述第一固件版本标识;所述第二固件版本标识用于表征OTA升级包中的固件版本对应的版本编号;所述第三系统版本标识用于表征OTA升级包中的系统版本对应的版本编号;
若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识大于所述第二系统版本标识,则先进入recovery模式以修改系统分区,更新所述第一固件版本标识和所述第二系统版本标识。
本申请实施例提供了一种批量升级装置,所述批量升级装置包括:确定单元、获取单元和安装单元;其中,
所述确定单元,用于确定第一路径,所述第一路径下包括有批量系统应用升级包;
所述获取单元,用于在所述第一路径下获取所述批量系统应用升级包;所述批量系统应用升级包包含至少一个系统应用;
所述安装单元,用于对所述批量系统应用升级包进行安装,以安装所述至少一个系统应用。
本申请实施例提供了一种批量升级装置,所述批量升级装置包括:
存储器,用于存储可执行数据指令;
处理器,用于执行所述存储器中存储的可执行指令,当所述可执行指令被执行时,所述处理器执行所述的批量升级方法。
本申请实施例提供了一种可读存储介质,存储有可执行指令,当所述可执行指令被一个或多个处理器执行的时候,所述处理器执行所述的批量升级方法。
本申请实施例提供了一种批量升级方法及装置、可读存储介质,确定第一路径,第一路径下包括有批量系统应用升级包;在第一路径下获取批量系统应用升级包;批量系统应用升级包包含至少一个系统应用;对批量系统应用升级包进行安装,以安装至少一个系统应用。采用上述方法实现方案,只需要对第一路径下的批量系统应用升级包进行安装,在此过程中,不需要依赖固件升级。因此,当仅需要对系统应用进行更新时,只需对第一路径下的批量系统应用升级包进行安装,从而能够与固件升级解耦,实现了系统应用的快速迭代。
附图说明
图1为本申请实施例提供的批量升级方法的一个可选的流程示意图一;
图2为本申请实施例提供的批量升级方法的一个可选的流程示意图二;
图3为本申请实施例提供的批量升级方法的一个可选的流程示意图三;
图4为本申请实施例提供的批量升级方法的一个可选的流程示意图四;
图5为本申请实施例提供的批量升级方法的一个可选的流程示意图五;
图6为本申请实施例提供的批量升级方法的一个可选的流程示意图六;
图7为本申请实施例提供示例性的一种批量升级方法的流程示意图一;
图8为本申请实施例提供示例性的一种批量升级方法的流程示意图二;
图9为本申请实施例提供示例性的一种批量升级方法的流程示意图三;
图10为本申请实施例提供示例性的一种批量升级方法的流程示意图四;
图11为本申请实施例提供示例性的一种批量升级方法的流程示意图五;
图12为本申请实施例提供的一种批量升级装置的结构示意图一;
图13为本申请实施例提供的一种批量升级装置的结构示意图二。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请实施例提供一种批量升级方法,图1是本申请实施例提供的批量升级方法的一个可选的流程示意图一,如图1所示,该方法包括:
S101、确定第一路径,第一路径下包括有批量系统应用升级包。
在本申请实施例提供的批量升级方法中电子设备安装应用程序包有先后顺序,第一个进行安装的路径具有最高优先级。电子设备预先设定第一路径为安装优先级最高的路径。
在本申请实施例中,电子设备确定第一路径,第一路径下包括有批量系统应用升级包。
需要说明的是,优先级最高的第一路径可以是/data/inui-app,本申请实施例不作限制。电子设备可以是主机端模块,本申请实施例对此不作具体限制。
示例性的,电子设备确定第一路径/data/inui-app。
需要说明的是,电子设备可预先设定第一路径为安装优先级最高的路径,从而保证电子设备在系统开机时最先安装的一批系统应用,所有系统应用都能都安装成功;后续其他路径下的应用程序包安装如果存在重复的系统应用,不论是什么版本,则会安装失败。本申请实施例中的应用程序包可以是安卓应用程序包(APK,Android applicationpackage),本申请实施例对此不作具体限制。
S102、在第一路径下获取批量系统应用升级包;批量系统应用升级包包含至少一个系统应用。
在本申请实施例提供的批量升级方法中的第一路径为存储有待安装批量系统应用升级包的路径。
在本申请实施例中,电子设备在第一路径下获取批量系统应用升级包;批量系统应用升级包包含至少一个系统应用。
需要说明的是,本申请实施例中系统应用可以是桌面应用、短信应用,相机应用、电话应用,也可以是其他的系统应用,本申请实施例不作限制。
S103、对批量系统应用升级包进行安装,以安装至少一个系统应用。
本申请实施例中,适用于电子设备对第一路径下的批量系统应用升级包进行安装的场景。
在本申请实施例中,电子设备对第一路径下的批量系统应用升级包进行安装;其中,批量系统应用升级包为电子设备下载云端配置设备配置的批量系统应用升级包后,对下载的批量系统应用升级包进行安装前校验所得到的升级包。
示例性的,电子设备对安装优先级最高的/data/inui-app下的批量系统应用升级包进行升级安装。
需要说明的是,本申请实施例中云端配置设备用于对电子设备的版本编号进行配置,示例性的,可以将所有版本编号为A的电子设备配置升级为版本编号B。另外,基于批量系统应用升级包里的部分系统应用由于之间互相依赖,需要同时升级成功,或者同时失败的情况下,本申请实施例中批量系统应用升级包里的系统应用同时升级成功,或者同时失败。
可以理解的是,本申请实施例中,电子设备直接对优先级最高的第一路径下的系统应用对应的批量系统应用升级包进行升级安装,无需通过OTA固件升级以实现批量升级系统应用,从而能够与固件升级解耦以实现系统应用的快速迭代。
在本申请的一些实施例中,图2是本申请实施例提供的批量升级方法的一个可选的流程示意图二,如图2所示,在步骤S103之前还包括S104和S105。如下:
S104、判断第一属性标识的值是否等于第一预设值,第一属性标识用于表征初始批量系统应用升级包安装前校验成功;其中,初始批量系统应用升级包基于云端配置设备下载得到。
本申请实施例中,适用于电子设备在对批量系统应用升级包安装前先判断是否已对初始批量系统应用升级包安装前校验的场景;其中,批量系统应用升级包基于初始批量系统应用升级包和临时路径下的已有的当前批量系统应用升级包进行合并得到。
在本申请实施例中,电子设备判断第一属性标识的值是否等于第一预设值,第一属性标识用于表征初始批量系统应用升级包安装前校验成功。其中,初始批量系统应用升级包基于云端配置设备下载得到;第一属性标识可标识为UpdateSucceed_Flag。
示例性的,电子设备判断UpdateSucceed_Flag是否等于1。
S105、若第一属性标识等于第一预设值,则确定对批量系统应用升级包进行安装;其中,批量系统应用升级包基于初始批量系统应用升级包安装前校验得到。
本申请实施例中,适用于电子设备判断已对初始批量系统应用升级包进行安装前校验后,确定对基于初始批量系统应用升级包进行安装前校验得到的批量系统应用升级包进行安装的场景。
在本申请实施例中,若第一属性标识等于第一预设值,电子设备则确定对第一路径下的批量系统应用升级包进行安装。其中,第一路径可以为/data/inui-app。
示例性的,若第一属性标识等于第一预设值,则电子设备确定对/data/inui-app下的批量系统应用升级包进行安装。
需要说明的是,本申请实施例中,若初始批量系统应用升级包安装前校验成功,电子设备根据初始批量系统应用升级包和临时路径下的已有的当前批量系统应用升级包进行合并得到批量系统应用升级包,以对批量系统应用升级包进行安装。
可以理解的是,本申请实施例中,电子设备在对批量系统应用升级包安装前先判断是否已对初始批量系统应用升级包安装前校验,从而在初始批量系统应用升级包安装前校验成功的基础上,能够对批量系统应用升级包进行批量安装。
在本申请的一些实施例中,图3是本申请实施例提供的批量升级方法的一个可选的流程示意图三,如图3所示,在步骤S104之前还包括S106-S108。如下:
S106、接收到关机事件或重启事件,且接收到不立即升级指示,拦截关机事件或重启事件,并判断第二属性标识是否为第二预设值,第二属性标识用于表征初始批量系统应用升级包已成功从云端配置设备下载。
本申请实施例中,适用于电子设备接收到关机事件或重启事件,且接收到不立即升级指示时,电子设备判断初始批量系统应用升级包是否已成功从云端配置设备下载的场景。
在本申请实施例提供的批量升级方法中电子设备接收到的不立即升级指示用于表征电子设备不对批量系统应用升级包进行立即升级。
在本申请实施例中,电子设备接收到关机事件或重启事件,且接收到不立即升级指示时,拦截关机事件或重启事件,并判断第二属性标识是否为第二预设值,第二属性标识用于表征初始批量系统应用升级包已成功从云端配置设备下载。其中,第二属性标识可标识为NeedUpdate_Flag。
示例性的,电子设备接收到重启事件,且接收到不立即升级指示时,拦截重启事件,并判断NeedUpdate_Flag是否等于第二预设值1。
S107、若第二属性标识等于第二预设值,则对初始批量系统应用升级包进行安装前校验。
本申请实施例中,适用于电子设备对初始批量系统应用升级包进行安装前校验的场景。
在本申请实施例中,若第二属性标识等于第二预设值,电子设备则对初始批量系统应用升级包进行安装前校验。
需要说明的是,第二属性标识可标识为NeedUpdate_Flag,本申请实施例不作限制。
示例性的,若NeedUpdate_Flag等于第二预设值1,电子设备则对/data/local/gmApp下的初始批量系统应用升级包进行安装前校验。
需要说明的是,安装前校验包括:校验标识check Flag状态、计算剩余存储空间、校验批量系统应用升级包合法性、备份老升级包、合并升级包、校验合并后的升级包、获取合并后的APK列表和预安装校验;其中,合并升级包,包括:根据新老批量系统应用升级包各自的Manifest.json文件记录的APK信息合并新老批量系统应用升级包。其中,预安装校验时合并后的批量系统应用升级包内的一个APK校验失败就全部失败,全部校验成功才算成功。
还需要说明的是,安装前校验时一个系统应用失败就全部失败,全部校验成功才算成功。
在本发明的一些实施例中,若第二属性标识等于第二预设值,电子设备创建备份路径,并将安装批量系统应用升级包之前的第一路径下的已有的当前批量系统应用升级包拷贝至备份路径下;电子设备将已有的当前批量系统应用升级包对应的第一路径修改为临时路径;电子设备将第二路径下的初始批量系统应用升级包与临时路径下的已有的当前批量系统应用升级包进行合并得到批量系统应用升级包,并将临时路径下的已有的当前批量系统应用升级包替换为批量系统应用升级包。
示例性的,若NeedUpdate_Flag等于第二预设值1,电子设备创建备份路径/data/inui-app-backup,并将/data/inui-app下的已有的当前批量系统应用升级包拷贝至/data/inui-app-backup下,电子设备将已有的当前批量系统应用升级包对应的/data/inui-app修改为临时路径/data/inui-app-temp,并将第二路径/data/local/gmApp下的初始批量系统应用升级包与/data/inui-app-temp下的已有的当前批量系统应用升级包进行合并得到批量系统应用升级包,并将/data/inui-app-temp下的已有的当前批量系统应用升级包替换为批量系统应用升级包;也就是说,批量系统应用升级包对应的存放路径为/data/inui-app-temp。
需要说明的是,本发明的一些实施例是安装前校验中的备份老升级包、合并升级包的具体实施方式。
可以理解的是,本发明的一些实施例中,合并升级包具体根据初始批量系统应用升级包与已有的当前批量系统应用升级包进行合并得到批量系统应用升级包,并将/data/inui-app-temp下已有的当前批量系统应用升级包替换为批量系统应用升级包,使得批量系统应用升级包兼容了已有的当前批量系统应用升级包。
S108、若初始批量系统应用升级包安装前校验成功,则设置第一属性标识为第一预设值,并执行关机或者重启。
本申请实施例中,适用于电子设备对初始批量系统应用升级包安装前校验成功后,设置第一属性标识的场景。
在本申请实施例中,若初始批量系统应用升级包安装前校验成功,电子设备则设置第一属性标识为第一预设值,并执行关机或者重启。
示例性的,若初始批量系统应用升级包安装前校验成功,则设置UpdateSucceed_Flag为1,并执行关机或者重启。
需要说明的是,关机前只对初始批量系统应用升级包进行安装前校验,不对安装前校验得到的批量系统应用升级包进行批量安装。
可以理解的是,本申请实施例中,电子设备对第二路径下的初始批量系统应用升级包安装前校验成功,从而保证了安装前校验得到的批量系统应用升级包的正确性。
在本申请的一些实施例中,图4是本申请实施例提供的批量升级方法的一个可选的流程示意图四,如图4所示,该方法还包括:
S109、若初始批量系统应用升级包安装前校验成功,则将存放批量系统应用升级包的临时路径修改为第一路径;批量系统应用升级包基于初始批量系统应用升级包和已有的当前批量系统应用升级包合并得到。
本申请实施例中,适用于电子设备将批量系统应用升级包对应的临时路径修改为第一路径的场景。
在本申请实施例中,若初始批量系统应用升级包安装前校验成功,电子设备则将存放批量系统应用升级包的临时路径修改为第一路径;批量系统应用升级包基于初始批量系统应用升级包和已有的当前批量系统应用升级包合并得到;
可以理解的是,本申请实施例中,电子设备对批量系统应用升级包安装前校验成功后,将存放批量系统应用升级包的临时路径修改为第一路径,从而保证电子设备最先对批量系统应用升级包进行安装。
示例性的,若批量系统应用升级包安装前校验成功,则将存放批量系统应用升级包的/data/inui-app-temp修改为/data/inui-app。
S110、若初始批量系统应用升级包安装前校验失败,则删除临时路径及临时路下的文件,并将备份路径修改为第一路径。
本申请实施例中,适用于初始批量系统应用升级包安装前校验失败时,将备份路径修改为第一路径的场景。
在本申请实施例中,若初始批量系统应用升级包安装前校验失败,电子设备则删除临时路径及临时路下的文件,并将备份路径修改为第一路径。
S111、将第一路径设置为安装优先级最高的路径。
本申请实施例中,适用于电子设备安装前校验之后,将第一路径设置为安装优先级最高的路径的场景。
在本申请实施例中,电子设备将第一路径设置为安装优先级最高的路径。
需要说明的是,电子设备将第一路径设置为安装优先级最高的路径,也就是说,电子设备将第一路径设置为系统开机时第一个进行安装的路径。
可以理解的是,本申请实施例中,电子设备预先设定第一路径为安装优先级最高的路径,从而保证电子设备在系统开机时最先安装第一路径下的系统应用,且所有系统应用都能都安装成功。
在本申请的一些实施例中,图5是本申请实施例提供的批量升级方法的一个可选的流程示意图五,如图5所示,在步骤S106之前还包括S112-S114。如下:
S112、在开机联网后下载云端配置设备配置的初始批量系统应用升级包至第二路径下。
本申请实施例中,适用于电子设备安装前校验阶段之前,通过云端配置设备对初始批量系统应用升级包进行下载的场景。
在本申请实施例中,电子设备的升级模块在开机联网后下载云端配置设备配置的初始批量系统应用升级包至第二指定路径下。
需要说明的是,电子设备对系统应用对应的批量系统应用升级包批量安装之前,需要先从云端配置设备下载最新版本的初始批量系统应用升级包。
可以理解的是,本申请实施例中,电子设备仅从云端配置设备下载初始批量系统应用升级包,无需下载固件升级包,从而为实现与固件升级解耦以实现系统应用的快速迭代提供了条件。
S113、若成功下载初始批量系统应用升级包,则对初始批量系统应用升级包进行完整性校验。
本申请实施例中,适用于成功下载初始批量系统应用升级包后,对初始批量系统应用升级包进行完整性校验的场景。
在本申请实施例中,电子设备的升级模块若成功下载初始批量系统应用升级包,则对初始批量系统应用升级包进行完整性校验。
需要说明的是,在本申请实施例中,电子设备对初始批量系统应用升级包进行的完整性校验,仅是简单地校验初始批量系统应用升级包的完整性,与后续对初始批量系统应用升级包进行安装前校验不同。
S114、若完整性校验成功,则将第二属性标识设置为第二预设值,并显示升级提示弹窗;升级提示弹窗用于接收是否立即升级指示。
本申请实施例中,适用于在完整性校验成功后,电子设备设置第二属性标识并显示升级提示弹窗以提醒使用者确认是否对电子设备的系统应用进行立即升级的场景。
在本申请实施例中,若完整性校验成功,电子设备则将第二属性标识设置为第二预设值,并显示升级提示弹窗;升级提示弹窗用于接收是否立即升级指示。
示例性的,电子设备的升级模块若成功下载初始批量系统应用升级包,则将第二属性标识NeedUpdate_Flag设置为第二预设值1。
需要说明的是,在本申请实施例中,电子设备将第二属性标识设置为第二预设值后,第二属性标识用于表征电子设备成功下载了批量系统应用升级包。
需要说明的是,升级提示弹窗用于接收是否立即升级指示,其中,不立即升级指示用于表征对系统应用不立即升级的指示。
可以理解的是,本申请实施例中,电子设备升级提示弹窗接收的不立即升级指示,为电子设备在关机事件或重启事件之前进行安装前校验提供了条件。
在本申请的一些实施例中,图6是本申请实施例提供的批量升级方法的一个可选的流程示意图六,如图6所示,在步骤S101之前还包括S115和S116。如下:
S115、解析批量系统应用升级包中的第一指定文件得到第一系统版本标识;第一系统版本标识用于表征批量系统应用升级包对应的系统版本编号;第一指定文件用于记录批量系统应用升级包中的更新部分的文本信息和批量系统应用升级包的应用程序包的信息。
本申请实施例中,适用于解析得到第一系统版本标识的场景。
在本申请实施例提供的批量升级方法中的第一系统版本标识是指批量系统应用升级包对应的系统版本编号,也即第一指定文件保存的批量系统应用升级包对应的系统版本编号。
在本申请实施例中,电子设备解析批量系统应用升级包中的第一指定文件得到第一系统版本标识;第一系统版本标识用于表征批量系统应用升级包对应的系统版本编号;第一指定文件用于记录批量系统应用升级包中的更新部分的文本信息和批量系统应用升级包的所有应用程序包的信息。
示例性的,解析批量系统应用升级包中的Manifest.json得到第一系统版本标识ro.xgimi.inui.version:[1.1.1.1]。
需要说明的是,本申请实施例中第一指定文件可以是Manifest.json文件,本申请实施例不作限制。第一指定文件记录了批量系统应用升级包的系统版本号,用于展示更新部分的文本信息,批量系统应用升级包内所有应用程序包的必要信息;批量系统应用升级包内应用程序包的信息为应用程序包的必要信息,包括:包名,路径,信息摘要算法(MD5,Message-Digest Algorithm 5st)等。
S116、对比第一系统版本标识和第二系统版本标识;若第二系统版本标识小于第一系统版本标识,则确定对第一路径下的批量系统应用升级包进行安装;第二系统版本标识用于表征电子设备记录的系统版本编号。
本申请实施例中,适用于电子设备判断是否对第一路径下的批量系统应用升级包进行安装的场景。
在本申请实施例中,电子设备判断第二系统版本标识和第一系统版本标识的大小,若第二系统版本标识小于第一系统版本标识,则确定对第一路径下的批量系统应用升级包进行安装;第二系统版本标识用于表征当前电子设备记录的系统版本编号。
需要说明的是,在本申请实施例中,若第二系统版本标识小于第一系统版本标识,则说明当前电子设备记录的系统应用对应的系统版本编号相对于批量系统应用升级包对应的系统版本编号为旧的系统版本编号,需要使用批量系统应用升级包对电子设备的系统应用进行升级。
在本申请的一些实施例中,批量升级方法还包括S117。如下:
S117、若第二系统版本标识大于第一系统版本标识,则删除第一路径和备份路径下的文件,并清除第一属性标识和第二属性标识,并对系统分区下的系统应用进行安装。
本申请实施例中,适用于当第二系统版本标识大于第一系统版本标识时,电子设备对系统分区下的系统应用进行安装的场景。
在本申请实施例中,电子设备对比第二系统版本标识和第一系统版本标识,若第二系统版本标识大于第一系统版本标识,则删除第一路径和备份路径下的文件,并清除第一属性标识和第二属性标识,并对系统分区下的系统应用进行安装
示例性的,若第二系统版本标识大于第一系统版本标识,电子设备则对系统分区中的system/app、/vendor/app的系统应用进行扫包安装。
需要说明的是,本申请实施例中,若第二系统版本标识大于第一系统版本标识,则说明电子设备在恢复模式下进行了OTA升级,即修改了系统分区和更新了第二系统版本标识,此时,第一路径下的系统应用的批量系统应用升级包不再是最新的批量系统应用升级包,电子设备删除第一路径和备份路径下的所有文件,并清除第一属性标识和第二属性标识。还需要说明的是,本申请实施例中清除标识是对所有标识进行清除,包括但不限于清除第一属性标识和第二属性标识。
需要说明的是,本申请实施例中,OTA升级包包括两个版本:固件版本和系统版本;其中,固件版本用于对电子设备进行固件升级;系统版本用于对电子设备的系统应用进行批量升级。本申请实施例中,OTA升级包的安装路径不等同于第一路。
可以理解的是,本申请实施例中,若第二系统版本标识大于第一系统版本标识,电子设备对系统分区下的系统应用进行安装,使得单独对系统应用的批量系统应用升级包进行安装升级可以和OTA升级结合使用,从而兼容了固件升级。
在本申请的一些实施例中,在步骤S103之后还包括S118-S120。如下:
S118、检测到存在崩溃的系统应用,判断崩溃的系统应用是否为关键系统应用。
本申请实施例中,适用于电子设备对使用中的系统应用进行崩溃检测的场景。
在本申请实施例提供的批量升级方法中的第一指定文件中记录了一个关键应用列表,关键应用列表用于记录关键应用的名称。
在本申请实施例中,电子设备的崩溃监测模块检测到存在崩溃的系统应用,判断崩溃的系统应用是否为关键系统应用。
需要说明的是,电子设备检测到存在崩溃的系统应用,判断崩溃的系统应用的安装路径是否是第一路径,并且崩溃的系统应用是否是第一路径下的第一指定文件里面的关键系统应用。本申请实施例中关键系统应用可以是桌面应用、短信应用,相机应用、电话应用,也可以是其他关键的系统应用,本申请实施例不作限制。
S119、若崩溃的系统应用为关键系统应用,则从备份路径中获取备份批量系统应用升级包。
在本申请实施例中,若崩溃的系统应用为关键系统应用,电子设备则从备份路径中获取备份批量系统应用升级包。
需要说明的是,若当前崩溃的系统应用的安装路径是第一路径,并且崩溃的系统应用是第一路径下的第一指定文件里面的关键系统应用,则从备份路径中获取备份批量系统应用升级包。本申请实施例中备份路径中存储的备份批量系统应用升级包可为升级之前的系统版本对应的批量系统应用升级包。
S120、安装备份批量系统应用升级包,以进行系统版本回退。
在本申请实施例中,电子设备安装备份批量系统应用升级包,以进行系统版本回退。
可以理解的是,本申请实施例中当崩溃的系统应用为第一路径下的关键系统应用时,电子设备安装备份批量系统应用升级包,以进行系统版本回退,从而保证了电子设备中的系统应用正常使用。
在本申请的一些实施例中,在步骤S115之前还包括S121和S122。如下:
S121、OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识小于或等于第二系统版本标识,则先进入恢复模式以修改系统分区,更新第一固件版本标识;第二固件版本标识用于表征OTA升级包中的固件版本对应的版本编号;第三系统版本标识用于表征OTA升级包中的系统版本对应的版本编号。
本申请实施例中,适用于电子设备中的OTA升级包的固件版本大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识小于或等于第二系统版本标识时,电子设备更新第一固件版本标识的场景。
在本申请实施例提供的批量升级方法中的第三系统版本标识用于表征OTA升级包中的系统版本对应的版本编号。
在本申请实施例中,电子设备中的OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识小于或等于第二系统版本标识,电子设备则先进入recovery模式以修改系统分区,并更新第一固件版本标识;第二固件版本标识用于表征OTA升级包中的固件版本对应的版本编号。
示例性的,若OTA升级包的第二固件版本标识为V1.1.101,而当前电子设备的第一固件版本标识为V1.1.100,则第二固件版本标识V1.1.101大于第一固件版本标识为V1.1.100;且OTA升级包中的第三系统版本标识为1.1.1.1,而当前电子设备的第二系统版本标识也为1.1.1.1,则第三系统版本标识等于第二系统版本标识,此时,电子设备先进入recovery模式以修改系统分区,更新第一固件版本标识。
需要说明的是,本申请实施例中,OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识小于或等于第二系统版本标识时,电子设备仅更新第一固件版本标识,不对第二系统版本标识进行更新。
可以理解的是,本申请实施例维护系统应用的系统版本编号的同时,维护了固件版本的版本编号,使得电子设备可以交替执行单独对系统版本进行批量升级和OTA升级,也能保证正确的版本编号。
S122、若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识大于第二系统版本标识,则先进入恢复模式以修改系统分区,更新第一固件版本标识和第二系统版本标识。
本申请实施例中,适用于OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识大于第二系统版本标识时,电子设备更新第一固件版本标识和第二系统版本标识的场景。
在本申请实施例中,若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识大于第二系统版本标识,电子设备则先进入recovery模式以修改系统分区,更新第一固件版本标识和第二系统版本标识。
示例性的,若OTA升级包的第二固件版本标识为V1.1.101,而当前电子设备的第一固件版本标识为V1.1.100,则第二固件版本标识V1.1.101大于第一固件版本标识为V1.1.100;且OTA升级包中的第三系统版本标识为1.1.1.1,而当前电子设备的第二系统版本标识也为1.1.1.0,则第三系统版本标识大于第二系统版本标识,此时,电子设备先进入recovery模式以修改系统分区,更新第一固件版本标识和第二系统版本标识。
可以理解的是,本申请实施例维护批量系统应用升级包对应的系统版本编号的同时,维护了OTA升级包中的固件版本的版本编号和OTA升级包中的系统版本的版本编号,使得电子设备可以交替执行对批量系统应用升级包进行批量升级和对OTA升级包进行升级,也能保证正确的版本编号。
本申请实施例提供一种批量升级方法,图7是本申请实施例提供示例性的一种批量升级方法的流程示意图一,如图7所示。
在本申请实施例提供的批量升级方法中主机端模块开机或者重启后,主机端模块的安卓系统中负责系统升级的应用程序在开机联网后下载云端配置设备配置的初始批量系统应用升级包到/data/local/gmApp路径下,并且应用程序负责完整性校验。之后应用程序弹窗提示使用者是否立即升级,若使用者没有选择立即升级则安卓系统对主机端模块关机事件或者重启事件进行拦截;拦截时安卓系统判断第二属性标识NeedUpdate_Flag是否等于第二预设值1,若第二属性标识等于第二预设值,则表示/data/local/gmApp路径下的初始批量系统应用升级包已成功从云端配置设备下载,此时,安卓系统对初始批量系统应用升级包开始校验,开始校验包括:校验标识(check Flag)状态、计算剩余存储空间、校验批量系统应用升级包合法性、备份老升级包、合并升级包、校验合并后的升级包和获取合并后的APK列表;获取合并后的APK列表之后,对初始批量系统应用升级包在合并升级包后得到的批量系统应用升级包进行架构(framework)层预安装校验;若上述校验均成功,则设置第一属性标识UpdateSucceed_Flag为第一预设值1,并执行关机;若上述校验失败,则安卓系统对批量系统应用升级包进行版本回退。
其中,备份老升级包的具体实施方式包括:安卓系统创建备份路径/data/inui-app-backup,并将/data/inui-app下的已有的当前批量系统应用升级包拷贝至/data/inui-app-backup下;合并升级包的具体实施方式包括:安卓系统将已有的当前批量系统应用升级包对应的/data/inui-app修改为临时路径/data/inui-app-temp,并将/data/local/gmApp下的初始批量系统应用升级包与/data/inui-app-temp下的已有的当前批量系统应用升级包进行合并得到批量系统应用升级包,并将/data/inui-app-temp下的已有的当前批量系统应用升级包替换为批量系统应用升级包;其中,已有的当前批量系统应用升级包是指安卓系统存储的原有的批量系统应用升级包。
需要说明的是,预安装校验是对批量系统应用升级包的APK逐个进行的校验,有一个批量系统应用升级包内的APK预安装校验失败则校验失败。
还需要说明的是,上述安装前校验成功后,且执行关机之前,安卓系统将存储当前批量系统应用升级包的临时路径/data/inui-app-temp修改为第一路径/data/inui-app;若上述安装前校验失败,则删除临时路径/data/inui-app-temp及临时路径下的所有文件,并将备份路径/data/inui-app-backup修改为/data/inui-app。
可以理解的是,本申请实施例中安卓系统执行关机事件之前进行安装前校验,对主机端模块的影响小,同时保证了批量系统应用升级包的正确性。
本申请实施例提供一种批量升级方法,图8是本申请实施例提供示例性的一种批量升级方法的流程示意图二,如图8所示。
在本申请实施例提供的批量升级方法中,主机端模块开机时,判断第一属性标识UpdateSucceed_Flag是否等于第一预设值1,若UpdateSucceed_Flag等于1,则对第一路径/data/inui-app下的批量系统应用升级包进行安装,即进行扫包安装Patch包,扫包安装后,进入正常开机流程;若UpdateSucceed_Flag不等于1,则直接进入正常开机流程。开机后,实时监测使用中崩溃的系统应用,若主机端模块的安卓系统中的崩溃监测模块判断当前崩溃的系统应用的安装路径如果是批量系统应用升级包的安装路径,即第一路径/data/inui-app,并且崩溃的系统应用是扫包安装的Patch包中的Manifest.json文件里面记录的关键系统应用,则安卓系统执行将崩溃的系统应用回退到上一个版本并重启;若当前崩溃的系统应用的安装路径不是批量系统应用升级包的安装路径,即/data/inui-app,并且崩溃的系统应用不是是扫包安装的Patch包中的Manifest.json文件里面记录的关键系统应用,则继续进行实时监测使用中崩溃的系统应用。
需要说明的是,安卓系统利用scanDir函数进行扫包安装。扫包安装是指对一个目录下APK全部进行安装。
Manifest.json文件记录了一个关键系统应用列表,列表记录关键系统应用的名称,同时,Manifest.json文件记录了Patch包的安装路径/data/inui-app。安卓系统通过解析Manifest.json文件得到批量系统应用升级包中的需要监测是否崩溃的关键系统应用列表和Patch包的安装路径。
可以理解的是,本申请实施例中安卓系统在开机阶段对批量系统应用升级包直接进行安装的速度快,延时小。且安卓系统安装批量系统应用升级包无需依赖固件升级,从而实现了系统应用的快速迭代。同时,相比于单个APK升级,本申请实施例能够对整个批量系统应用升级包中的系统应用进行批量升级,即对系统版本进行升级,提高了系统应用升级的便捷性。另外,批量系统应用升级包升级完毕后,实时监测使用中崩溃的系统应用,保证了系统应用正常使用。
本申请实施例提供一种批量升级方法,图9是本申请实施例提供示例性的一种批量升级方法的流程示意图三,如图9所示。
在本申请实施例提供的批量升级方法中,安装前校验流程包括:check Flag状态、计算剩余存储空间、校验批量系统应用升级包合法性、备份老升级包、合并升级包、校验合并后的升级包、获取合并后的APK列表和预安装校验。其中,计算剩余存储空间时,若剩余空间小于两倍批量系统应用升级包占用的空间则校验失败。校验批量系统应用升级包合法性即校验Patch包合法性时,若patch包的每个APK的MD5值与主机端模块的安卓系统计算得到的MD5值有一个不匹配,则校验失败;其中,patch包的每个APK的MD5值记录于Manifest.json文件中。备份老升级包即备份老patch包用于开机后某系统应用导致系统崩溃时可以回退到老版本。合并升级包即合并老patch包与新patch包;合并升级包具体根据新老升级包中的Manifest.json记录的APK信息进行合并,也就是将新升级包中新添加的APK和版本更高的APK替换老升级包中的对应APK,同时更新生成一个新的Manifest.json文件。校验合并后的升级包为了提高校验速度只对有更新的APK进行校验,有一个APK失败则校验失败。获取合并后的APK列表即获取更新生成的新的APK列表。预安装校验在安卓系统原生的APK安装流程中增加一个第三属性标识PreCheck_FLAG判断是预安装校验还是正常安装,正常安装则走完整个安装流程,预安装校验则不执行最后的安装流程;其中,预安装校验中有一个批量系统应用升级包内的APK预安装校验失败则校验失败。
可以理解的是,本申请实施例中安卓系统在对批量系统应用升级包进行批量安装之前进行安装前校验,保证了批量系统应用升级包的正确性。
本申请实施例提供一种批量升级方法,图10是本申请实施例提供示例性的一种批量升级方法的流程示意图四,如图10所示。
在本申请实施例提供的批量升级方法中,主机端模块开机时,若存在OTA升级包,且OTA升级包中的固件版本大于主机端模块的安卓系统当前的固件版本,则进行OTA升级,即修改/system/app等系统分区,更新安卓系统的固件版本号和系统版本号,安卓系统的系统版本号是指安卓系统的系统应用对应的系统版本号。之后,开始进行扫包,安卓系统获取当前安卓系统的记录的系统版本号,安卓系统解析批量系统应用升级包中Manifest.json得到组团包即批量系统应用升级包对应的组团系统版本号,若组团系统版本号大于当前安卓系统的系统版本号,则进行组团扫包;其中,组团系统版本号是指/data/inui-app路径下批量系统应用升级包的系统版本号,即当批量系统应用升级包的系统版本号大于当前安卓系统的系统版本号,则对批量系统应用升级包进行组团扫包,即进行批量安装。若组团系统版本号小于当前安卓系统的系统版本号,跳过组团扫包,删除/data/inui-app、/data/inui-app-backup路径下的文件,并清除第一属性标识UpdateSucceed_Flag、第二属性标识NeedUpdate_Flag和第三属性标识PreCheck_FLAG,然后对系统分区下的/system/app、/vendor/app目录进行扫包安装。需要说明的是,若组团系统版本号小于当前安卓系统的系统版本号,则说明进行了OTA升级,更新了安卓系统的系统版本号,/data/inui-app路径下的批量系统应用升级包不再是最新的系统版本。
若存在OTA升级包,且OTA升级包中的固件版本小于安卓系统当前的固件版本,则直接开始扫包,若组团系统版本号大于当前安卓系统的系统版本号,则进行组团扫包;否则跳过组团扫包,删除/data/inui-app、/data/inui-app-backup路径下的文件,并清除第一属性标识UpdateSucceed_Flag、第二属性标识NeedUpdate_Flag和第三属性标识PreCheck_FLAG。
若不存在OTA升级包,则直接开始扫包,若组团系统版本号大于当前安卓系统的系统版本号,则进行组团扫包;否则,跳过组团扫包,删除/data/inui-app、/data/inui-app-backup路径下的文件,并清除第一属性标识UpdateSucceed_Flag、第二属性标识NeedUpdate_Flag和第三属性标识PreCheck_FLAG。
需要说明的是,Manifest.json以规定格式记录了批量系统应用升级包的系统版本号。另外,本申请实施例中清除标识是指清除本申请实施例涉及到的所有标识,并不限于清除第一属性标识UpdateSucceed_Flag、第二属性标识NeedUpdate_Flag和第三属性标识PreCheck_FLAG。
还需要说明的是,本申请实施例根据固件版本判断是否OTA升级,根据系统版本判断是否组团升级。如果判断不组团升级则删除/data/inui-app。OTA升级包的固件版本号和系统版本号独立,当系统应用的APK没有更新时系统版本号可以不改变。本申请实施例中data/inui-app有最高的扫包优先级,如果/data/inui-app进行扫包一定能全部安装成功。其他文件夹不是一定全部成功安装,例如/system/app。本申请实施例中,如果进行OTA升级,则在扫包之前便进行了/system/app等系统分区的修改即更新了/system/app的APK,但没有安装,等到开机扫包时才决定是否安装,同时系统版本也得到修改。
可以理解的是,本申请实施例中,若组团系统版本号大于当前安卓系统的系统版本号,则进行组团扫包;若组团系统版本号小于当前安卓系统的系统版本号,跳过组团扫包,对系统分区下的/system/app、/vendor/app目录进行扫包安装,使得单独对系统应用的批量系统应用升级包进行安装升级可以和OTA升级结合进行,从而兼容了固件升级。
本申请实施例提供一种批量升级方法,图11是本申请实施例提供示例性的一种批量升级方法的流程示意图五,如图11所示。
在本申请实施例提供的批量升级方法中,云端配置设备用于对主机端模块的版本编号进行配置,OTA升级包有两个版本:一个固件版本,一个系统版本,固件版本用于进行固件升级,系统版本用于进行系统应用批量升级。批量系统应用升级包有一个版本:系统版本,用于判断是否进行系统应用批量升级。
云端配置设备中若OTA升级,则将OTA升级包的固件版本v1.1.100和OTA升级包的系统版本1.1.1.0发送至主机端模块;若系统版本的APK没有更新,但是固件系统功能有改变,则更新OTA升级包的固件版本至固件版本v1.1.101,OTA升级包的系统版本不进行更新;若固件系统功能没有改变,仅存在系统应用对应的APK有更新,则仅进行组团升级,即将批量系统应用升级包的系统版本1.1.1.0升级至系统版本1.1.1.1。
若当前OTA包的固件版本为v1.1.101,OTA包的系统版本为1.1.1.0,而批量系统应用升级包的系统版本为1.1.1.5,若存在固件系统功能更新,系统应用的APK也有更新,则将OTA包的固件版本v1.1.101更新为固件版本v1.1.102,OTA包的系统版本1.1.1.0更新至系统版本1.1.1.6。
需要说明的是,组团升级是指仅单独对系统应用对应的批量系统应用升级包的APK进行版本更新。本申请实施例中只要系统版本相同则系统应用例如桌面应用,短信应用的数量和版本都相同。
可以理解的是,本申请实施例云端配置设备管理批量系统应用升级包的系统版本编号的同时,兼容了固件版本编号的维护更新,批量系统应用升级包的系统版本编号可以和固件版本编号交替进行更新也能保证正确的版本编号。
基于上述实施例的批量升级方法,本申请实施例还提供一种批量升级装置,图12为本申请实施例提供的一种批量升级装置的结构示意图一,该批量升级装置1包括:确定单元10、获取单元11和安装单元12;其中,
确定单元10,用于确定第一路径,所述第一路径下包括有批量系统应用升级包;
获取单元11,用于在所述第一路径下获取所述批量系统应用升级包;所述批量系统应用升级包包含至少一个系统应用;
安装单元12,用于对所述批量系统应用升级包进行安装,以安装所述至少一个系统应用。
在本申请的一些实施例中,所述装置还包括判断单元和确定单元;其中,
所述判断单元,用于判断第一属性标识的值是否第一等于预设值,所述第一属性标识用于表征所述初始批量系统应用升级包安装前校验成功;
所述确定单元,用于若所述第一属性标识等于第一预设值,则确定对所述批量系统应用升级包进行安装。
在本申请的一些实施例中,所述装置还包括接收单元、拦截单元、安装前校验单元、设置单元和执行单元;其中,
所述接收单元,用于接收关机事件或重启事件;还用于接收不立即升级指示;
所述拦截单元,用于拦截所述关机事件或重启事件;
所述判断单元,还用于判断第二属性标识是否为第二预设值;所述第二属性标识用于表征所述初始批量系统应用升级包已成功从所述云端配置设备下载;还用于判断所述初始批量系统应用升级包安装前校验是否成功;
所述安装前校验单元,用于若第二属性标识等于第二预设值,则对所述初始批量系统应用升级包进行安装前校验;
所述设置单元,用于若所述初始批量系统应用升级包安装前校验成功,设置所述第一属性标识为第一预设值;
所述执行单元,用于执行关机或者重启。
在本申请的一些实施例中,所述装置还包括修改单元、创建单元、拷贝单元、替换单元和合并单元;其中,
所述创建单元,用于创建备份路径;
所述拷贝单元,用于将安装所述批量系统应用升级包之前的第一路径下的已有的当前批量系统应用升级包拷贝至所述备份路径下。
所述修改单元,用于将所述已有的当前批量系统应用升级包对应的第一路径修改为临时路径;
所述合并单元,用于将第二路径下的初始批量系统应用升级包与所述临时路径下的已有的当前批量系统应用升级包进行合并得到所述批量系统应用升级包;
所述替换单元,用于将所述临时路径下的已有的当前批量系统应用升级包替换为所述批量系统应用升级包。
在本申请的一些实施例中,所述装置还包括删除单元;其中,
所述修改单元,还用于若所述初始批量系统应用升级包安装前校验成功,则将存放所述批量系统应用升级包的临时路径修改为所述第一路径;还用于若所述初始批量系统应用升级包安装前校验失败,则将所述备份路径修改为第一路径;
所述删除单元,用于若所述初始批量系统应用升级包安装前校验失败,则删除所述临时路径及所述临时路下的文件。
所述设置单元,还用于将所述第一路径设置为安装优先级最高的路径。
在本申请的一些实施例中,所述装置还包括下载单元、完整性校验单元和显示单元;其中,
所述下载单元,用于在开机联网后下载所述云端配置设备配置的初始批量系统应用升级包至所述第二路径下;
所述完整性校验单元,用于对所述初始批量系统应用升级包进行完整性校验;
所述设置单元,还用于若完整性校验成功,则将所述第二属性标识设置为第二预设值;
所述显示单元,用于显示升级提示弹窗,所述升级提示弹窗用于接收是否立即升级指示。
在本申请的一些实施例中,所述装置还包括解析单元和对比单元;其中,
所述解析单元,用于解析所述批量系统应用升级包中的第一指定文件得到第一系统版本标识;所述第一系统版本标识用于表征所述批量系统应用升级包对应的系统版本编号;所述第一指定文件用于记录所述批量系统应用升级包中的更新部分的文本信息和所述批量系统应用升级包的应用程序包的信息;
所述对比单元,用于对比第一系统版本标识和所述第二系统版本标识;
所述确定单元,还用于若所述第二系统版本标识小于所述第一系统版本标识,则确定对所述第一路径下的批量系统应用升级包进行安装;所述第二系统版本标识用于表征当前电子设备记录的系统版本编号。
在本申请的一些实施例中,所述装置还包括删除单元和清除单元;其中,所述对比单元,还用于对比所述第二系统版本标识和所述第一系统版本标识;
所述删除单元,用于若所述第二系统版本标识大于所述第一系统版本标识,则删除所述第一路径和备份路径下的文件;
清除单元,用于清除第一属性标识和第二属性标识;
安装单元12,还用于对系统分区下的系统应用进行安装。
在本申请的一些实施例中,所述装置还包括检测单元;其中,
所述检测单元,用于检测到存在崩溃的系统应用;
所述判断单元,还用于判断所述崩溃的系统应用是否为关键系统应用;
获取单元11,还用于若所述崩溃的系统应用为所述关键系统应用,则从备份路径中获取备份批量系统应用升级包;
安装单元12,还用于安装所述备份批量系统应用升级包以进行系统版本回退。
在本申请的一些实施例中,所述装置还包括更新单元;其中,
所述判断单元,还用于判断OTA升级包的第二固件版本标识是否大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识是否小于或等于所述第二系统版本标识;
所述修改单元,还用于若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识小于或等于所述第二系统版本标识,则先进入恢复模式以修改系统分区;所述第二固件版本标识用于表征OTA升级包中的固件版本对应的版本编号;所述第三系统版本标识用于表征OTA升级包中的系统版本对应的版本编号;
所述更新单元,用于若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识小于或等于所述系统版本标识,更新所述第一固件版本标识;
所述修改单元,还用于若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识大于所述第二系统版本标识,则先进入恢复模式以修改系统分区;
所述更新单元,还用于若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识大于所述第二系统版本标识,更新所述第一固件版本标识和所述第二系统版本标识。
基于上述实施例的批量升级方法,本申请实施例还提供一种批量升级装置,如图13所示,图13为本申请实施例提供的一种批量升级装置的结构示意图二,该装置包括:处理器1301和存储器1302;存储器1302存储处理器可执行的一个或者多个程序,当一个或者多个程序被执行时,通过处理器1301执行如前所述实施例的任意一种批量升级方法。
基于上述实施例的批量升级方法,本申请实施例还供了一种可读存储介质,可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,程序被处理器执行时实现如本公开实施例的批量升级方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请较佳实施例而已,并非用于限定本申请的保护范围。
Claims (13)
1.一种批量升级方法,其特征在于,所述方法包括:
确定第一路径,所述第一路径下包括有批量系统应用升级包;
在所述第一路径下获取所述批量系统应用升级包;所述批量系统应用升级包包含至少一个系统应用;
对所述批量系统应用升级包进行安装,以安装所述至少一个系统应用。
2.根据权利要求1所述的方法,其特征在于,所述对所述批量系统应用升级包进行安装,以安装所述至少一个系统应用之前,所述方法还包括:
判断第一属性标识的值是否等于第一预设值,所述第一属性标识用于表征初始批量系统应用升级包安装前校验成功;其中,所述初始批量系统应用升级包基于云端配置设备下载得到;
若所述第一属性标识等于第一预设值,则确定对所述批量系统应用升级包进行安装;其中,所述批量系统应用升级包基于所述初始批量系统应用升级包安装前校验得到。
3.根据权利要求2所述的方法,其特征在于,所述判断第一属性标识的值是否等于第一预设值之前,所述方法还包括:
接收到关机事件或重启事件,且接收到不立即升级指示,拦截所述关机事件或重启事件,并判断第二属性标识是否为第二预设值,所述第二属性标识用于表征所述初始批量系统应用升级包已成功从所述云端配置设备下载;
若第二属性标识等于第二预设值,则对所述初始批量系统应用升级包进行安装前校验;
若所述初始批量系统应用升级包安装前校验成功,则设置所述第一属性标识为第一预设值,并执行关机或者重启。
4.根据权利要求3所述的方法,其特征在于,所述若第二属性标识等于第二预设值,则对所述初始批量系统应用升级包进行安装前校验,至少包括:
若第二属性标识等于第二预设值,创建备份路径,并将安装所述批量系统应用升级包之前的第一路径下的已有的当前批量系统应用升级包拷贝至所述备份路径下;
将所述已有的当前批量系统应用升级包对应的第一路径修改为临时路径;
将第二路径下的初始批量系统应用升级包与所述临时路径下的已有的当前批量系统应用升级包进行合并得到所述批量系统应用升级包,并将所述临时路径下的已有的当前批量系统应用升级包替换为所述批量系统应用升级包。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述初始批量系统应用升级包安装前校验成功,则将存放所述批量系统应用升级包的临时路径修改为所述第一路径;所述批量系统应用升级包基于所述初始批量系统应用升级包和所述已有的当前批量系统应用升级包合并得到;
若所述初始批量系统应用升级包安装前校验失败,则删除所述临时路径及所述临时路下的文件,并将所述备份路径修改为第一路径;
将所述第一路径设置为安装优先级最高的路径。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在开机联网后下载所述云端配置设备配置的初始批量系统应用升级包至所述第二路径下;
若成功下载所述初始批量系统应用升级包,则对所述初始批量系统应用升级包进行完整性校验;
若完整性校验成功,则将所述第二属性标识设置为第二预设值,并显示升级提示弹窗;所述升级提示弹窗用于接收是否立即升级指示。
7.根据权利要求1所述的方法,其特征在于,所述确定第一路径之前,所述方法还包括:
解析所述批量系统应用升级包中的第一指定文件得到第一系统版本标识;所述第一系统版本标识用于表征所述批量系统应用升级包对应的系统版本编号;所述第一指定文件用于记录所述批量系统应用升级包中的更新部分的文本信息和所述批量系统应用升级包的应用程序包的信息;
对比所述第一系统版本标识和第二系统版本标识;若所述第二系统版本标识小于所述第一系统版本标识,则确定对所述第一路径下的批量系统应用升级包进行安装;所述第二系统版本标识用于表征电子设备记录的系统版本编号。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述第二系统版本标识大于所述第一系统版本标识,则删除所述第一路径和备份路径下的文件,并清除第一属性标识和第二属性标识,并对系统分区下的系统应用进行安装。
9.根据权利要求1所述的方法,其特征在于,所述批量系统应用升级包进行安装之后,所述方法还包括:
检测到存在崩溃的系统应用,判断所述崩溃的系统应用是否为关键系统应用;
若所述崩溃的系统应用为所述关键系统应用,则从备份路径中获取备份批量系统应用升级包;
安装所述备份批量系统应用升级包,以进行系统版本回退。
10.根据权利要求7所述的方法,其特征在于,所述解析所述批量系统应用升级包中的第一指定文件得到第一系统版本标识之前,所述方法还包括:
若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识小于或等于所述第二系统版本标识,则先进入恢复模式以修改系统分区,更新所述第一固件版本标识;所述第二固件版本标识用于表征OTA升级包中的固件版本对应的版本编号;所述第三系统版本标识用于表征OTA升级包中的系统版本对应的版本编号;
若OTA升级包的第二固件版本标识大于当前电子设备的第一固件版本标识,且OTA升级包中的第三系统版本标识大于所述第二系统版本标识,则先进入恢复模式以修改系统分区,更新所述第一固件版本标识和所述第二系统版本标识。
11.一种批量升级装置,其特征在于,包括:确定单元、获取单元和安装单元;其中,
所述确定单元,用于确定第一路径,所述第一路径下包括有批量系统应用升级包;
所述获取单元,用于在所述第一路径下获取所述批量系统应用升级包;所述批量系统应用升级包包含至少一个系统应用;
所述安装单元,用于对所述批量系统应用升级包进行安装,以安装所述至少一个系统应用。
12.一种批量升级装置,其特征在于,包括:
存储器,用于存储可执行数据指令;
处理器,用于执行所述存储器中存储的可执行指令,以实现如权利要求1-10任一项所述的批量升级方法。
13.一种可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111375199.2A CN116149691A (zh) | 2021-11-19 | 2021-11-19 | 一种批量升级方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111375199.2A CN116149691A (zh) | 2021-11-19 | 2021-11-19 | 一种批量升级方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116149691A true CN116149691A (zh) | 2023-05-23 |
Family
ID=86356848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111375199.2A Pending CN116149691A (zh) | 2021-11-19 | 2021-11-19 | 一种批量升级方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149691A (zh) |
-
2021
- 2021-11-19 CN CN202111375199.2A patent/CN116149691A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102736978B (zh) | 一种检测应用程序的安装状态的方法及装置 | |
CN101436138B (zh) | 一种用于软件升级且动态回滚的控制装置以及控制方法 | |
US10114630B2 (en) | Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine | |
US20040117414A1 (en) | Method and system for automatically updating operating systems | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN107301070B (zh) | 一种升级方法及终端 | |
CN105204902B (zh) | 一种虚拟机的安全补丁升级方法,及装置 | |
CN110597544A (zh) | 一种软件系统升级方法及装置 | |
WO2012116637A1 (zh) | 系统拯救的方法及装置 | |
CN106210877A (zh) | 智能电视的系统升级方法及装置 | |
CN112099825B (zh) | 组件进行升级的方法、装置、设备及存储介质 | |
CN112698846B (zh) | 一种Linux系统自动安装补丁的方法和系统 | |
CN111538523A (zh) | 差分升级方法、设备及存储介质 | |
US11782800B2 (en) | Methods to automatically correct and improve system recovery and replication processes | |
WO2020029967A1 (zh) | 一种操作系统故障的修复方法和装置 | |
WO2017198156A1 (zh) | 业务部署方法、装置和系统 | |
CN110597545A (zh) | 一种基于ota组件的热补丁智能升级方法及系统 | |
CN105867962A (zh) | 系统升级的方法和装置 | |
CN113642004A (zh) | 一种容器镜像安全扫描与修复的方法、装置及设备 | |
CN113485755B (zh) | 设备驱动程序验证方法、装置、设备及存储介质 | |
CN111158729A (zh) | 系统升级方法、装置、设备及存储介质 | |
CN113703823A (zh) | 一种bmc固件升级方法、装置、电子设备及存储介质 | |
EP3260981B1 (en) | Information processing apparatus, information processing system, and information processing method for updating firmware | |
CN113721948A (zh) | 一种数据库升级方法、系统及存储介质 | |
CN112328284A (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 |