一种配置文件的升级方法和设备与流程

文档序号:15346467发布日期:2018-09-04 22:49阅读:170来源:国知局

本发明涉及计算机技术领域,特别涉及一种配置文件的升级方法和设备。



背景技术:

随着计算机技术的不断发展,为了完善一些设备的功能,增强设备的稳定性,修补设备的漏洞,通常需要对设备的配置文件进行升级。

现有技术中,对配置文件进行升级时,通常采用的方法是服务器远程将升级的配置文件发送给设备;设备接收到配置升级文件后,用配置升级文件替换设备当前使用的配置文件,然后重启设备,设备将更新后的配置文件加载到缓存中。

配置文件升级时,由于设备当前使用的配置文件中包括功能配置信息和用户配置的信息,而设备功能配置信息和用户配置的信息是不需要更新的,现有技术中将设备当前使用的配置文件更新,会导致功能配置信息和用户配置的信息丢失,这样就需要用户重新进行配置,服务器重新向设备下发设备功能配置信息。

由于用户需要重新进行配置,增加了配置的繁琐程度;由于服务器需要为每个设备重新下发功能配置信息,若大范围升级,需要升级的设备的数量巨大,服务器会下发大量的功能配置信息,从而会增加服务器的压力。

因此,目前配置文件升级时会丢失功能配置信息和用户配置的信息。



技术实现要素:

本发明提供一种配置文件升级的方法和设备,用以解决现有技术中存在的配置文件升级时,功能配置信息和用户配置的信息丢失的问题。

第一方面,本发明实施例提供的一种配置文件升级的方法包括:

将所接收的系统配置升级文件与本地存储的系统配置本地文件进行比对,生成第一差异文件;

根据所述第一差异文件与系统配置当前文件,生成系统配置目标文件,其中所述系统配置当前文件包括用户配置信息、功能配置信息和所述系统配置本地文件中的信息;

重启操作并加载所述系统配置目标文件。

第二方面,本发明实施例还提供一种配置文件升级的设备,其特征在于,该设备包括对比模块,合成模块和操作模块:

对比模块,用于将接收的系统配置文件与本地存储的系统配置本地文件进行比对,生成第一差异文件;

合成模块,用于根据所述第一差异文件与系统配置当前文件,生成系统配置目标文件,其中所述系统配置当前文件包括用户配置信息、功能配置信息和所述系统配置本地文件中的信息;

操作模块,用于重启操作并加载所述系统配置目标文件。

本发明实施例将所接收的系统配置升级文件与本地存储的系统配置本地文件进行比对,生成第一差异文件;根据第一差异文件与系统配置当前文件,生成系统配置目标文件,其中所述系统配置当前文件包括用户配置信息、功能配置信息和所述系统配置本地文件中的信息;设备重启,并在重启后加载系统配置目标文件。由以上内容可知,本发明实施例在对设备的配置文件进行升级时,根据将系统配置升级文件与本地存储的系统配置本地文件进行比对生成第一差异文件,这里的第一差异文件就是系统配置升级文件和本地存储的系统配置本地文件的差异内容,然后根据第一差异文件和系统配置当前文件,形成系统配置目标文件,使得设备使用系统配置目标文件重启,而系统配置目标文件中包括用户配置信息、功能配置信息、本地存储的系统配置本地文件中的信息以及第一差异文件中的信息,从而在进行配置文件升级时可以保留用户配置信息和功能配置信息,减少了用户配置的繁琐程度,同时也减小了服务器的压力。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例配置文件进行升级的方法流程示意图;

图2为本发明实施例配置文件进行升级的方法的完整流程示意图;

图3为本发明实施例第一种配置文件进行升级的设备的结构示意图;

图4为本发明实施例第二种配置文件进行升级的设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

下面结合说明书附图对本发明实施例做进一步详细描述。

本发明实施例提供的一种配置文件升级方法,如图1所示,具体包括以下步骤:

s100、将所接收的系统配置升级文件与本地存储的系统配置本地文件进行比对,生成第一差异文件;

s101、根据所述第一差异文件与系统配置当前文件,生成系统配置目标文件,其中所述系统配置当前文件包括用户配置信息、功能配置信息和所述系统配置本地文件中的信息;

s102、重启操作并加载所述系统配置目标文件。

本发明实施例将所接收的系统配置升级文件与本地存储的系统配置本地文件进行比对,生成第一差异文件;根据第一差异文件与系统配置当前文件,生成系统配置目标文件,其中所述系统配置当前文件包括用户配置信息、功能配置信息和所述系统配置本地文件中的信息;设备重启,并在重启后加载系统配置目标文件。由以上内容可知,本发明实施例在对设备的配置文件进行升级时,根据将所接收的系统配置升级文件与本地存储的系统配置本地文件进行比对生成第一差异文件,这里的第一差异文件就是系统配置升级文件和系统配置本地文件的差异内容,然后根据第一差异文件和系统配置当前文件,形成系统配置目标文件,使得设备使用系统配置目标文件重启,而系统配置目标文件中包括用户配置信息、功能配置信息、本地存储的系统配置本地文件中的信息以及第一差异文件中的信息,从而在进行配置文件升级时可以保留用户配置信息和功能配置信息,减少了用户配置的繁琐程度,同时也减小了服务器的压力。

其中,系统配置升级文件可以是服务器远程发送给设备的,也可以是设备本地生成的,比如可以通过web网页生成系统配置升级文件。若系统配置升级文件是服务器远程发送的,则为远程升级,若系统配置升级文件是本地生成的,则为本地升级。

用户配置信息包括用户需要的一些本地配置信息,比如程序项目、屏幕颜色、网络连接、打印机连接、鼠标设置等。

功能配置信息包括用户的需求配置信息,比如对于一些设备,有的用户需要ip电话功能,有的则不需要,此时ip电话功能即为设备的功能配置文件。

设备使用的系统配置当前文件包含用户配置信息、功能配置信息和所述本地存储的系统配置本地文件中的信息。

如果需要修改用户配置信息,则直接修改系统配置当前文件中的用户配置信息;

如果需要修改功能配置信息,则直接修改系统配置当前文件中的功能配置信息;

如果需要修改系统配置本地文件,现有技术会直接用收到的系统配置升级文件替换使用的系统配置当前文件,从而造成用户配置信息和功能配置信息丢失。

而本发明实施例是用根据收到的系统配置升级文件得到的第一差异文件与使用的系统配置当前文件进行合成,从而在系统配置文件升级的同时还能够保留用户配置信息和功能配置信息。

本发明实施例中设备可以是任何可以通过配置文件进行升级的设备,比如onu(opticalnetworkonit,光网络单元)设备、智能电视等。

本发明实施例可以应用在mtk(mediatek,联发科技)平台,通过在mtk独立分区保留配置文件的框架上来实现配置文件的升级,也可以应用在其他平台,比如博通平台。

在实施中,系统配置升级文件、本地存储的系统配置本地文件、系统配置当前文件、系统配置目标文件以及一些差异文件要存储在不同的位置,这些位置可以是不同的分区,也可以是相同的分区中不同的数据块,只要和存储操作系统的分区不在同一个分区就可以,因为基于安全考虑,嵌入式的操作系统一半在只读分区中,存储操作系统的那部分空间不能改动,为只读分区,而配置文件升级时,需要存储在读写分区中,所以配置文件升级时,保存文件的分区不能和操作系统在同一个分区。

这里的分区是内核基于flash(闪光)物理地址划定的界限,和pc(personalcomputer,个人计算机)的分区不同,pc的分区一般是基于扇区的。

本发明实施例以系统配置升级文件、系统配置本地文件、系统配置当前文件、系统配置目标文件以及一些差异文件保存在不同的分区为例进行说明。

以下对系统配置升级文件、系统配置本地文件、系统配置当前文件,系统配置目标文件以及一些差异文件保存的不同分区进行定义。

system(系统)分区:存储系统配置升级文件,权限为只读;

config_0(配置_0)分区:存储系统配置当前文件或者系统配置目标文件,权限为读写;

config_1(配置_1)分区:存储系统配置当前文件或者系统配置目标文件,权限为读写;

其中config_0分区和config_1分区互为备份;

config_flag(配置_标志)分区:存储功能选择开关,用于选择开机配置文件的位置,权限为读写;

config_back(配置_倒退)分区:存储系统配置本地文件,权限为读写;

tmp(temporary,临时)分区:存储中间生成的文件,权限为读写。

本发明实施例的设备将系统配置升级文件与系统配置本地文件进行比对,生成第一差异文件。

这里的比对生成的第一差异文件包括系统配置升级文件和系统配置本地文件之间的差异内容。

在实施中,比对的方式有很多,下面以设备为onu设备为例:

onu设备接收到系统配置升级文件后会将系统配置升级文件存储到system分区中;

在进行比对时,将system分区中的系统配置升级文件拷贝到tmp/config_new中;

将config_back分区中保存的系统配置本地文件拷贝到tmp/config_old中;

然后使用比对工具对这两个文件进行比对:

比如使用diff(比较文本文件)工具运行以下命令实现对这两个文件的比对:

diff-uconfig_newconfig_old>patch

运用diff工具生成的patch文件即为第一差异文件,之后可以将patch文件保存在tmp/patch中。

由于生成的第一差异文件有可能格式会有问题,所以在使用第一差异文件之前可以对第一差异文件的格式进行验证。

一种可行的验证方式为:调用一个生成/检验文件校验和的接口。

若第一差异文件的格式不正确,说明系统配置升级文件有问题,此时需要退出文件升级系统;

若第一差异文件的格式正确,说明系统配置升级文件没有问题,则将第一差异文件和系统配置本地文件进行合并。

其中,若设备为onu设备,在检验第一差异文件的格式正确后,删除tmp/config_new中的系统配置升级文件,以及删除tmp/config_old中的系统配置本地文件。

可选的,根据所述第一差异文件与系统配置当前文件,生成系统配置目标文件。

这里将第一差异文件和系统配置本地文件合并,实际是将差异文件和包括用户配置信息、功能配置信息以及系统配置本地文件中的信息的系统配置当前文件合并。

以设备为onu设备为例,具体做法如下:

假设config_0分区中存储的是系统配置当前文件;

进行合并时,将config_0分区中存储的系统配置当前文件拷贝到tmp/config_old中;

第一差异文件patch文件保存在tmp/patch中;

然后使用合并工具对这两个文件进行合并:

比如使用patch(补丁)合并工具运行以下命令实现对这两个文件的合并:

$patch<patch;

运用patch工具生成系统配置目标文件,可以将系统配置目标文件保存在tmp/config_new中。

由于生成的系统配置目标文件有可能格式会有问题,所以在使用系统配置目标文件之前要对系统配置目标文件的格式进行验证。若对系统配置目标文件格式验证失败,说明系统配置目标文件格式有问题,则需要退出配置文件升级系统。

若对系统配置目标文件格式验证成功,说明系统配置目标文件格式没有问题,则将系统配置目标文件存储到config_1分区中。

可选的,通过下列方式对所述系统配置目标文件的格式进行验证:

将所述系统配置目标文件和系统配置当前文件进行对比,生成第二差异文件;

将所述第一差异文件和所述第二差异文件进行对比,生成第三差异文件;

判断所述第三差异文件内容是否为空,如果是,则所述系统配置目标文件验证通过,否则验证失败。

这里的第三差异文件是第一差异文件和第二差异文件之间的差异内容。

其中,第一差异文件是系统配置升级文件和系统配置本地文件之间的差异内容;

第二差异文件是系统配置目标文件与系统配置当前文件之间的差异内容,其中系统配置目标文件是系统配置当前文件与第一差异文件合并而成的文件。

因为系统配置目标文件是由第一差异文件和系统配置当前文件合并而成的,将系统配置目标文件和系统配置当前文件进行比对生成第二差异文件,实际上第一差异文件和第二差异文件是一样的,也就是第一差异文件和第二差异文件对比内容应该为空。

如果第一差异文件和第二差异文件的对比内容为空,也就是第三差异文件为空,则说明系统配置目标文件格式正确;

如果第一差异文件和第二差异文件的对比内容不为空,也就是第三差异文件不为空,则说明系统配置目标文件格式不正确。

下面以onu设备为例,对系统配置目标文件的格式进行验证的具体做法如下:

系统配置当前文件存储在tmp/config_old中;

系统配置目标文件存储在tmp/config_new中;

然后使用比对工具对这两个文件进行比对:

比如使用diff工具运行以下命令实现对这两个文件的比对:

diff-uconfig_newconfig_old>patch_check

运用diff工具生成的patch_check文件即为第二差异文件,之后可以将patch_check文件保存在tmp/patch_check中。

系统配置目标文件和系统配置当前文件进行比对生成第二差异文件patch_check后,将第二差异文件和第一差异文件进行比对,第一差异文件为系统配置升级文件和系统配置本地文件比对生成的文件。

第一差异文件保存在tmp/patch中;

第二差异文件保存在tmp/patch_check中;

使用比对工具对这两个文件进行比对:

比如使用diff工具运行以下命令实现对这两个文件的比对:

diff-upatch_ccpatch>check

运用diff工具生成的check文件即为第三差异文件,若check文件为空,则验证通过,否则验证失败。

在对系统配置目标文件的格式验证通过后,就需要让设备加载系统配置目标文件。加载的方式就是需要重启设备。

在重启设备前需要对开机系统配置文件的读取位置修改为系统配置目标文件存储的位置,以实现设备重启后读取系统配置目标文件。

可选的,将所述系统配置目标文件存储到指示开机系统配置文件的读取位置的第一地址中。

设备加载系统配置目标文件,以onu设备为例,具体操作如下:

将tmp/config_new中存储的系统配置目标文件覆盖到config_1分区中,将config_flag分区中的功能选择开关config_flag由0变为1,设备重启。

功能选择开关config_flag为1时,设备重启时会加载config_1中的文件。

设备进行重启操作,并在重启后加载系统配置目标文件。

设备加载系统配置目标文件后,需要验证升级状态是否正常。

如果升级为远程升级,即系统配置升级文件是服务器发送给设备的,则设备可以在重启后向服务器发送升级验证消息。

设备判断在设定时长内是否能够接收到服务器返回的升级验证相应消息,如果接收到则确定升级状态正常,否则确定升级状态异常。

除了上面给出的发送消息验证的方式任何能够验证升级状态是否正常的方式都适用本发明实施例。

如果升级为本地升级,即系统配置升级文件是设备本地生成的,则需要维修人员检验升级状态是否正常,比如是否能够上网,各项功能是否能够正常运行等。

可选的,若所述加载所述系统配置目标文件后系统正常,则将所述系统配置本地文件替换为所述系统配置目标文件;否则将指示开机系统配置文件的读取位置修改为第二地址,并重启,其中所述第二地址中存储的文件为所述系统配置当前文件。

设备重启时需要加载配置文件,根据选择开关的不同,加载的配置文件不同,比如,功能选择开关config_flag为0时,设备重启时加载的是config_0分区中的配置文件,功能选择开关config_flag为1时,设备重启加载的是config_1分区中的配置文件。

假如设备当前使用的设备配置文件保存在config_0分区中,则配置文件进行升级时,第一差异文件和系统配置当前文件进行合并生成系统配置目标文件,并保存在config_1分区中,设备重启,功能选择开关config_flag由0变为1,设备加载config_1分区中的系统配置目标文件。

若配置文件升级成功,则功能选择开关config_flag处于1的状态不变,保证设备开机时加载的是config_1分区中的系统配置目标文件;

若配置文件升级失败,则功能选择开关config_flag由1变为0,设备重启,加载config_0分区中系统配置当前文件。

配置文件升级成功,后续再升级时,系统配置当前文件为config_1分区中保存的配置文件,系统配置升级文件和本地存储的系统配置本地文件进行比对生成第四差异文件,将第四差异文件和config_1分区中保存的当前使用的系统配置当前文件进行合并生成新的系统配置目标文件,将新的系统配置目标文件保存在config_0分区中,功能选择开关config_flag由1变为0,设备重启,加载config_0分区中的新的系统配置目标文件。

若配置文件升级成功,则功能选择开关config_flag处于0的状态不变,保证设备开机时加载的是config_0分区中的新的系统配置目标文件;

若配置文件升级失败,则功能选择开关config_flag由0变为1,设备重启,加载config_1分区中当前使用的系统配置当前文件。

若配置文件升级为远程升级,可以根据【tr069】协议进行操作,具体做法如下:

设备向服务器发送event“mdownload”(事件“m下载”)与event“transfercomplete”(事件“传输完成”)的报文;

在设定时长内服务器向设备返回event“transfercompleteresponse”(事件“传输完成回复”)的报文;

设定时长可以是200个周期,5分钟,也可以根据实际情况进行调整;

若设定时长内设备未接收服务器返回的event“transfercompleteresponse”报文,说明设备不在远程服务器控制范围内,则确定配置文件升级失败,需要加载升级前的系统配置当前文件。

若配置文件升级为本地升级,则生成系统配置目标文件后,设备加载系统配置目标文件重启并计时,维修人员大约在3-5分钟检测设备升级状态,确认设备升级状态良好,点击页面上的提交按钮,完成升级;若检测设备升级状态有问题,比如升级包有问题升级失败,或者显示升级正常,但是设备不能正常工作,则需要维修人员手动终止升级,设备终止升级后,自动加载升级前的设备配置文件,进行重启操作。

以onu设备为例,配置文件远程升级失败时将进行以下操作:

config_flag分区中的功能选择开关config_flag由1变为0;

config_0分区中存储的是设备升级前设备使用的系统配置当前文件;

设备重启,加载config_0分区中的设备升级前设备使用的系统配置当前文件。

也就是说,若配置文件升级失败,设备重启后加载的是升级前设备使用的系统配置当前文件,设备的配置文件未做改动。

若设定时长内设备接收到服务器返回的event“transfercompleteresponse”报文,说明设备在远程服务器控制范围内,则确定配置文件升级成功,需要加载系统配置目标文件。

确定升级成功后,以onu设备为例,具体做法如下:

将system分区中存储的系统配置升级文件覆盖config_back分区中存储的系统配置本地文件。

如图2所示,本发明实施例提供的一种配置文件升级的完整方法包括:

步骤200、将系统配置升级文件和本地存储的系统配置本地文件进行比对,生成第一差异文件;

步骤201、验证第一差异文件的格式是否正确,若正确,则执行步骤202,否则执行步骤209;

步骤202、将第一差异文件和系统配置当前文件进行合并,生成系统配置目标文件;

步骤203、将系统配置目标文件和系统配置当前文件进行比对,生成第二差异文件;

步骤204、将第一差异文件和第二差异文件进行比对,生成第三差异文件;

步骤205、检验第三差异文件是否为空,若为空,则执行步骤206,否则执行步骤209;

步骤206、进行重启后加载系统配置目标文件;

步骤207、判断升级状态是否正常,若正常,则执行步骤209,否则执行步骤208;

步骤208、重启后加载系统配置当前文件;

步骤209、退出配置文件升级系统。

基于同一发明构思,本发明实施例中还提供了一种配置文件升级的设备,由于该设备解决问题的原理与本发明实施例进行配置文件升级的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。

如图3所示,本发明实施例提供一种配置文件升级的设备,包括:至少一个处理单元300、以及至少一个存储单元301,其中,所述存储单元301存储有程序代码,当所述程序代码被所述处理单元300执行时,使得所述处理单元300执行下列过程:

将所接收的系统配置升级文件与本地存储的系统配置本地文件进行比对,生成第一差异文件;根据所述第一差异文件与系统配置当前文件,生成系统配置目标文件,其中所述系统配置当前文件包括用户配置信息、功能配置信息和所述系统配置本地文件中的信息;重启操作系统并加载所述系统配置目标文件。

可选的,所述处理单元300还用于:

生成系统配置目标文件后,对所述系统配置目标文件的格式进行验证通过。

可选的,所述处理单元300还用于:

通过下列方式对所述系统配置目标文件的格式进行验证:

将所述系统配置目标文件和系统配置当前文件进行对比,生成第二差异文件;将所述第一差异文件和所述第二差异文件进行对比,生成第三差异文件;判断所述第三差异文件内容是否为空,如果是,则所述系统配置目标文件验证通过,否则验证失败。

可选的,所述处理单元300还用于:

将所述所述系统配置目标文件存储指示开机系统配置文件的读取位置的第一地址中。

可选的,所述处理单元300还用于:

若所述加载所述系统配置目标文件后系统正常,则将所述系统配置本地文件替换为所述系统配置目标文件;否则将指示开机系统配置文件的读取位置修改为第二地址,并重启,其中所述第二地址中存储的文件为所述系统配置当前文件。

基于同一发明构思,本发明实施例中还提供了一种配置文件升级的设备,由于该设备解决问题的原理与本发明实施例进行配置文件升级的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。

如图4所示,本发明实施例提供一种配置文件升级的设备,包括对比模块400,,合成模块401和操作模块402:

对比模块400,用于将所接收的系统配置升级文件与本地存储的系统配置本地文件进行比对,生成第一差异文件;;

合成模块401,用于根据所述第一差异文件与系统配置当前文件,生成系统配置目标文件,其中所述系统配置当前文件包括用户配置信息、功能配置信息和所述系统配置本地文件中的信息;

操作模块402用于重启操作系统并加载所述系统配置目标文件。

可选的,所述合成模块401还用于:

在生成所述系统配置目标文件后,对所述系统配置目标文件的格式进行验证通过。

可选的,所述合成模块401还用于:

通过下列方式对所述系统配置目标文件的格式进行验证:

将所述系统配置目标文件和系统配置当前文件进行对比,生成第二差异文件;将所述第一差异文件和所述第二差异文件进行对比,生成第三差异文件;判断所述第三差异文件内容是否为空,如果是,则所述系统配置目标文件验证通过,否则验证失败。

可选的,所述操作模块402还用于:

将所述系统配置目标文件存储到指示开机系统配置文件的读取位置的第一地址中。

可选的,所述操作模块402还用于:

若所述加载所述系统配置目标文件后系统正常,则将所述系统配置本地文件替换为所述系统配置目标文件;否则将指示开机系统配置文件的读取位置修改为第二地址,并重启,其中所述第二地址中存储的文件为所述系统配置当前文件。

本发明实施例还提供一种计算机可读非易失性存储介质,包括程序代码,当所述程序代码在计算设备上运行时,所述程序代码用于使所述计算设备执行本发明实施例方法中配置文件进行升级的方法的步骤。

以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。

相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1