发明内容
为了解决现有技术的问题,本发明实施例提供了一种固件升级方法及装置。所述技术方案如下:
一方面,提供了一种固件升级方法,所述方法包括:
基于软件升级包,对软件进行升级,该软件升级包至少包括软件的固件FW配套关系描述文件、FW升级数据以及FW升级工具,该FW配套关系描述文件包含升级后的软件信息以及对应的FW版本号;
在对该软件升级成功后,获取当前FW的版本号;
根据该当前FW的版本号和升级后的软件信息,通过查询该FW配套关系描述文件,判断该当前FW版本与该升级后的软件是否符合配套关系;
当该当前FW版本与该升级后的软件不符合配套关系时,调用该FW升级数据和该FW升级工具对该当前FW进行升级。
在本发明的第一方面的第一种可能实现方式中,该软件升级包还包括指定硬件信息;
相应地,在对该软件升级成功后,获取该当前FW的版本号包括:
根据该指定硬件信息,判断当前电子设备中是否存在指定硬件,如果存在,获取该指定硬件对应FW的版本号。
在本发明的第一方面的第二种可能实现方式中,该FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件符合配套关系的FW版本号;或,该FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件不符合配套关系的FW版本号。
在本发明的第一方面的第三种可能实现方式中,该在对该软件升级成功后,获取当前FW的版本号,包括:
根据该当前FW的硬件信息,判断是否需要调用硬件驱动接口获取该当前FW的版本号;
当需要调用对应驱动接口获取当前FW的版本号时,调用该硬件驱动接口获取该当前FW的版本号;
当不需要调用对应驱动接口获取当前FW的版本号时,通过该FW升级工具获取该当前FW的版本号。
在本发明的第一方面的第四种可能实现方式中,该调用该FW升级数据和FW升级工具对该当前FW进行升级之后,该方法还包括:
当该当前FW升级成功时,显示升级成功的提醒消息;
当该当前FW升级失败时,显示升级失败的提醒消息。
另一方面,提供了一种固件升级装置,所述装置包括:
软件升级模块,用于基于软件升级包,对软件进行升级,该软件升级包至少包括软件的固件FW配套关系描述文件、FW升级数据以及FW升级工具,该FW配套关系描述文件包含升级后的软件信息以及对应的FW版本号;
获取模块,用于在对该软件升级成功后,获取当前FW的版本号;
判断模块,用于根据该当前FW的版本号和升级后的软件信息,通过查询该FW配套关系描述文件,判断该当前FW版本与该升级后的软件是否符合配套关系;
FW升级模块,用于当该当前FW版本与该升级后的软件不符合配套关系时,调用该FW升级数据和该FW升级工具对该当前FW进行升级。
在本发明的第二方面的第一种可能实现方式中,该软件升级包还包括指定硬件信息;
相应地,该获取模块用于:根据该指定硬件信息,判断当前电子设备中是否存在指定硬件,如果存在,获取该指定硬件对应FW的版本号。
在本发明的第二方面的第二种可能实现方式中,该FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件符合配套关系的FW版本号;或,该FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件不符合配套关系的FW版本号。
在本发明的第二方面的第三种可能实现方式中,该获取模块用于:
根据该当前FW的硬件信息,判断是否需要调用硬件驱动接口获取该当前FW的版本号;当需要调用对应驱动接口获取当前FW的版本号时,调用该硬件驱动接口获取该当前FW的版本号;当不需要调用对应驱动接口获取当前FW的版本号时,通过该FW升级工具获取该当前FW的版本号。
在本发明的第二方面的第四种可能实现方式中,该装置还包括:
显示模块,用于当该当前FW升级成功时,显示升级成功的提醒消息;
该显示模块还用于当该当前FW升级失败时,显示升级失败的提醒消息。
本发明实施例提供的技术方案带来的有益效果是:
通过调用软件升级包中的FW配套关系检查脚本,根据软件升级包中的FW配套关系描述文件,自动判断当前FW版本和升级后的软件是否符合配套关系,当确定当前FW版本和升级后的软件不符合配套关系时,通过调用该软件升级包中的FW升级脚本和FW升级工具,根据该软件升级包中提供的与升级后的软件符合配套关系的对应FW,实现对当前FW的升级。上述过程能够自动识别哪些FW需要升级,并自动进行升级过程,无需人工介入,能够降低FW升级复杂程度、缩短FW升级时间。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是本发明实施例提供的一种固件升级方法流程图,如图1所示,包括以下步骤:
101、基于软件升级包,对软件进行升级,该软件升级包至少包括软件的固件FW配套关系描述文件、FW升级数据以及FW升级工具,该FW配套关系描述文件包含升级后的软件信息以及对应的FW版本号。
102、在对该软件升级成功后,获取当前FW的版本号。
103、根据该当前FW的版本号和升级后的软件信息,通过查询该FW配套关系描述文件,判断该当前FW版本与该升级后的软件是否符合配套关系。
104、当该当前FW版本与该升级后的软件不符合配套关系时,调用该FW升级数据和该FW升级工具对该当前FW进行升级。
本发明实施例提供的方法,通过调用软件升级包中的FW配套关系检查脚本,根据软件升级包中的FW配套关系描述文件,自动判断当前FW版本和升级后的软件是否符合配套关系,当确定当前FW版本和升级后的软件不符合配套关系时,通过调用该软件升级包中的FW升级脚本和FW升级工具,根据该软件升级包中提供的与升级后的软件符合配套关系的对应FW,实现对当前FW的升级。上述过程能够自动识别哪些FW需要升级,并自动进行升级过程,无需人工介入,能够降低FW升级复杂程度、缩短FW升级时间。
在本发明的第一种可能实现方式中,该软件升级包还包括指定硬件信息;
相应地,在对该软件升级成功后,获取该当前FW的版本号包括:
根据该指定硬件信息,判断当前电子设备中是否存在指定硬件,如果存在,获取该指定硬件对应FW的版本号。
在本发明的第二种可能实现方式中,该FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件符合配套关系的FW版本号;或,该FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件不符合配套关系的FW版本号。
在本发明的第三种可能实现方式中,该在对该软件升级成功后,获取当前FW的版本号,包括:
根据该当前FW的硬件信息,判断是否需要调用硬件驱动接口获取该当前FW的版本号;
当需要调用对应驱动接口获取当前FW的版本号时,调用该硬件驱动接口获取该当前FW的版本号;
当不需要调用对应驱动接口获取当前FW的版本号时,通过该FW升级工具获取该当前FW的版本号。
在本发明的第四种可能实现方式中,该调用该FW升级数据和FW升级工具对该当前FW进行升级之后,该方法还包括:
当该当前FW升级成功时,显示升级成功的提醒消息;
当该当前FW升级失败时,显示升级失败的提醒消息。
图2A是本发明实施例提供的一种固件升级方法流程图,参见图2A,该方法包括:
201、基于软件升级包,对软件进行升级,该软件升级包至少包括软件的固件FW配套关系描述文件、FW升级数据以及FW升级工具,该FW配套关系描述文件包含升级后的软件信息以及对应的FW版本号。
为了能够实现对FW的自动升级,对软件升级包进行扩展设计,使得该软件升级包中除了包含常规的软件升级相关文件外,还包括能够实现FW自动升级的相关文件,如该软件的FW配套关系描述文件、FW升级数据以及FW升级工具。
为了提高FW配套关系描述文件的扩展性和灵活性,可将该FW配套文件设计成XML格式,文件名可以为Fw.cfg。该FW配套关系描述文件中所包含的对应关系可以有以下任一种情况:
第一种情况、FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件符合配套关系的FW版本号。
例如,当与升级后的软件符合配套关系的FW版本比不符合配套关系的FW版本多时,可以在该FW配套关系描述文件中保存与该升级后的软件不符合配套关系的FW版本号。
第二种情况、FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件不符合配套关系的FW版本号。
例如,当与升级后的软件符合配套关系的FW版本比不符合配套关系的FW版本少时,可以在该FW配套关系描述文件中保存与该升级后的软件符合配套关系的FW版本号。
该FW配套关系描述文件所包含的对应关系除上述两种情况外,还可以包含下述对应关系:保存与升级后的软件符合配套关系的FW的最低FW版本号、最高FW版本号以及在该最低FW版本号和该最高FW版本号之间与该升级后的软件不符合配套关系的FW版本号;通过在FW配套关系描述文件中保存上述对应关系,可以减小该软件升级包所占用的存储空间。
该FW配套关系描述文件中除了保存上述对应关系外,还可以保存其他能够用于判断该当前FW版本与该升级后的软件是否符合配套关系的其他对应关系,本发明实施例对此不作限定。
上述FW配套关系描述文件中所包含的升级后的软件信息及FW版本号的对应关系,只针对任一FW进行说明,事实上,FW配套关系描述文件中可以包含软件和多个硬件上FW的对应关系,使其能够用于判断多个FW与该升级后的软件是否符合配套关系。
FW升级数据可以包括FW配套关系检查脚本和FW自动升级脚本,该FW配套关系检查脚本可命名为Fw_check.sh,用于根据该FW配套关系描述文件和当前FW版本号,判断该当前FW版本与该升级后的软件是否符合配套关系,当确定该当前FW版本与该升级后的软件不符合配套关系时,调用该FW自动升级脚本实现对该当前FW的升级,该FW自动升级脚本可命名为:Fw_update.sh。
FW升级工具用于获取FW的版本号以及调用该FW自动升级脚本实现对该当前FW的升级。
该软件升级包除了包括软件的FW配套关系描述文件、FW升级数据以及FW升级工具以外,为了提高自动升级的针对性,也即是,当该升级后的软件与当前电子设备系统兼容的前提是该当前系统包含多个硬件时,能够实现对每个硬件对应的FW分别升级,该软件升级包中还可以包括指定硬件信息,此外,为了避免用户另外下载能够与该升级后的软件符合配套关系的FW,该软件升级包中还可以包括与升级后的软件符合配套关系的各个硬件对应FW,软件升级包中所包括的数据信息可以用图2B表示。
该指定硬件为当前电子设备系统能够与该升级后的软件符合配套关系所必须具备的硬件,该指定硬件信息可以为该指定硬件的类型号,也可以是能够对该指定硬件的类型起到标识作用的其他硬件信息,本发明实施例对此不作限定。
该与升级后的软件符合配套关系的各个硬件对应FW是指,为了便于对FW进行升级,软件升级包中可以提供能够与升级后的硬件符合配套关系的FW,在对FW进行升级时,可以直接使用该软件升级包中的FW,从而避免用户另外下载。
202、在对该软件升级成功后,获取当前FW的版本号。
获取当前FW版本号的方法可以为:根据该当前FW的硬件信息,判断是否需要调用硬件驱动接口获取该当前FW的版本号;当需要调用对应驱动接口获取当前FW的版本号时,调用该硬件驱动接口获取该当前FW的版本号;当不需要调用对应驱动接口获取当前FW的版本号时,通过该FW升级工具获取该当前FW的版本号。
其中,判断是否需要调用硬件驱动接口获取该当前FW的版本号的方法可以为:获取该当前FW对应硬件的硬件信息,根据该硬件信息,从该硬件的生产厂商网站中查询该网站是否提供用于获取该当前FW版本号的驱动,如果提供该驱动,则认为需要调用硬件驱动接口获取当前FW的版本号,下载并安装该驱动,以用于获取该当前FW的版本号,如果未提供,则认为不需要调用硬件驱动接口获取当前FW的版本号。
需要说明的是,因为当前电子设备系统要与该升级后的软件兼容,可能需要具备多个指定硬件,当需要具备多个指定硬件时,根据多个指定硬件信息,依次判断当前电子设备中是否存在指定硬件,当有一个指定硬件不存在时,则在该当前电子设备的界面显示FW升级失败的提醒消息。对任一指定硬件获取对应FW的版本号的方法可以为:
根据该指定硬件信息,判断当前电子设备中是否存在指定硬件,如果存在,获取该指定硬件对应FW的版本号,具体方法可以为:以该指定硬件信息为索引,在当前电子设备保存的所有硬件信息中,查找是否存在该指定硬件信息,如果不存在,则在该当前电子设备的界面显示FW升级失败的提醒消息,也即是,该当前电子设备系统无法与该升级后的软件兼容,如果存在,则获取该当前电子设备系统中的该指定硬件对应的FW版本号。
203、根据该当前FW的版本号和升级后的软件信息,通过查询该FW配套关系描述文件,判断该当前FW版本与该升级后的软件是否符合配套关系。
根据FW配套关系描述文件中保存的对应关系,通过调用FW配套关系检查脚本,判断该当前FW版本与该升级后的软件是否符合配套关系的方法可以为以下几种:
第一种、当该FW配套关系描述文件中保存的对应关系为与该升级后的软件不符合配套关系的FW版本号时,以步骤202中获取到的当前FW的版本号为索引,查找该FW配套关系描述文件中是否存在该当前FW的版本号,如果该FW配套关系描述文件中存在该当前FW的版本号,则该当前FW与该升级后的软件不符合配套关系,如果该FW配套关系描述文件中不存在该当前FW的版本号,则该当前FW与该升级后的软件符合配套关系。
第二种、当该FW配套关系描述文件中保存的对应关系为与该升级后的软件符合配套关系的FW版本号时,以步骤202中获取到的当前FW的版本号为索引,查找该FW配套关系描述文件中是否存在该当前FW的版本号,如果该FW配套关系描述文件中存在该当前FW的版本号,则该当前FW与该升级后的软件符合配套关系,如果该FW配套关系描述文件中不存在该当前FW的版本号,则该当前FW与该升级后的软件不符合配套关系。
第三种、如果该FW配套关系描述文件中保存的对应关系为与升级后的软件符合配套关系的各个硬件对应FW的最低FW版本号、最高FW版本号以及在该最低FW版本号和该最高FW版本号之间与该升级后的软件不符合配套关系的FW版本号,以步骤202中获取到的当前FW的版本号为索引,查找该FW配套关系描述文件中是否存在该当前FW的版本号,如果该当前FW的版本号在该FW的最低FW版本号和最高FW版本号之间,再判断该当前FW的版本号是否包含在与该升级后的软件不符合配套关系的FW版本号中,如果该当前FW的版本号包含在与该升级后的软件不符合配套关系的FW版本号中,则该当前FW与该升级后的软件不符合配套关系,如果该当前FW的版本号不包含在与该升级后的软件不符合配套关系的FW版本号中,则该当前FW与该升级后的软件符合配套关系;如果该当前FW的版本号不在该FW的最低FW版本号和最高FW版本号之间,则该当前FW与该升级后的软件不符合配套关系。
除采用上述判断该当前FW与该升级后的软件是否符合配套关系的方法外,还可根据FW配套关系描述文件中保存的其他对应关系,采用相应的判断方法,本发明实施例对此不作限定。
需要说明的是,可以用图2C的判断配套关系方法流程图对上述步骤202和步骤203的具体方法作进一步说明。
204、当该当前FW版本与该升级后的软件不符合配套关系时,调用该FW升级数据和该FW升级工具对该当前FW进行升级。
由于软件升级包中提供可供直接安装的能够与升级后的软件符合配套关系的FW,因此可以避免用户另外下载,加快FW升级速度,此外,该FW升级工具也包含于软件升级包中,也即是,在对该软件升级时,只需下载该软件升级包,在实现对该软件的升级的同时,还能够实现对FW的升级,无需再次下载其他文件。
根据当前FW版本号,通过调用FW升级脚本和FW升级工具实现对当前FW的升级。需要说明的是,可以从该软件升级包中提供的FW中选择合适的FW进行下载安装以完成对当前FW的升级,例如,可以选取该软件升级包中提供的FW中的最新版本的FW,也可以选取与当前FW版本号最接近的版本号对应的FW,本发明实施例对如何选择FW不作限定。
205、当该当前FW升级成功时,显示升级成功的提醒消息;当该当前FW升级失败时,显示升级失败的提醒消息。
当该当前FW升级成功时,在当前电子设备界面显示升级成功的提醒消息,该提醒消息的内容可以为:“升级成功”,也可以为其他类似表示升级成功的文本信息或图片、动画信息等,本发明实施例对此不作限定。
当该当前FW升级失败时,在当前电子设备界面显示升级失败的提醒消息,该提醒消息的内容可以为:“升级失败”,也可以为其他类似表示升级成功的文本信息或图片、动画信息等,与此同时,还可以显示升级失败的原因和链接,当检测到对该链接的点击操作时,可以跳转到提供解决升级失败的方法的页面,除上述显示内容之外,还可以显示其他升级失败的相关信息,本发明实施例对此不作限定。
需要说明的是,当该软件与当前电子设备系统兼容需要该系统具有多个指定硬件,且需要对该多个指定硬件的FW进行升级时,可以按上述方法依次对所有需要升级的FW进行升级,也可以同时对所有需要升级的FW进行升级,实现了对电子设备内多个FW的批量升级。
本发明实施例提供的方法,通过调用软件升级包中的FW配套关系检查脚本,根据软件升级包中的FW配套关系描述文件,自动判断当前FW版本和升级后的软件是否符合配套关系,当确定当前FW版本和升级后的软件不符合配套关系时,通过调用该软件升级包中的FW升级脚本和FW升级工具,根据该软件升级包中提供的与升级后的软件符合配套关系的对应FW,实现对当前FW的升级。上述过程能够自动识别哪些FW需要升级,并自动进行升级过程,无需人工介入,能够降低FW升级复杂程度、缩短FW升级时间。进一步地,通过在电子设备显示FW升级结果,可以及时让用户知晓升级后的软件是否能与该电子设备系统兼容,此外,还可以提供解决升级失败的解决方法以供用户参考,此外,只在该电子设备界面显示该软件升级过程,对用户完全屏蔽FW的升级过程,该电子设备系统与升级后软件的兼容性由上述方法自动保证。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图3是本发明实施例提供的一种固件升级装置框图。参照图3,该装置包括软件升级模块301,获取模块302,判断模块303和FW升级模块304。
软件升级模块301,用于基于软件升级包,对软件进行升级,该软件升级包至少包括软件的固件FW配套关系描述文件、FW升级数据以及FW升级工具,该FW配套关系描述文件包含升级后的软件信息以及对应的FW版本号;
获取模块302,用于在对该软件升级成功后,获取当前FW的版本号;
判断模块303,用于根据该当前FW的版本号和升级后的软件信息,通过查询该FW配套关系描述文件,判断该当前FW版本与该升级后的软件是否符合配套关系;
FW升级模块304,用于当该当前FW版本与该升级后的软件不符合配套关系时,调用该FW升级数据和该FW升级工具对该当前FW进行升级。
在本发明提供的第一种可能实现方式中,该软件升级包还包括指定硬件信息;
相应地,该获取模块302用于:根据该指定硬件信息,判断当前电子设备中是否存在指定硬件,如果存在,获取该指定硬件对应FW的版本号。
在本发明提供的第二种可能实现方式中,该FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件符合配套关系的FW版本号;或,该FW配套关系描述文件包含该升级后的软件信息以及与该升级后的软件不符合配套关系的FW版本号。
在本发明提供的第三种可能实现方式中,该获取模块302用于:
根据该当前FW的硬件信息,判断是否需要调用硬件驱动接口获取该当前FW的版本号;当需要调用对应驱动接口获取当前FW的版本号时,调用该硬件驱动接口获取该当前FW的版本号;当不需要调用对应驱动接口获取当前FW的版本号时,通过该FW升级工具获取该当前FW的版本号。
在本发明提供的第四种可能实现方式中,该装置还包括:
显示模块,用于当该当前FW升级成功时,显示升级成功的提醒消息;
该显示模块还用于当该当前FW升级失败时,显示升级失败的提醒消息。
需要说明的是:上述实施例提供的固件升级装置在升级固件时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的固件升级装置与固件升级方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是本发明实施例提供的一种固件升级装置结构示意图。例如,装置400可以被提供为一服务器。参照图4,装置400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理部件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述固件升级方法。
装置400还可以包括一个电源组件426被配置为执行装置400的电源管理,一个有线或无线网络接口450被配置为将装置400连接到网络,和一个输入输出(I/O)接口458。装置400可以操作基于存储在存储器432的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。