CN105335195A - 一种设备驱动升级方法、装置及电子设备 - Google Patents

一种设备驱动升级方法、装置及电子设备 Download PDF

Info

Publication number
CN105335195A
CN105335195A CN201510732124.3A CN201510732124A CN105335195A CN 105335195 A CN105335195 A CN 105335195A CN 201510732124 A CN201510732124 A CN 201510732124A CN 105335195 A CN105335195 A CN 105335195A
Authority
CN
China
Prior art keywords
device drives
aku
upgrade
clouds
upgrade script
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
CN201510732124.3A
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.)
Beijing Kingsoft Internet Security Software Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software 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 Beijing Kingsoft Internet Security Software Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201510732124.3A priority Critical patent/CN105335195A/zh
Publication of CN105335195A publication Critical patent/CN105335195A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明的实施例公开一种设备驱动升级方法、装置及电子设备。方法包括:在设备管理器中注入预先设置的设备驱动升级脚本;监测到打开所述设备管理器的操作指令,获取所述设备管理器中的设备信息,向预先设置的云端发送;接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的。应用本发明,可以提升设备驱动升级效率。

Description

一种设备驱动升级方法、装置及电子设备
技术领域
本发明涉及驱动升级技术,尤其涉及一种设备驱动升级方法、装置及电子设备。
背景技术
Windows设备管理器是Windows操作系统内置的管理工具,用于管理计算机上的设备,Windows设备管理器通过安装和更新设备的驱动,维护设备在计算机中的正常运行。例如,使用Windows设备管理器确定计算机上的硬件是否正常工作,查看和更改设备属性、安装和更新设备驱动、配置设备设置和卸载设备。
由于设备的不断更新,为了降低计算机的成本,可以通过对计算机中的设备进行设备驱动升级来使得设备具有更加丰富和强大的功能,因而,设备驱动升级是Windows设备管理器的一项主要功能,现有技术中,Windows设备管理器在更新(升级)设备驱动时,需要相关技术人员或用户通过手动方式查找到需要升级的设备,然后,启动需升级设备的驱动升级,从而从设备驱动服务器上下载新版本的设备驱动以进行更新。
为了满足用户不断增长的业务需求以及个性化需求,计算机中安装的设备也越来越多,使得采用手动方式查找设备以及升级设备驱动的工作量也越来越大,升级所需的时间也越来越长;且由于手动方式,容易导致升级设备驱动的操作的出错,使得设备驱动升级的效率较低,设备驱动升级的成本也随着设备数量的迅速增加而不断升高。
发明内容
有鉴于此,本发明实施例提供一种设备驱动升级方法、装置及电子设备,提升设备驱动升级效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种设备驱动升级方法,包括:
在设备管理器中注入预先设置的设备驱动升级脚本;
监测到打开所述设备管理器的操作指令,获取所述设备管理器中的设备信息,向预先设置的云端发送;
接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的。
优选地,所述在设备管理器中注入预先设置的设备驱动升级脚本包括:
在设备管理器中注入预先设置的设备驱动升级脚本引擎;
在Windows操作系统启动后,触发所述设备驱动升级脚本引擎从预先设置的云端下载最新版本的设备驱动升级脚本并更新存储的设备驱动升级脚本;
将更新的设备驱动升级脚本注入脚本语言解释器,以使脚本语言解释器对注入的设备驱动升级脚本进行语义解析后执行所述设备驱动升级脚本,监测打开所述设备管理器的操作。
优选地,所述触发所述设备驱动升级脚本引擎从预先设置的云端下载最新版本的设备驱动升级脚本并更新存储的设备驱动升级脚本包括:
所述设备驱动升级脚本引擎获取当前存储的设备驱动升级脚本的版本信息,携带在更新请求中,向云端发送;
接收云端依据所述更新请求中的版本信息返回的更新请求响应,如果所述更新请求响应中携带有设备驱动升级脚本,更新存储的设备驱动升级脚本,如果没有,不作处理。
优选地,所述监测到打开所述设备管理器的操作指令包括:
设备驱动升级脚本引擎执行所述设备驱动升级脚本,注册监听所述设备管理器打开、Windows操作系统创建设备管理器窗口时的回调函数;
接收所述回调函数的通知,以所述设备管理器窗口为父窗口创建设备驱动升级窗口,所述通知是所述回调函数监测到所述Windows操作系统创建设备管理器窗口后,向所述设备驱动升级脚本引擎发送的。
优选地,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的包括:
依据所述接收的设备信息中包含的设备标识,查询预先设置的设备标识与设备驱动升级包的映射关系集,得到所述设备信息中包含的设备标识映射的设备驱动升级包库;
依据所述设备信息中包含的设备驱动当前的安装包版本信息,查询得到的所述设备驱动升级包库,如果所述设备驱动升级包库中包含有比所述设备驱动当前的安装包版本信息更高版本的设备驱动升级包,获取最高版本的设备驱动升级包;如果没有,不作处理。
优选地,在所述接收云端返回的设备驱动升级包之后,安装所述云端返回的设备驱动升级包之前,所述方法进一步包括:
解析所述接收云端返回的设备驱动升级包,获取设备驱动升级包以及第一摘要信息;
利用消息摘要算法第五版算法,对获取的设备驱动升级包进行运算,生成第二摘要信息;
如果第一摘要信息与第二摘要信息相同,执行安装所述云端返回的设备驱动升级包的步骤,如果第一摘要信息与第二摘要信息不相同,从云端重新下载。
优选地,所述接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包包括:
在所述设备驱动升级窗口接收设备驱动升级包,解析所述设备驱动升级包;
分离解析的设备驱动升级包中的驱动升级参数文件与逻辑操作文件,解析分离的驱动升级参数文件得到设备驱动参数,将得到的所述设备驱动参数保存在内存中,解析逻辑操作文件,并利用变量代替所述逻辑操作文件中涉及的设备驱动参数,得到逻辑操作程序;
将所述内存中的所述设备驱动参数一次性写入驱动分区以进行设备驱动升级;
启动重启程序,触发所述逻辑操作程序调用所述驱动分区中的所述设备驱动参数以完成设备驱动升级。
第二方面,本发明实施例提供一种设备驱动升级装置,包括:注入模块、监测模块以及升级模块,其中,
注入模块,用于在设备管理器中注入预先设置的设备驱动升级脚本;
监测模块,用于在监测到打开所述设备管理器的操作指令后,获取所述设备管理器中的设备信息,向预先设置的云端发送;
升级模块,用于接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的。
优选地,所述注入模块包括:注入单元、更新下载单元以及更新单元,其中,
注入单元,用于在设备管理器中注入预先设置的设备驱动升级脚本引擎;
更新下载单元,用于在Windows操作系统启动后,触发所述设备驱动升级脚本引擎从预先设置的云端下载最新版本的设备驱动升级脚本并更新存储的设备驱动升级脚本;
更新单元,用于将更新的设备驱动升级脚本注入脚本语言解释器,以使脚本语言解释器对注入的设备驱动升级脚本进行语义解析后执行所述设备驱动升级脚本,监测打开所述设备管理器的操作。
优选地,所述更新下载单元包括:启动监测子单元、更新请求子单元以及更新下载子单元,其中,
启动监测子单元,用于在监测到Windows操作系统启动后,通知更新请求子单元;
更新请求子单元,用于触发所述设备驱动升级脚本引擎获取当前存储的设备驱动升级脚本的版本信息,携带在更新请求中,向云端发送;
更新下载子单元,用于接收云端依据所述更新请求中的版本信息返回的更新请求响应,如果所述更新请求响应中携带有设备驱动升级脚本,更新存储的设备驱动升级脚本,如果没有,不作处理。
优选地,所述监测模块包括:注册单元、设备驱动升级窗口创建单元以及设备信息发送单元,其中,
注册单元,用于触发设备驱动升级脚本引擎执行所述设备驱动升级脚本,注册监听所述设备管理器打开、Windows操作系统创建设备管理器窗口时的回调函数;
设备驱动升级窗口创建单元,用于接收所述回调函数的通知,以所述设备管理器窗口为父窗口创建设备驱动升级窗口,所述通知是所述回调函数监测到所述Windows操作系统创建设备管理器窗口后,向所述设备驱动升级脚本引擎发送的;
设备信息发送单元,用于获取所述设备管理器中的设备信息,向预先设置的云端发送。
优选地,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的包括:
依据所述接收的设备信息中包含的设备标识,查询预先设置的设备标识与设备驱动升级包的映射关系集,得到所述设备信息中包含的设备标识映射的设备驱动升级包库;
依据所述设备信息中包含的设备驱动当前的安装包版本信息,查询得到的所述设备驱动升级包库,如果所述设备驱动升级包库中包含有比所述设备驱动当前的安装包版本信息更高版本的设备驱动升级包,获取最高版本的设备驱动升级包;如果没有,不作处理。
优选地,所述升级模块包括:解析单元、分离处理单元、写入单元以及重启单元,其中,
解析单元,用于在所述设备驱动升级窗口接收设备驱动升级包,解析所述设备驱动升级包;
分离处理单元,用于分离解析的设备驱动升级包中的驱动升级参数文件与逻辑操作文件,解析分离的驱动升级参数文件得到设备驱动参数,将得到的所述设备驱动参数保存在内存中,解析逻辑操作文件,并利用变量代替所述逻辑操作文件中涉及的设备驱动参数,得到逻辑操作程序;
写入单元,用于将所述内存中的所述设备驱动参数一次性写入驱动分区以进行设备驱动升级;
重启单元,用于启动重启程序,触发所述逻辑操作程序调用所述驱动分区中的所述设备驱动参数以完成设备驱动升级。
优选地,所述升级模块进一步包括:第一摘要信息获取单元、第二摘要信息生成单元以及摘要信息匹配单元,其中,
第一摘要信息获取单元,用于解析所述接收云端返回的设备驱动升级包,获取设备驱动升级包以及第一摘要信息;
第二摘要信息生成单元,用于利用消息摘要算法第五版算法,对获取的设备驱动升级包进行运算,生成第二摘要信息;
摘要信息匹配单元,如果第一摘要信息与第二摘要信息相同,执行安装所述云端返回的设备驱动升级包的步骤,如果第一摘要信息与第二摘要信息不相同,从云端重新下载。
第三方面,本发明实施例提供一种电子装置,所述电子装置包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的设备驱动升级方法。
本发明实施例提供的设备驱动升级方法、装置及电子设备,通过利用注入的设备驱动升级脚本监测设备管理器,从而在设备管理器打开时,自动从云端下载设备驱动升级包进行安装,无需用户采用手动方式查找设备以及手动进行设备驱动升级,大大降低了升级设备驱动的工作量以及升级设备驱动中的操作出错,提升了设备驱动升级的效率以及成功率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例设备驱动升级方法流程示意图;
图2为本发明实施例在设备管理器中注入预先设置的设备驱动升级脚本流程示意图。
图3为本发明实施例设备驱动升级装置结构示意图;
图4为本发明实施例的注入模块结构示意图;
图5为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例设备驱动升级方法流程示意图。参见图1,该方法包括:
步骤101,在设备管理器中注入预先设置的设备驱动升级脚本;
本步骤中,设备管理器为Windows操作系统的设备管理器。当然,实际应用中,设备管理器也可以为其他操作系统,例如,安卓操作系统或Unix操作系统的设备管理器等,本发明实施例对此不做限定。
作为一可选实施例,图2为本发明实施例在设备管理器中注入预先设置的设备驱动升级脚本流程示意图。参见图2,该流程包括:
A11,在设备管理器中注入预先设置的设备驱动升级脚本引擎;
本步骤中,注入的设备驱动升级脚本引擎用于对后续获取的设备驱动升级脚本进行更新及解析加载。关于设置设备驱动升级脚本引擎以及在设备管理器中注入设备驱动升级脚本引擎为公知技术,在此略去详述。
本发明实施例中,通过提供设备驱动升级脚本引擎应用程序常驻Windows操作系统,作为一守护进程。这样,在Windows操作系统启动并在用户打开设备管理器后,触发启动设备驱动升级脚本引擎,后续功能通过该设备驱动升级脚本引擎来触发。
A12,在Windows操作系统启动后,触发所述设备驱动升级脚本引擎从预先设置的云端下载最新版本的设备驱动升级脚本并更新存储的设备驱动升级脚本;
本步骤中,技术开发人员可以对设备驱动升级脚本的功能,即实现的逻辑进行扩展以及完善,并使用脚本语言将需实现的逻辑写入脚本,生成设备驱动升级脚本。在发布新版本的设备驱动升级脚本后,可以将发布的新版本的设备驱动升级脚本存储或部署在云端,以便安装有设备驱动升级脚本引擎的计算机,例如客户端在启动后,通过设备驱动升级脚本引擎可以自动从云端下载新版本的设备驱动升级脚本并运行。
作为一可选实施例,触发所述设备驱动升级脚本引擎从预先设置的云端下载最新版本的设备驱动升级脚本并更新存储的设备驱动升级脚本包括:
A21,所述设备驱动升级脚本引擎获取当前存储的设备驱动升级脚本的版本信息,携带在更新请求中,向云端发送;
A22,接收云端依据所述更新请求中的版本信息返回的更新请求响应,如果所述更新请求响应中携带有设备驱动升级脚本,更新存储的设备驱动升级脚本,如果没有,不作处理。
本步骤中,云端接收更新请求,针对每一设备标识,如果存在有与更新请求中携带的版本信息更高的设备驱动升级脚本,则将最高版本的设备驱动升级脚本携带在更新请求响应中,如果没有,向设备驱动升级脚本引擎返回空的更新请求响应。
A13,将更新的设备驱动升级脚本注入脚本语言解释器,以使脚本语言解释器对注入的设备驱动升级脚本进行语义解析后执行所述设备驱动升级脚本,监测打开所述设备管理器的操作。
本步骤中,设备驱动升级脚本引擎将下载的设备驱动升级脚本注入脚本语言解释器,脚本语言解释器对注入的设备驱动升级脚本进行语义解析后,执行所述设备驱动升级脚本以使所述设备驱动升级脚本监测用户打开所述设备管理器的操作。
当然,实际应用中,云端在有新版本的设备驱动升级脚本发布后,也可以将新版本的设备驱动升级脚本向预先设置的设备驱动升级脚本引擎主动推送。
步骤102,监测到打开所述设备管理器的操作指令,获取所述设备管理器中的设备信息,向预先设置的云端发送;
作为一可选实施例,监测到打开所述设备管理器的操作指令包括:
A31,设备驱动升级脚本引擎执行所述设备驱动升级脚本,注册监听所述设备管理器打开、Windows操作系统创建设备管理器窗口时的回调函数;
A32,接收所述回调函数的通知,以所述设备管理器窗口为父窗口创建设备驱动升级窗口,所述通知是所述回调函数监测到所述Windows操作系统创建设备管理器窗口后,向所述设备驱动升级脚本引擎发送的。
本发明实施例中,设备驱动升级脚本引擎作为宿主,通过执行所述设备驱动升级脚本,向Windows操作系统注册Windows操作系统的设备管理窗口被创建后触发的回调函数,即注册监听设备管理器窗口被Windows操作系统创建的回调函数,使得回调函数监测到设备管理器窗口被打开,Windows操作系统为打开的设备管理器创建设备管理器窗口后,通知设备驱动升级脚本引擎,触发设备驱动升级脚本引擎以设备管理器窗口为父窗口,创建一Popup窗口(设备驱动升级窗口),从而在该设备驱动升级窗口上提供设备的升级功能以及升级增强功能。
本发明实施例中,回调函数为一通过函数指针调用的函数,可用于截获消息,以及,获取操作系统处理事件的信息。注册回调函数的流程以及具体的回调函数为公知技术,在此略去详述。
本发明实施例中,操作指令可以是由用户打开设备管理器,从而触发生成打开所述设备管理器的操作指令,也可以是设置设备驱动升级脚本引擎按照预先设置的升级周期打开设备管理器,从而触发生成打开所述设备管理器的操作指令。
本步骤中,获取的设备信息可以是一个或多个设备信息。作为一可选实施例,设备信息为设备标识,设备标识可以是设备的出厂序列号,也可以是设备的媒体接入控制地址等。
作为另一可选实施例,设备信息中还可以进一步包括:设备驱动的版本信息。其中,设备驱动的版本信息可以是设备驱动当前的安装包版本信息。较佳地,每一设备信息对应一设备标识以及一设备驱动当前的安装包版本信息(设备驱动的版本信息)。
步骤103,接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的。
本步骤中,作为一可选实施例,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的包括:
B01,依据所述接收的设备信息中包含的设备标识,查询预先设置的设备标识与设备驱动升级包的映射关系集,得到所述设备信息中包含的设备标识映射的设备驱动升级包库;
B02,依据所述设备信息中包含的设备驱动当前的安装包版本信息,查询得到的所述设备驱动升级包库,如果所述设备驱动升级包库中包含有比所述设备驱动当前的安装包版本信息更高版本的设备驱动升级包,获取最高版本的设备驱动升级包;如果没有,不作处理。
本步骤中,云端接收包含设备信息的升级请求,如果存在有与升级请求中携带的版本信息更高的设备驱动升级包,则将最高版本的设备驱动升级包携带在升级请求响应中,如果没有,向设备驱动升级脚本引擎返回空的升级请求响应,从而使得客户端不对相应的设备进行升级处理。
本发明实施例中,对于包含有多个设备信息的升级请求,升级请求响应中可以携带有相应的多个有最新版本的设备驱动升级包。
作为一可选实施例,在所述接收云端返回的设备驱动升级包之后,安装所述云端返回的设备驱动升级包之前,该方法还可以进一步包括:
B11,解析所述接收云端返回的设备驱动升级包,获取设备驱动升级包以及第一摘要信息;
B12,利用消息摘要算法第五版(MD5,Message-DigestAlgorithm5)算法,对获取的设备驱动升级包进行运算,生成第二摘要信息;
B13,如果第一摘要信息与第二摘要信息相同,执行安装所述云端返回的设备驱动升级包的步骤,如果第一摘要信息与第二摘要信息不相同,从云端重新下载。
本发明实施例中,作为一可选实施例,接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包包括:
B11,在所述设备驱动升级窗口接收设备驱动升级包,解析所述设备驱动升级包;
本步骤中,在设备驱动升级脚本引擎以设备管理器窗口为父窗口创建的设备驱动升级窗口进行设备驱动接收及升级安装,可以无需改动现有的设备管理器窗口功能。
B12,分离解析的设备驱动升级包中的驱动升级参数文件与逻辑操作文件,解析分离的驱动升级参数文件得到设备驱动参数,将得到的所述设备驱动参数保存在内存中,解析逻辑操作文件,并利用变量代替所述逻辑操作文件中涉及的设备驱动参数,得到逻辑操作程序;
本步骤中,作为一可选实施例,可以按照解析得到的驱动参数的先后顺序,依次保存在内存中。
B13,将所述内存中的所述设备驱动参数一次性写入驱动分区以进行设备驱动升级;
B14,启动重启程序,触发所述逻辑操作程序调用所述驱动分区中的所述设备驱动参数以完成设备驱动升级。
本发明实施例中,通过预先将驱动设备驱动升级包的驱动代码中的逻辑操作部分和设备驱动参数部分分离,其中,逻辑操作部分在编译时使用变量代替设备驱动参数部分;设备驱动升级时,只需要升级到新的设备驱动参数,重启时,逻辑操作部分调用该新的设备驱动参数即可完成升级包安装。可以有效节约客户端的存储空间,同时可避免客户端设备驱动升级失败导致客户端无法工作的情况。
由上述可见,本发明实施例的设备驱动升级方法,通过在设备管理器中注入预先设置的设备驱动升级脚本;监测到打开所述设备管理器的操作指令,获取所述设备管理器中的设备信息,向预先设置的云端发送;接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的。这样,利用注入的设备驱动升级脚本监测设备管理器,从而在设备管理器打开时,自动从云端下载设备驱动升级包进行安装,无需用户采用手动方式查找设备以及手动进行设备驱动升级,大大降低了升级设备驱动的工作量,有效缩短了升级所需的时间,提升了设备驱动升级的效率;进一步地,由于采用设备驱动自动升级方式,可以有效降低设备驱动升级的成本,以及,避免升级设备驱动中的操作出错,提升驱动设备升级的成功率。
图3为本发明实施例设备驱动升级装置结构示意图。参见图3,该装置包括:注入模块、监测模块以及升级模块,其中,
注入模块,用于在设备管理器中注入预先设置的设备驱动升级脚本;
本发明实施例中,技术开发人员可以对设备驱动升级脚本的功能,即实现的逻辑进行扩展以及完善,并使用脚本语言将需实现的逻辑写入脚本,生成设备驱动升级脚本。
监测模块,用于在监测到打开所述设备管理器的操作指令后,获取所述设备管理器中的设备信息,向预先设置的云端发送;
本发明实施例中,获取的设备信息可以是一个或多个设备信息。作为一可选实施例,设备信息为设备标识,设备标识可以是设备的出厂序列号,也可以是设备的媒体接入控制地址等。
作为另一可选实施例,设备信息中还可以进一步包括:设备驱动的版本信息。
升级模块,用于接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的。
本发明实施例中,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的包括:
依据所述接收的设备信息中包含的设备标识,查询预先设置的设备标识与设备驱动升级包的映射关系集,得到所述设备信息中包含的设备标识映射的设备驱动升级包库;
依据所述设备信息中包含的设备驱动当前的安装包版本信息,查询得到的所述设备驱动升级包库,如果所述设备驱动升级包库中包含有比所述设备驱动当前的安装包版本信息更高版本的设备驱动升级包,获取最高版本的设备驱动升级包;如果没有,不作处理。
作为一可选实施例,图4为本发明实施例的注入模块结构示意图。参见图4,该注入模块包括:注入单元、更新下载单元以及更新单元,其中,
注入单元,用于在设备管理器中注入预先设置的设备驱动升级脚本引擎;
更新下载单元,用于在Windows操作系统启动后,触发所述设备驱动升级脚本引擎从预先设置的云端下载最新版本的设备驱动升级脚本并更新存储的设备驱动升级脚本;
本发明实施例中,作为一可选实施例,更新下载单元包括:启动监测子单元、更新请求子单元以及更新下载子单元,其中,
启动监测子单元,用于在监测到Windows操作系统启动后,通知更新请求子单元;
更新请求子单元,用于触发所述设备驱动升级脚本引擎获取当前存储的设备驱动升级脚本的版本信息,携带在更新请求中,向云端发送;
更新下载子单元,用于接收云端依据所述更新请求中的版本信息返回的更新请求响应,如果所述更新请求响应中携带有设备驱动升级脚本,更新存储的设备驱动升级脚本,如果没有,不作处理。
更新单元,用于将更新的设备驱动升级脚本注入脚本语言解释器,以使脚本语言解释器对注入的设备驱动升级脚本进行语义解析后执行所述设备驱动升级脚本,监测打开所述设备管理器的操作。
本发明实施例中,作为一可选实施例,监测模块包括:注册单元、设备驱动升级窗口创建单元以及设备信息发送单元(图中未示出),其中,
注册单元,用于触发设备驱动升级脚本引擎执行所述设备驱动升级脚本,注册监听所述设备管理器打开、Windows操作系统创建设备管理器窗口时的回调函数;
设备驱动升级窗口创建单元,用于接收所述回调函数的通知,以所述设备管理器窗口为父窗口创建设备驱动升级窗口,所述通知是所述回调函数监测到所述Windows操作系统创建设备管理器窗口后,向所述设备驱动升级脚本引擎发送的;
设备信息发送单元,用于获取所述设备管理器中的设备信息,向预先设置的云端发送。
本发明实施例中,作为一可选实施例,升级模块包括:解析单元、分离处理单元、写入单元以及重启单元(图中未示出),其中,
解析单元,用于在所述设备驱动升级窗口接收设备驱动升级包,解析所述设备驱动升级包;
分离处理单元,用于分离解析的设备驱动升级包中的驱动升级参数文件与逻辑操作文件,解析分离的驱动升级参数文件得到设备驱动参数,将得到的所述设备驱动参数保存在内存中,解析逻辑操作文件,并利用变量代替所述逻辑操作文件中涉及的设备驱动参数,得到逻辑操作程序;
写入单元,用于将所述内存中的所述设备驱动参数一次性写入驱动分区以进行设备驱动升级;
重启单元,用于启动重启程序,触发所述逻辑操作程序调用所述驱动分区中的所述设备驱动参数以完成设备驱动升级。
本发明实施例中,作为另一可选实施例,升级模块还可以进一步包括:第一摘要信息获取单元、第二摘要信息生成单元以及摘要信息匹配单元,其中,
第一摘要信息获取单元,用于解析所述接收云端返回的设备驱动升级包,获取设备驱动升级包以及第一摘要信息;
第二摘要信息生成单元,用于利用消息摘要算法第五版算法,对获取的设备驱动升级包进行运算,生成第二摘要信息;
摘要信息匹配单元,如果第一摘要信息与第二摘要信息相同,执行安装所述云端返回的设备驱动升级包的步骤,如果第一摘要信息与第二摘要信息不相同,从云端重新下载。
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图5为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-4所示实施例的流程,如图5所示,上述电子设备可以包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为上述电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器53中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的设备驱动升级方法。
处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-4所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体数据。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种设备驱动升级方法,其特征在于,该方法包括:
在设备管理器中注入预先设置的设备驱动升级脚本;
监测到打开所述设备管理器的操作指令,获取所述设备管理器中的设备信息,向预先设置的云端发送;
接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的。
2.根据权利要求1所述的方法,其特征在于,所述在设备管理器中注入预先设置的设备驱动升级脚本包括:
在设备管理器中注入预先设置的设备驱动升级脚本引擎;
在Windows操作系统启动后,触发所述设备驱动升级脚本引擎从预先设置的云端下载最新版本的设备驱动升级脚本并更新存储的设备驱动升级脚本;
将更新的设备驱动升级脚本注入脚本语言解释器,以使脚本语言解释器对注入的设备驱动升级脚本进行语义解析后执行所述设备驱动升级脚本,监测打开所述设备管理器的操作。
3.根据权利要求2所述的方法,其特征在于,所述触发所述设备驱动升级脚本引擎从预先设置的云端下载最新版本的设备驱动升级脚本并更新存储的设备驱动升级脚本包括:
所述设备驱动升级脚本引擎获取当前存储的设备驱动升级脚本的版本信息,携带在更新请求中,向云端发送;
接收云端依据所述更新请求中的版本信息返回的更新请求响应,如果所述更新请求响应中携带有设备驱动升级脚本,更新存储的设备驱动升级脚本,如果没有,不作处理。
4.根据权利要求1所述的方法,其特征在于,所述监测到打开所述设备管理器的操作指令包括:
设备驱动升级脚本引擎执行所述设备驱动升级脚本,注册监听所述设备管理器打开、Windows操作系统创建设备管理器窗口时的回调函数;
接收所述回调函数的通知,以所述设备管理器窗口为父窗口创建设备驱动升级窗口,所述通知是所述回调函数监测到所述Windows操作系统创建设备管理器窗口后,向所述设备驱动升级脚本引擎发送的。
5.根据权利要求1所述的方法,其特征在于,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的包括:
依据所述接收的设备信息中包含的设备标识,查询预先设置的设备标识与设备驱动升级包的映射关系集,得到所述设备信息中包含的设备标识映射的设备驱动升级包库;
依据所述设备信息中包含的设备驱动当前的安装包版本信息,查询得到的所述设备驱动升级包库,如果所述设备驱动升级包库中包含有比所述设备驱动当前的安装包版本信息更高版本的设备驱动升级包,获取最高版本的设备驱动升级包;如果没有,不作处理。
6.根据权利要求5所述的方法,其特征在于,在所述接收云端返回的设备驱动升级包之后,安装所述云端返回的设备驱动升级包之前,所述方法进一步包括:
解析所述接收云端返回的设备驱动升级包,获取设备驱动升级包以及第一摘要信息;
利用消息摘要算法第五版算法,对获取的设备驱动升级包进行运算,生成第二摘要信息;
如果第一摘要信息与第二摘要信息相同,执行安装所述云端返回的设备驱动升级包的步骤,如果第一摘要信息与第二摘要信息不相同,从云端重新下载。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包包括:
在所述设备驱动升级窗口接收设备驱动升级包,解析所述设备驱动升级包;
分离解析的设备驱动升级包中的驱动升级参数文件与逻辑操作文件,解析分离的驱动升级参数文件得到设备驱动参数,将得到的所述设备驱动参数保存在内存中,解析逻辑操作文件,并利用变量代替所述逻辑操作文件中涉及的设备驱动参数,得到逻辑操作程序;
将所述内存中的所述设备驱动参数一次性写入驱动分区以进行设备驱动升级;
启动重启程序,触发所述逻辑操作程序调用所述驱动分区中的所述设备驱动参数以完成设备驱动升级。
8.一种设备驱动升级装置,其特征在于,该装置包括:注入模块、监测模块以及升级模块,其中,
注入模块,用于在设备管理器中注入预先设置的设备驱动升级脚本;
监测模块,用于在监测到打开所述设备管理器的操作指令后,获取所述设备管理器中的设备信息,向预先设置的云端发送;
升级模块,用于接收云端返回的设备驱动升级包,安装所述云端返回的设备驱动升级包,所述云端返回的设备驱动升级包是云端依据所述接收的设备信息,通过查询预先设置的设备信息与设备驱动升级包的映射关系获取的。
9.根据权利要求8所述的装置,其特征在于,所述注入模块包括:注入单元、更新下载单元以及更新单元,其中,
注入单元,用于在设备管理器中注入预先设置的设备驱动升级脚本引擎;
更新下载单元,用于在Windows操作系统启动后,触发所述设备驱动升级脚本引擎从预先设置的云端下载最新版本的设备驱动升级脚本并更新存储的设备驱动升级脚本;
更新单元,用于将更新的设备驱动升级脚本注入脚本语言解释器,以使脚本语言解释器对注入的设备驱动升级脚本进行语义解析后执行所述设备驱动升级脚本,监测打开所述设备管理器的操作。
10.根据权利要求9所述的装置,其特征在于,所述更新下载单元包括:启动监测子单元、更新请求子单元以及更新下载子单元,其中,
启动监测子单元,用于在监测到Windows操作系统启动后,通知更新请求子单元;
更新请求子单元,用于触发所述设备驱动升级脚本引擎获取当前存储的设备驱动升级脚本的版本信息,携带在更新请求中,向云端发送;
更新下载子单元,用于接收云端依据所述更新请求中的版本信息返回的更新请求响应,如果所述更新请求响应中携带有设备驱动升级脚本,更新存储的设备驱动升级脚本,如果没有,不作处理。
CN201510732124.3A 2015-11-02 2015-11-02 一种设备驱动升级方法、装置及电子设备 Pending CN105335195A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510732124.3A CN105335195A (zh) 2015-11-02 2015-11-02 一种设备驱动升级方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510732124.3A CN105335195A (zh) 2015-11-02 2015-11-02 一种设备驱动升级方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN105335195A true CN105335195A (zh) 2016-02-17

Family

ID=55285756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510732124.3A Pending CN105335195A (zh) 2015-11-02 2015-11-02 一种设备驱动升级方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN105335195A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775804A (zh) * 2016-11-16 2017-05-31 国家电网公司 一种移动终端及其rfid读写设备适配方法和装置
CN107003880A (zh) * 2016-12-27 2017-08-01 华为技术有限公司 内核更新方法和装置、计算机设备
CN107908416A (zh) * 2017-12-28 2018-04-13 惠州Tcl家电集团有限公司 单片机固件升级方法、装置及计算机可读存储介质
CN108173840A (zh) * 2017-12-26 2018-06-15 广西师范学院 基于云平台的智能物流终端集成中间件
CN112052029A (zh) * 2020-08-20 2020-12-08 厦门亿联网络技术股份有限公司 一种usb设备管理软件的配置方法、系统和计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521006A (zh) * 2012-01-09 2012-06-27 广州广电运通金融电子股份有限公司 一种自助设备硬件驱动和介质程序升级方法
CN102811136A (zh) * 2011-06-01 2012-12-05 南京中兴新软件有限责任公司 软件升级系统及方法
CN104079432A (zh) * 2014-06-20 2014-10-01 珠海市君天电子科技有限公司 网络设备异常的处理方法和装置
CN104750504A (zh) * 2013-12-26 2015-07-01 贝壳网际(北京)安全技术有限公司 驱动信息的提供方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102811136A (zh) * 2011-06-01 2012-12-05 南京中兴新软件有限责任公司 软件升级系统及方法
CN102521006A (zh) * 2012-01-09 2012-06-27 广州广电运通金融电子股份有限公司 一种自助设备硬件驱动和介质程序升级方法
CN104750504A (zh) * 2013-12-26 2015-07-01 贝壳网际(北京)安全技术有限公司 驱动信息的提供方法和装置
CN104079432A (zh) * 2014-06-20 2014-10-01 珠海市君天电子科技有限公司 网络设备异常的处理方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775804A (zh) * 2016-11-16 2017-05-31 国家电网公司 一种移动终端及其rfid读写设备适配方法和装置
CN107003880A (zh) * 2016-12-27 2017-08-01 华为技术有限公司 内核更新方法和装置、计算机设备
WO2018119662A1 (zh) * 2016-12-27 2018-07-05 华为技术有限公司 内核更新方法和装置、计算机设备
CN107003880B (zh) * 2016-12-27 2020-04-03 华为技术有限公司 内核更新方法和装置、计算机设备
US10635511B2 (en) 2016-12-27 2020-04-28 Huawei Technologies Co., Ltd. Kernel update method and apparatus, and computer device
CN108173840A (zh) * 2017-12-26 2018-06-15 广西师范学院 基于云平台的智能物流终端集成中间件
CN108173840B (zh) * 2017-12-26 2020-09-15 南宁师范大学 基于云平台的智能物流终端集成系统
CN107908416A (zh) * 2017-12-28 2018-04-13 惠州Tcl家电集团有限公司 单片机固件升级方法、装置及计算机可读存储介质
CN112052029A (zh) * 2020-08-20 2020-12-08 厦门亿联网络技术股份有限公司 一种usb设备管理软件的配置方法、系统和计算机设备

Similar Documents

Publication Publication Date Title
CN105335195A (zh) 一种设备驱动升级方法、装置及电子设备
EP3333704A1 (en) Method and apparatus for repairing kernel vulnerability
CN110597542B (zh) 软件自动ota升级方法及装置、电子设备
CN105094895B (zh) 一种安装多显卡驱动的方法及装置
CN103744695A (zh) 基于pxe的操作系统远程安装方法和系统
CN104199706A (zh) 一种eMMC的固件升级方法及其设备
CN105389177A (zh) 一种软件版本确认方法、装置及系统
CN112328296B (zh) 针对跨平台应用的软件更新方法、装置、设备和介质
CN112764792B (zh) 一种关联服务器版本应用升级方法、装置和电子设备
CN113760306B (zh) 安装软件的方法、装置、电子设备及存储介质
CN103840968A (zh) 一种版本更新方法、装置及终端设备
CN105119944A (zh) 一种应用的启动方法和相关装置
CN109634659A (zh) 一种对bmc进行控制的方法、装置、设备以及存储介质
CN111124437A (zh) 一种基于OpenStack的裸机资源配置信息获取方法、系统及设备
CN108733398B (zh) 一种软件升级的处理方法及装置
CN105117250A (zh) 一种兼容性处理方法及电子设备
CN114398044A (zh) 车辆控制和软件配置方法、装置、电子设备及存储介质
CN107911816B (zh) 用于多模IoT设备的启动方法、多模IoT设备及存储介质
CN112988192A (zh) 版本更新方法、装置、电子设备及存储介质
CN111782236A (zh) 系统软件升级方法、装置、存储介质及一体机设备
CN106484442B (zh) 服务器系统及更新开机映像档的方法
CN109491762B (zh) 容器状态控制方法及装置、存储介质、电子设备
CN109495298B (zh) 在OpenStack系统中管理节点的方法和装置
CN112035129A (zh) 驱动安装升级的方法、装置及计算机设备
US20150212866A1 (en) Management system for service of multiple operating environments, and methods thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160217

RJ01 Rejection of invention patent application after publication