CN117527779A - 发布升级包的方法、服务器、终端和存储介质 - Google Patents

发布升级包的方法、服务器、终端和存储介质 Download PDF

Info

Publication number
CN117527779A
CN117527779A CN202210907516.9A CN202210907516A CN117527779A CN 117527779 A CN117527779 A CN 117527779A CN 202210907516 A CN202210907516 A CN 202210907516A CN 117527779 A CN117527779 A CN 117527779A
Authority
CN
China
Prior art keywords
firmware
upgrade
upgraded
file
package
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
CN202210907516.9A
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.)
BYD Co Ltd
Original Assignee
BYD 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 BYD Co Ltd filed Critical BYD Co Ltd
Priority to CN202210907516.9A priority Critical patent/CN117527779A/zh
Publication of CN117527779A publication Critical patent/CN117527779A/zh
Pending legal-status Critical Current

Links

Abstract

本申请提供一种发布升级包的方法、服务器、终端和存储介质,所述方法,应用于服务器端,所述方法包括:确定待升级固件的类型,所述类型包括开源固件和私有固件;基于所述待升级固件的类型,制作与所述待升级固件的类型相对应的升级文件;对所述升级文件进行编译,以得到固件升级包;向终端发送所述固件升级包,以供所述终端根据所述固件升级对所述待升级固件进行升级。通过本申请的方案,一方面可以避免采用补丁文件更新固件时,由于软件bug导致私有固件升级失败进而设备无法启动的问题,另一方面,采用本申请涉及的FOTA升级包,其体积比全量FOTA升级包小很多,这样就同时具备了全量FOTA升级包和差分FOTA升级包的优点。

Description

发布升级包的方法、服务器、终端和存储介质
技术领域
本申请涉及固件升级技术领域,更具体地涉及一种发布升级包的方法、服务器、终端和存储介质。
背景技术
空中下载软件升级技术(Firmware Over-The-Air,FOTA),也称为远程固件升级,是指通过云端升级技术,为具有连网功能的设备:例如手机、平板电脑、便携式媒体播放器、移动互联网设备等提供固件升级服务,用户使用网络以按需、易扩展的方式获取智能终端系统升级包,从而完成系统升级、系统修复和优化等功能。安装有安卓系统的终端可以通过下载全量FOTA升级包或者差分FOTA升级包来进行固件升级,但是由于全量FOTA升级包集成了升级版本的所有固件,所占存储空间比较大;而差分FOTA升级包在制作过程中可能存在潜在的软件代码bug,可能导致私有固件升级失败,终端无法启动的后果。
发明内容
为了解决上述问题中而提出了本申请。根据本申请一方面,提供了一种发布升级包的方法,应用于服务器端,所述方法包括:
确定待升级固件的类型,所述类型包括开源固件和私有固件;
基于所述待升级固件的类型,制作与所述待升级固件的类型相对应的升级文件;
对所述升级文件进行编辑,以得到固件升级包;
向终端发送所述固件升级包,以供所述终端根据所述固件升级包中的升级文件对所述待升级固件进行升级。
在本申请的一个实施例中,确定所述待升级固件的类型,包括:
编译所述待升级固件的当前版本的固件源代码,得到与所述当前版本相对应的第一中间包;
将所述第一中间包中的所有固件名称存储至数组;
删除所述第一中间包中的私有固件;从所述数组中取出任一目标固件名称,判断所述第一中间包中是否存在与所述目标固件名称对应的固件,如果存在,则确定所述目标固件为开源固件,如果不存在,则确定所述目标固件为私有固件。
在本申请的一个实施例中,所述删除所述第一中间包中的私有固件,包括:
将所述第一中间包中的私有固件保存在第一目录、开源固件保存在第二目录;
从所述数组中取出所述待定固件名称,判断所述第一目录是否存在所述待定固件名称;
若存在,则从所述第一中间包中删除所述目标固件,重复判断直到所述第一中间包仅保留所述开源固件。
在本申请的一个实施例中,基于所述待升级固件的类型,制作与所述待升级固件的类型相对应的升级文件,包括:
当所述待升级固件的类型为开源固件时,则制作所述待升级固件的从当前版本往升级版本更新的补丁文件作为所述升级文件,
当所述待升级固件的类型是私有固件时,则将所述升级版本作为私有固件的升级文件。
在本申请的一个实施例中,制作所述待升级固件的从当前版本往升级版本更新的补丁文件作为所述升级文件,包括:
编译所述升级版本的固件源代码,以得到与所述升级版本相对应的第二中间包;根据所述第一中间包中与所述待升级固件对应的固件和所述第二中间包中与所述待升级固件对应的固件,采用差分算法制作所述补丁文件。
在本申请的一个实施例中,对所述升级文件进行编译,以得到固件升级包,包括:
调用做包脚本编译所述补丁文件与所述升级版本以得到所述固件升级包。
根据本申请另一方面,提供一种发布升级包的方法,应用于终端,所述终端包括待升级固件,所述方法包括:
接收固件升级包;
获取所述固件升级包中的每个待升级固件对应的升级文件,所述固件升级包中包括开源固件的升级文件和私有固件的升级文件;
根据所述升级文件的类型,对所述终端中对应的待升级固件进行升级。
在本申请的一个实施例中,根据所述升级文件的类型,对所述终端中对应的待升级固件进行升级,包括:
确定所述升级文件是否为补丁文件,所述补丁文件为采用差分算法制作的所述开源固件的升级文件;
当所述升级文件的类型是补丁文件时,则读取所述补丁文件,采用合补丁算法生成开源固件升级数据,将所述开源固件升级数据写入所述待升级固件的当前版本的固件源代码中,所述合补丁算法与所述差分算法相对应;
当所述升级文件不是补丁文件时,则直接读取所述升级文件中的私有固件的升级文件,将所述私有固件的升级文件写入所述待升级固件中。
在本申请的一个实施例中,根据所述升级文件的类型,对所述终端中对应的固件进行升级之后,所述方法还包括:
重新启动所述终端,以使升级后的所述待升级固件生效。
根据本申请另一方面,提供一种服务器,所述服务器包括:
存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时,使得所述处理器执行如上所述的发布升级包的方法。
根据本申请另一方面,提供一种终端,所述终端包括:
存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时,使得所述处理器执行前述的发布升级包的方法。
根据本申请再一方面,提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序在被处理器运行时使得所述处理器执行上述发布升级包的方法。
根据本申请的本申请的发布升级包的方法、服务器、终端和存储介质。所述方法通过制作与待升级固件的类型相对应的固件升级包,然后向终端发送所述固件升级包,以供所述终端根据所述固件升级包中的升级文件对所述待升级固件进行升级,一方面可以避免采用补丁文件更新固件时,由于软件bug导致私有固件升级失败进而设备无法启动的问题,另一方面,采用本申请涉及的FOTA升级包,其体积比全量FOTA升级包小很多,这样就同时具备了全量FOTA升级包和差分FOTA升级包的优点。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1示出传统技术的差分FOTA升级包的制作方法的示意性流程图;
图2示出根据本申请实施例的发布升级包的方法的示意性流程图;
图3示出根据本申请实施例的发布升级包的方法的示意性流程图;
图4示出根据本申请实施例的发布升级包的方法的示意性流程图;
图5示出根据本申请实施例的发布升级包的方法的示意性流程图;
图6示出根据本申请实施例的服务器的示意性框图;
图7示出根据本申请实施例的终端的示意性框图。
具体实施方式
为了使得本申请的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。基于本申请中描述的本申请实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本申请的保护范围之内。
对于安卓(Android)系统,需要升级的固件,可以分为两种:一是Android系统自身的系统固件,本文简称为开源固件;第二种是芯片供应商提供的私有固件,本文简称为私有固件。开源固件大小通常较大,私有固件大小通常较小。
针对安装有Android系统的终端,目前常见的制作FOTA升级包的技术方案有两种:
1.制作全量FOTA升级包:这种方案直接选择要升级版本的开源固件和私有固件,作为全量FOTA升级包的升级固件;
2.制作差分FOTA升级包:如图1所示,制作差分FOTA升级包来发布升级包的方法100包括以下步骤:S101,获取目标固件的当前版本的目标文件以及升级版本的目标文件;S102,确定当前版本的目标文件和升级版本的目标文件中存在差异的差异目标文件;S103,对差异目标文件进行差异分析,分别得到当前版本和升级版本的差异信息;S104,根据差异信息生成差分升级包。
这种方案会先选择设备当前版本的开源固件和私有固件,以及要升级版本的开源固件和私有固件,然后利用差分算法,对每一个固件,用设备当前版本的固件和要升级版本的固件做出一个补丁文件。对所有固件做出的补丁文件作为差分FOTA升级包的升级固件。在升级时,从设备当前版本的系统中读取出当前版本固件,结合差分FOTA升级包中的补丁,用与差分算法对应的打补丁算法就可以合成出要升级版本的系统固件。
但是在第一种方案中,因为全量FOTA升级包直接集成要升级版本的所有固件,体积比较大。而第二种方案中,由于差分算法通过软件代码实现,而软件代码可能存在潜在的bug,这可能导致采用差分算法做出的补丁,在升级时使固件升级失败。如果在私有固件升级失败,由于私有固件是由特定的芯片供应商提供的,具有特定性,这样就会导致设备无法启动。
基于前述的技术问题,本申请提供了一种发布升级包的方法,应用于服务器端,所述方法包括:确定待升级固件的类型,所述类型包括开源固件和私有固件;基于所述待升级固件的类型,制作与所述待升级固件的类型相对应的升级文件;对所述升级文件进行编译,以得到固件升级包;向终端发送所述固件升级包,以供所述终端根据所述固件升级对所述待升级固件进行升级。本申请的发布升级包的方法通过制作与待升级固件的类型相对应的固件升级包,然后向终端发送所述固件升级包,以供所述终端根据所述固件升级包中的升级文件对所述待升级固件进行升级,一方面可以避免采用补丁文件更新固件时,由于软件bug导致私有固件升级失败进而设备无法启动的问题,另一方面,采用本申请涉及的FOTA升级包,其体积比全量FOTA升级包小很多,这样就同时具备了全量FOTA升级包和差分FOTA升级包的优点。
下面结合附图来详细描述根据本申请实施例的发布升级包的方法的方案。在不冲突的前提下,本申请的各个实施例的特征可以相互结合。
图2示出根据本申请实施例的发布升级包的方法的示意性流程图;如图2所示,根据本申请实施例的发布升级包的方法200可以包括如下步骤S201、步骤S202、步骤S203和步骤S204:
在步骤S201,确定待升级固件的类型。
在本申请的一个实施例中,其中所述待升级固件的类型包括开源固件或私有固件。
其中,确定所述待升级固件的类型,包括:步骤A1,编译所述待升级固件的当前版本的固件源代码,得到与所述当前版本相对应的第一中间包;步骤A2,,将所述第一中间包中的所有固件名称存储至数组;步骤A3,删除所述第一中间包中的私有固件;从所述数组中取出任一目标固件名称,判断所述第一中间包中是否存在与所述目标固件名称对应的固件,如果存在,则确定所述目标固件为开源固件,如果不存在,则确定所述目标固件为私有固件。
其中,所述第一中间包包括目录结构,所述目录结构包括所述开源固件和私有固件的名称。
相应地,所述删除所述第一中间包中的私有固件,包括:步骤B1,将所述第一中间包中的私有固件保存在第一目录、开源固件保存在第二目录;步骤B2,从所述数组中取出所述待定固件名称,判断所述第一目录是否存在所述待定固件名称;步骤B3,若存在,则从所述第一中间包中删除所述目标固件,重复判断直到所述第一中间包仅保留所述开源固件。
这里第一中间包是个压缩包文件,里面包含了当前版本每个升级固件的所有数据和信息。其中开源固件保存在压缩包里的IMAGES目录,私有固件保存在压缩包里的RADIO目录,二者共同存储在第一中间包里面的META\ab_partitions.txt文件中,其保存了所有开源固件和私有固件的名称。
在具体实施时,会读取当前版本的第一中间包的META\ab_partitions.txt文件中所有固件名称,保存到数组partitions中。然后从partitions数组中取出一个固件名称,对于私有固件,在当前版本的第一中间包的RADIO下用这个固件名称查找是否存在这个固件,如果能找到,说明这个固件就是私有固件,这时将当前版本的第一中间包的RADIO下的这个固件删除。将partitions数组处理完后,当前版本的第一中间包中就只包含当前版本的开源固件了。
在步骤S202,基于所述待升级固件的类型,制作与所述待升级固件的类型相对应的升级文件。
在本申请的一个实施例中,基于所述待升级固件的类型,制作与所述待升级固件的类型相对应的升级文件,包括:步骤C1,当所述待升级固件的类型为开源固件时,则制作所述待升级固件的从当前版本往升级版本更新的补丁文件作为所述升级文件;步骤C2,当所述待升级固件的类型是私有固件时,则将所述升级版本作为私有固件的升级文件。
本实施例可以应用于服务器端或云服务器端。具体地,可以由云服务器端根据终端的待升级固件的类型,制作与待升级固件的类型相对应的固件升级包,然后终端通过FOTA技术将固件升级包下载到终端,进行安装。
在本申请的实施例中,对于安装有安卓系统的终端来说,固件包括两种类型,一种是开源固件,另一种是私有固件。当待升级固件的类型不是开源固件时,说明待升级固件是私有固件,这时可直接将其升级版本的固件作为私有固件升级包。然后将补丁文件与私有固件升级包采用做包脚本进行编译,生成最终的固件升级包。
在本申请中,制作基于FOTA技术的固件升级包时,会区分固件属于开源固件还是私有固件。对于私有固件,选择要升级版本的私有固件,作为FOTA固件升级包的私有升级固件。对于开源固件,选择设备当前版本的开源固件,以及要升级版本的开源固件,然后利用差分算法做出补丁文件,作为FOTA固件升级包的开源升级固件。
与传统技术相比,本申请的区别在于制作FOTA固件升级包时,对开源固件和私有固件不统一使用一种方案处理,而是结合全量和差分FOTA升级包的制作方式来分别处理开源固件和私有固件。这样一方面可以避免用打补丁算法更新私有固件时,由于软件bug导致私有固件更新失败进而设备无法启动的问题,另一方面做出的FOTA固件升级包,其体积也仍然比全量FOTA升级包小很多,这样就同时具备了全量FOTA升级包和差分FOTA升级包的优点。
在一个具体的示例中,制作所述待升级固件的从当前版本往升级版本更新的补丁文件作为所述升级文件,包括:步骤D1,编译所述升级版本的固件源代码,以得到与所述升级版本相对应的第二中间包;步骤D2,根据所述第一中间包中与所述待升级固件对应的固件和所述第二中间包中与所述待升级固件对应的固件,采用差分算法制作所述补丁文件。
其中,所述第二中间包包括所述升级版本对应的固件的所有数据和信息。
本申请在接下来的步骤中,做包脚本会从partitions数组中取出一个固件名称,判断当前版本的第一中间包中是否存在这个固件。如果存在,说明这个固件是开源固件,就从升级版本的第二中间包和当前版本的第一中间包中都取出这个固件,利用差分算法做出这个固件从当前版本往升级版本更新的补丁文件,将它作为Android系统FOTA固件升级包的升级文件编译到FOTA升级包里面。如果不存在,则说明这个固件是私有固件,就从升级版本中间包中取出这个固件,将它作为Android系统FOTA固件升级包的升级文件编译到FOTA升级包里面。
步骤S203,对所述补丁文件与所述私有固件的升级文件进行编译,以得到固件升级包。
其中,对所述补丁文件与所述私有固件的升级文件进行编译,以得到固件升级包,包括:调用做包脚本编译所述补丁文件与所述私有固件升级包以得到所述固件升级包。
步骤S204,向终端发送所述固件升级包,以供所述终端根据所述固件升级包中的升级文件对所述待升级固件进行升级。
本申请将partitions数组处理完后,就会每个要升级的固件都做了处理,这样生成的Android系统FOTA固件升级包中就包括了每个固件的升级文件。然后后再把FOTA固件升级包拷贝到终端上,在升级时,终端上的系统会从FOTA固件升级包中取出每个固件的升级文件进行安装。
下面将结合图3对本申请的发明构思进行进一步的阐述。
如图3所示,本申请实施例的发布升级包的方法300可以包括:
S301,获取所有升级固件当前版本的文件以及要升级版本的文件;
S302,对每一个固件,判断是开源固件还是私有固件;
S303a,对开源固件,根据当前版本的文件以及要升级版本的文件,利用差分算法做出补丁文件,作为升级文件;
S303b,对私有固件,选择这个固件要升级版本的文件,作为升级文件;
S304,用上述选择的升级文件组成差分包。
本申请的发布升级包的方法通过制作与待升级固件的类型相对应的固件升级包,然后向终端发送所述固件升级包,以供所述终端根据所述固件升级包中的升级文件对所述待升级固件进行升级,一方面可以避免采用补丁文件更新固件时,由于软件bug导致私有固件升级失败进而设备无法启动的问题,另一方面,采用本申请涉及的FOTA升级包,其体积比全量FOTA升级包小很多,这样就同时具备了全量FOTA升级包和差分FOTA升级包的优点。
图4示出根据本申请实施例的发布升级包的方法的示意性流程图;如图4所示,根据本申请实施例的发布升级包的方法400可以包括如下步骤S401、步骤S402和步骤S403:
步骤S401,接收固件升级包;
步骤S402,获取所述固件升级包中的每个待升级固件对应的升级文件,所述固件升级包中包括开源固件的升级文件和私有固件的升级文件;
步骤S403,根据所述升级文件的类型,对所述终端中对应的待升级固件进行升级。
在本申请的一个实施例中,根据所述升级文件的类型,对所述终端中对应的待升级固件进行升级,包括:步骤C1,确定所述升级文件是否为补丁文件,所述补丁文件为采用差分算法制作的所述开源固件的升级文件;步骤C2,当所述升级文件的类型是补丁文件时,则读取所述补丁文件,采用合补丁算法生成开源固件升级数据,将所述开源固件升级数据写入所述待升级固件的当前版本的固件源代码中,所述合补丁算法与所述差分算法相对应;步骤C3,当所述升级文件不是补丁文件时,则直接读取所述升级文件中的私有固件的升级文件,将所述私有固件的升级文件写入所述待升级固件中。
在本申请的一个实施例中,在根据所述升级文件的类型,对所述终端中对应的固件进行升级之后,还包括:重新启动所述终端,以使升级后的所述待升级固件生效。
在采用本申请的方法对固件升级时,终端可以从FOTA升级包中取出每个固件的升级文件.,并判断每个升级文件是不是补丁文件。如果升级文件是补丁文件,就从设备当前版本的系统中读出当前版本的固件的数据,结合FOTA固件升级包中的补丁文件,用与差分算法对应的合补丁算法生成这个固件在升级版本上的数据,然后把这些数据写入到当前版本的系统中。如果升级文件不是补丁文件,就直接读取出这个升级文件的数据,然后把这些数据写入到A版本系统中。
最后将FOTA固件升级包中每个固件的升级文件处理完后,当前版本系统中每个固件的数据已经与升级版本上固件的数据完全相同,这时再重启终端,重启后终端上的系统就成为了升级版本。
下面将结合图5,对本申请的技术方案的一个实施例进行阐述。
在本实施例中,终端可以是一种设备,如手机、平板电脑等;以下A版本指示上文中的当前版本,B版本指示上文中的升级版本。如图5所示,本申请实施例的发布升级包的方法500可以包括:
S501,编译A版本的源代码,得到一个A版本的中间包;
S502,编译B版本的源代码,得到一个B版本的中间包;
S503,根据A版本和B版本的中间包,调用做包脚本,开始编译差分升级包;
S504,读取A版本中间包的META/ab_partitions文件中所有固件名称,保存到数据组partitions中,将A版本中间包中的私有固件删除;
S505,根据B版本中间包跟处理后的A版本中间包,首先从partitions数组中取出一个固件名,判断版本中间包是否存在这个固件;如果存在,执行步骤706a;如果不存在,执行步骤706b;
S506a,从B版本中间包和A版本中间包中都取出这个固件,利用差分算法做出这个固件从A版本往B版本更新的补丁文件,将它作为Android系统差分升级包的升级文件编译到差分包里面;
S506b,从B版本中间包取出这个固件,将它作为Android系统差分升级包的升级文件编译到差分包里面;
S507,partitions数组处理完后,生成的Android系统差分升级包中就包括了每个固件的升级文件;
S505,把Android系统差分升级包拷贝到设备上,设备上的系统会从Android系统差分包中取出每个固件的升级文件,判断每个升级文件是不是补丁文件;如果是则执行步骤709a,否则执行步骤709b;
S509a,从设备当前A版本的系统中读出A版本这个固件的数据,结合Android系统差分升级包中的补丁,用与差分算法对应的合补丁算法生成这个固件在B版本上的数据,然后把这些数据写入到A版本系统中;
S509b,直接读取出这个升级文件的数据,然后把这些数据写入到A版本系统中;
S510,重启设备,重启后设备上的系统就成为了B版本。
下面结合图6对本申请的服务器进行描述,其中,图6示出根据本申请实施例的服务器的示意性框图。
如图6所示,服务器600包括:一个或多个存储器601和一个或多个处理器602,所述存储器601上存储有由所述处理器602运行的计算机程序,所述计算机程序在被所述处理器602运行时,使得所述处理器602执行如图2所述的发布升级包的方法。
服务器600可以是可以通过软件、硬件或者软硬件结合的方式实现发布升级包的方法的计算机设备的部分或者全部。
如图6所示,服务器600包括一个或多个存储器601、一个或多个处理器602、显示器(未示出)和通信接口等,这些组件通过总线系统和/或其它形式的连接机构(未示出)互连。应当注意,图6所示的服务器600的组件和结构只是示例性的,而非限制性的,根据需要,服务器600也可以具有其他组件和结构。
存储器601用于存储本申请方法运行过程中产生的各种数据和可执行程序指令,例如用于存储各种应用程序或实现各种具体功能的算法。可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
处理器602可以是中央处理单元(CPU)、图像处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以服务器600中的其它组件以执行期望的功能。
在一个示例中,服务器600还包括输出装置可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示装置、扬声器等中的一个或多个。
通信接口是可以是目前已知的任意通信协议的接口,例如有线接口或无线接口,其中,通信接口可以包括一个或者多个串口、USB接口、以太网端口、WiFi、有线网络、DVI接口,设备集成互联模块或其他适合的各种端口、接口,或者连接。
下面结合图7对本申请的终端进行描述,其中,图7示出根据本申请实施例的终端的示意性框图。
如图7所示,终端700包括:一个或多个存储器701和一个或多个处理器702,所述存储器701上存储有由所述处理器702运行的计算机程序,所述计算机程序在被所述处理器702运行时,使得所述处理器702执行如图4所述的发布升级包的方法。
终端700可以是可以通过软件、硬件或者软硬件结合的方式实现发布升级包的方法的计算机设备的部分或者全部。
如图7所示,终端700包括一个或多个存储器701、一个或多个处理器702、显示器(未示出)和通信接口等,这些组件通过总线系统和/或其它形式的连接机构(未示出)互连。应当注意,图7所示的终端700的组件和结构只是示例性的,而非限制性的,根据需要,终端700也可以具有其他组件和结构。
存储器701用于存储本申请方法运行过程中产生的各种数据和可执行程序指令,例如用于存储各种应用程序或实现各种具体功能的算法。可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
处理器702可以是中央处理单元(CPU)、图像处理单元(GPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以终端700中的其它组件以执行期望的功能。
在一个示例中,终端700还包括输出装置可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示装置、扬声器等中的一个或多个。
通信接口是可以是目前已知的任意通信协议的接口,例如有线接口或无线接口,其中,通信接口可以包括一个或者多个串口、USB接口、以太网端口、WiFi、有线网络、DVI接口,设备集成互联模块或其他适合的各种端口、接口,或者连接。
此外,根据本申请实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行如图2所示的或者如图4所示的发布升级包的方法的相应步骤。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。
本申请实施例的服务器、终端和存储介质,由于能够实现前述的发布升级包的方法,因此具有和前述的发布升级包的方法相同的优点。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本申请的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本申请的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本申请的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本申请的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的一些模块的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本申请的具体实施方式或对具体实施方式的说明,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以权利要求的保护范围为准。

Claims (12)

1.一种发布升级包的方法,其特征在于,应用于服务器端,所述方法包括:
确定待升级固件的类型,所述类型包括开源固件和私有固件;
基于所述待升级固件的类型,制作与所述待升级固件的类型相对应的升级文件;
对所述升级文件进行编译,以得到固件升级包;
向终端发送所述固件升级包,以供所述终端根据所述固件升级对所述待升级固件进行升级。
2.如权利要求1所述的方法,其特征在于,确定所述待升级固件的类型,包括:
编译所述待升级固件的当前版本的固件源代码,得到与所述当前版本相对应的第一中间包;
将所述第一中间包中的所有固件名称存储至数组;
删除所述第一中间包中的私有固件;从所述数组中取出任一目标固件名称,判断所述第一中间包中是否存在与所述目标固件名称对应的固件,如果存在,则确定所述目标固件为开源固件,如果不存在,则确定所述目标固件为私有固件。
3.如权利要求2所述的方法,其特征在于,所述删除所述第一中间包中的私有固件,包括:
将所述第一中间包中的私有固件保存在第一目录、开源固件保存在第二目录;
从所述数组中取出所述待定固件名称,判断所述第一目录是否存在所述待定固件名称;
若存在,则从所述第一中间包中删除所述目标固件,重复判断直到所述第一中间包仅保留所述开源固件。
4.如权利要求2所述的方法,其特征在于,基于所述待升级固件的类型,制作与所述待升级固件的类型相对应的升级文件,包括:
当所述待升级固件的类型为开源固件时,则制作所述待升级固件的从当前版本往升级版本更新的补丁文件作为所述升级文件,
当所述待升级固件的类型是私有固件时,则将所述升级版本作为私有固件的升级文件。
5.如权利要求4所述的方法,其特征在于,制作所述待升级固件的从当前版本往升级版本更新的补丁文件作为所述升级文件,包括:
编译所述升级版本的固件源代码,以得到与所述升级版本相对应的第二中间包;根据所述第一中间包中与所述待升级固件对应的固件和所述第二中间包中与所述待升级固件对应的固件,采用差分算法制作所述补丁文件。
6.如权利要求4所述的方法,其特征在于,对所述升级文件进行编译,以得到固件升级包,包括:
调用做包脚本编译所述补丁文件与所述升级版本以得到所述固件升级包。
7.一种发布升级包的方法,其特征在于,应用于终端,所述终端包括待升级固件,所述方法包括:
接收固件升级包;
获取所述固件升级包中的每个待升级固件对应的升级文件,所述固件升级包中包括开源固件的升级文件和私有固件的升级文件;
根据所述升级文件的类型,对所述终端中对应的待升级固件进行升级。
8.如权利要求7所述的方法,其特征在于,根据所述升级文件的类型,对所述终端中对应的待升级固件进行升级,包括:
确定所述升级文件是否为补丁文件,所述补丁文件为采用差分算法制作的所述开源固件的升级文件;
当所述升级文件的类型是补丁文件时,则读取所述补丁文件,采用合补丁算法生成开源固件升级数据,将所述开源固件升级数据写入所述待升级固件的当前版本的固件源代码中,所述合补丁算法与所述差分算法相对应;
当所述升级文件不是补丁文件时,则直接读取所述升级文件中的私有固件的升级文件,将所述私有固件的升级文件写入所述待升级固件中。
9.如权利要求7所述的方法,其特征在于,根据所述升级文件的类型,对所述终端中对应的固件进行升级之后,所述方法还包括:
重新启动所述终端,以使升级后的所述待升级固件生效。
10.一种服务器,其特征在于,所述服务器包括:存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时,使得所述处理器执行如权利要求1至6任一项所述的发布升级包的方法。
11.一种终端,其特征在于,所述终端包括:
存储器和处理器,所述存储器上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时,使得所述处理器执行如权利要求7至9任一项所述的发布升级包的方法。
12.一种存储介质,其特征在于,所述存储介质上存储有计算机程序;所述计算机程序在被处理器运行时使得所述处理器执行如权利要求1至6任一项所述的发布升级包的方法;或者
所述计算机程序在被处理器运行时使得所述处理器执行如权利要求7至9任一项所述的发布升级包的方法。
CN202210907516.9A 2022-07-29 2022-07-29 发布升级包的方法、服务器、终端和存储介质 Pending CN117527779A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210907516.9A CN117527779A (zh) 2022-07-29 2022-07-29 发布升级包的方法、服务器、终端和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210907516.9A CN117527779A (zh) 2022-07-29 2022-07-29 发布升级包的方法、服务器、终端和存储介质

Publications (1)

Publication Number Publication Date
CN117527779A true CN117527779A (zh) 2024-02-06

Family

ID=89746325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210907516.9A Pending CN117527779A (zh) 2022-07-29 2022-07-29 发布升级包的方法、服务器、终端和存储介质

Country Status (1)

Country Link
CN (1) CN117527779A (zh)

Similar Documents

Publication Publication Date Title
US8539471B2 (en) Updating firmware of an electronic device
US7644406B2 (en) Update system capable of updating software across multiple FLASH chips
KR100584338B1 (ko) 소프트웨어 업데이트 방법 및 시스템
US7275153B2 (en) Booting and boot code update system using boot strapper code to select between a loader and a duplicate backup loader
US8196130B2 (en) Tri-phase boot process in electronic devices
CN107506221B (zh) 应用程序升级方法、装置及设备
US20080216066A1 (en) Program upgrade system and method for ota-capable mobile terminal
CN104991793A (zh) 一种用于应用程序分包的方法、装置以及系统
WO2019062703A1 (zh) 升级方法、嵌入式系统
CN112416406B (zh) 终端设备升级方法、装置、终端设备和介质
WO2021120327A1 (zh) 一种固件更新方法、装置、耳机及计算机可读存储介质
CN113821235B (zh) 操作系统数据更新方法、设备、存储介质及程序产品
CN106293849B (zh) 一种应用更新方法和终端
CN106951284B (zh) 基于安卓系统应用的用户界面升级方法、装置及智能终端
WO2015154538A1 (zh) 存储器的启动方法及装置
CN109753299A (zh) 一种系统升级方法、装置以及计算机存储介质
TW201621647A (zh) 作業系統更新方法
WO2017000567A1 (zh) 一种实现bootrom升级的方法及装置
KR100729525B1 (ko) 펌웨어 업데이트 방법 및 시스템
US9367482B2 (en) Systems and methods to extend ROM functionality
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
CN116594639A (zh) 系统安装包的管理方法、设备、存储介质及程序产品
CN112667265A (zh) 一种引导程序更新方法及装置
CN112860291A (zh) 固件升级方法及装置
CN113094077A (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