CN110825406A - 一种软件升级的方法及相关设备 - Google Patents

一种软件升级的方法及相关设备 Download PDF

Info

Publication number
CN110825406A
CN110825406A CN201911029648.0A CN201911029648A CN110825406A CN 110825406 A CN110825406 A CN 110825406A CN 201911029648 A CN201911029648 A CN 201911029648A CN 110825406 A CN110825406 A CN 110825406A
Authority
CN
China
Prior art keywords
file
installation package
files
server
terminal
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
CN201911029648.0A
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.)
Shenzhen Launch Technology Co Ltd
Original Assignee
Shenzhen Launch Technology 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 Shenzhen Launch Technology Co Ltd filed Critical Shenzhen Launch Technology Co Ltd
Priority to CN201911029648.0A priority Critical patent/CN110825406A/zh
Publication of CN110825406A publication Critical patent/CN110825406A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Abstract

本申请实施例公开了一种软件升级的方法及相关设备,采用本申请实施例,终端在对软件进行升级时,终端获取第一安装包中的文件信息,终端向服务器发送第一安装包中的文件信息;终端接收服务器发送的目标文件,或者用于下载目标文件的地址信息,其中,目标文件包括更改文件和/或新增文件,更改文件为第二安装包包含的多个文件中,文件名与第一安装包包含的多个文件中文件名相同但校验值不同的文件,新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;第二安装包为第一安装包的升级版本;终端根据目标文件和未更改文件升级软件,这种升级方式能够显著提高软件升级成功率。

Description

一种软件升级的方法及相关设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种软件升级的方法及相关设备。
背景技术
随着用户对软件需求的不断增加,软件开发公司为了满足用户的需求,会持续更新软件安装包,相应的,用户通过终端下载新版本软件安装包来升级软件,以便体验软件提供的最新功能。
目前,终端对软件进行升级的主要方式是,服务器获取所述终端的旧版本软件安装包的版本信息,然后根据该版本信息确定旧版本软件安装包与新版本软件安装包的更改文件,之后所述服务器向所述终端发送所述更改文件,所述终端接收所述服务器发送的所述更改文件,所述终端根据所述更改文件和旧版本软件安装包中的非更改文件进行软件升级,但是所述非更改文件可能会被篡改或者损坏,导致软件升级不成功。因此如何提高软件升级成功率是本领域的技术人员正在研究的技术问题。
发明内容
本申请实施例公开了一种软件升级的方法及相关设备,能够提高软件升级成功率。
第一方面,本申请实施例提供了一种软件升级方法,包括:
终端在对软件进行升级时,终端获取第一安装包中的文件信息,其中,该文件信息包括多个文件的文件名及其校验值,该多个文件中任意一个文件的校验值为确定需要对该软件进行升级时根据预设防篡改算法对该任意一个文件处理获得的;
该终端向服务器发送该第一安装包中的文件信息;
该终端接收该服务器发送的目标文件,或者用于下载该目标文件的地址信息,其中,该目标文件包括更改文件和/或新增文件,该更改文件为第二安装包包含的多个文件中,文件名与该第一安装包包含的多个文件中文件名相同但校验值不同的文件,该新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;该第二安装包为该第一安装包的升级版本;
该终端根据该目标文件和未更改文件升级该软件,该未更改文件为第一安装包包含的多个文件中,文件名与该第二安装包包含的多个文件中文件名相同且校验值相同的文件。
在该方法中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在第一方面的一种可选方案中,该终端接收该服务器发送的用于下载该目标文件的下载地址信息之后,还包括:
该终端根据该目标文件的下载地址信息向该服务器发送下载请求;
该终端接收该服务器根据该下载请求发送的该目标文件。
在第一方面的又一种可选方案中,该终端接收该服务器发送的目标文件,或者用于下载该目标文件的地址信息之前,还包括:
该终端接收该服务器发送的升级提醒;
该终端根据该升级提醒向该服务器发送升级请求;
该终端根据该升级请求执行该接收该服务器发送的目标文件或者用于下载该目标文件的地址信息的操作。
在该方法中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
第二方面,本申请实施例提供了一种软件升级的方法,包括:
服务器接收终端发送的第一安装包中的文件信息,其中,该文件信息包括多个文件的文件名及其校验值,该多个文件中任意一个文件的检验值为该终端确定需要对软件进行升级时根据预设防篡改算法对该任意一个文件处理获得的;
该服务器确定目标文件,其中,该目标文件包括更改文件和/或新增文件,该更改文件为第二安装包包含的多个文件中,文件名与该第一安装包包含的多个文件中文件名相同但校验值不同的文件,该新增文件为该第二安装包中包含的文件但该第一安装包中不包含的文件;该第二安装包为该第一安装包的升级版本;
该服务器向该终端发送该目标文件,或者用于下载该目标文件的地址信息,该目标文件用于升级该第一安装包。
在该方法中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在第二方面的一种可选方案中,该服务器向该终端发送该目标文件或者用于下载该目标文件的地址信息之前,还包括:
该服务器向该终端发送升级提醒;
该服务器接收该终端根据该升级提醒发送的升级请求;
该服务器根据该升级请求执行该向该终端发送该目标文件或者用于下载该目标文件的地址信息的操作。
在该方法中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
在第二方面的又一种可选方案中,该目标文件包括更改文件和新增文件,该服务器确定目标文件,包括:
该服务器将该第一安装包中的多个文件与该第二安装包中多个文件对比;
该服务器将该第二安装包包含的多个文件中,文件名与该第一安装包包含的多个文件中文件名相同但校验值不同的文件标记为更改文件;
将第二安装包中包含的文件但该第一安装包中不包含的文件标记为新增文件;
根据该更改文件和该新增文件确定该目标文件。
在第二方面的又一种可选方案中,该服务器向该终端发送该目标文件或者用于下载该目标文件的地址信息具体为向该终端发送用于下载该目标文件的地址信息;该方法还包括:
该服务器接收该终端根据该目标文件的下载地址信息发送的下载请求;
该服务器根据该下载请求向该终端发送该目标文件。
第三方面,本申请实施例提供了一种终端,该终端包括处理器和存储器,该存储器用于存储程序指令,该处理器调用该程序指令,用于执行如下操作:
在对软件进行升级时,获取第一安装包中的文件信息,其中,该文件信息包括多个文件的文件名及其校验值,该多个文件中任意一个文件的校验值为确定需要对该软件进行升级时根据预设防篡改算法对该任意一个文件处理获得的;
向服务器发送该第一安装包中的文件信息;
接收该服务器发送的目标文件或者用于下载该目标文件的地址信息,其中,该目标文件包括更改文件和/或新增文件,该更改文件为第二安装包包含的多个文件中,文件名与该第一安装包包含的多个文件中文件名相同但校验值不同的文件,该新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;该第二安装包为该第一安装包的升级版本;
根据该目标文件和未更改文件升级该软件,该未更改文件为第一安装包包含的多个文件中,文件名与该第二安装包包含的多个文件中文件名相同且校验值相同的文件。
在该终端中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在第三方面的一种可选方案中,该处理器,用于接收该服务器发送的用于下载该目标文件的下载地址信息之后,该处理器还用于:
根据该目标文件的下载地址信息向该服务器发送下载请求;
接收该服务器根据该下载请求发送的该目标文件。
在第三方面的又一种可选方案中,该处理器,还用于在接收该服务器发送的目标文件,或者用于下载该目标文件的地址信息之前,接收该服务器发送的升级提醒;
根据该升级提醒向该服务器发送升级请求;
根据该升级请求执行该接收该服务器发送的目标文件或者用于下载该目标文件的地址信息的操作。
在该终端中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
第四方面,本申请实施例提供了一种服务器,该服务器包括处理器和存储器,该存储器用于存储程序指令,该处理器调用该程序指令,用于执行如下操作:
接收终端发送的第一安装包中的文件信息,其中,该文件信息包括多个文件的文件名及其校验值,该多个文件中任意一个文件的检验值为该终端确定需要对软件进行升级时根据预设防篡改算法对该任意一个文件处理获得的;
确定目标文件,其中,该目标文件包括更改文件和/或新增文件,该更改文件为第二安装包包含的多个文件中,文件名与该第一安装包包含的多个文件中文件名相同但校验值不同的文件,该新增文件为该第二安装包中包含的文件但该第一安装包中不包含的文件;该第二安装包为该第一安装包的升级版本;
向该终端发送该目标文件,或者用于下载该目标文件的地址信息,该目标文件用于升级该第一安装包。
在该服务器中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在第四方面的一种可选方案中,该处理器,用于向该终端发送该目标文件或者用于下载该目标文件的地址信息之前,该处理器还用于:
向该终端发送升级提醒;
接收该终端根据该升级提醒发送的升级请求;
根据该升级请求执行该向该终端发送该目标文件或者用于下载该目标文件的地址信息的操作。
在该服务器中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
在第四方面的又一种可选方案中,该目标文件包括更改文件和新增文件,该处理器用于确定目标文件,具体为:
将该第一安装包中的多个文件与该第二安装包中多个文件对比;
将该第二安装包包含的多个文件中,文件名与该第一安装包包含的多个文件中文件名相同但校验值不同的文件标记为更改文件;
将第二安装包中包含的文件但该第一安装包中不包含的文件标记为新增文件;
根据该更改文件和该新增文件确定该目标文件。
在第四方面的又一种可选方案中,该处理器用于向该终端发送该目标文件或者用于下载该目标文件的地址信息具体为向该终端发送用于下载该目标文件的地址信息;该处理器还用于:
接收该终端根据该目标文件的下载地址信息发送的下载请求;
根据该下载请求向该终端发送该目标文件。
第五方面,本申请实施例提供了一种终端,包括:
获取单元,用于在对软件进行升级时,获取第一安装包中的文件信息,其中,该文件信息包括多个文件的文件名及其校验值,该多个文件中任意一个文件的校验值为确定需要对该软件进行升级时根据预设防篡改算法对该任意一个文件处理获得的;
第一发送单元,用于向服务器发送该第一安装包中的文件信息;
第一接收单元,用于接收该服务器发送的目标文件或者用于下载该目标文件的地址信息,其中,该目标文件包括更改文件和/或新增文件,该更改文件为第二安装包包含的多个文件中,文件名与该第一安装包包含的多个文件中文件名相同但校验值不同的文件,该新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;该第二安装包为该第一安装包的升级版本;
升级单元,用于根据该目标文件和未更改文件升级该软件,该未更改文件为第一安装包包含的多个文件中,文件名与该第二安装包包含的多个文件中文件名相同且校验值相同的文件。
在该终端中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在第五方面的一种可选方案中,该终端还包括:
第二发送单元,用于在该第一接收单元接收该服务器发送的用于下载该目标文件的下载地址信息之后,根据该目标文件的下载地址信息向该服务器发送下载请求;
第二接收单元,用于接收该服务器根据该下载请求发送的该目标文件。
在第五方面的又一种可选方案中,该终端还包括:
第三接收单元,用于在该第一接收单元接收该服务器发送的目标文件,或者用于下载该目标文件的地址信息之前,接收该服务器发送的升级提醒;
第三发送单元,用于根据该升级提醒向该服务器发送升级请求;
执行单元,用于根据该升级请求执行该接收该服务器发送的目标文件或者用于下载该目标文件的地址信息的操作。
在该终端中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
第六方面,本申请实施例提供了一种服务器,包括:
第一接收单元,用于接收终端发送的第一安装包中的文件信息,其中,该文件信息包括多个文件的文件名及其校验值,该多个文件中任意一个文件的检验值为该终端确定需要对软件进行升级时根据预设防篡改算法对该任意一个文件处理获得的;
确定单元,用于确定目标文件,其中,该目标文件包括更改文件和/或新增文件,该更改文件为第二安装包包含的多个文件中,文件名与该第一安装包包含的多个文件中文件名相同但校验值不同的文件,该新增文件为该第二安装包中包含的文件但该第一安装包中不包含的文件;该第二安装包为该第一安装包的升级版本;
第一发送单元,用于向该终端发送该目标文件,或者用于下载该目标文件的地址信息,该目标文件用于升级该第一安装包。
在该服务器中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在第六方面的一种可选的方案中,该服务器还包括:
第二发送单元,用于在该第一发送单元向该终端发送该目标文件或者用于下载该目标文件的地址信息之前,向该终端发送升级提醒;
第二接收单元,用于接收该终端根据该升级提醒发送的升级请求;
执行单元,用于根据该升级请求执行该向该终端发送该目标文件或者用于下载该目标文件的地址信息的操作。
在该服务器中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
在第六方面的又一种可选的方案中,该目标文件包括更改文件和新增文件,该确定单元,用于确定目标文件,具体为:
将该第一安装包中的多个文件与该第二安装包中多个文件对比;
将该第二安装包包含的多个文件中,文件名与该第一安装包包含的多个文件中文件名相同但校验值不同的文件标记为更改文件;
将第二安装包中包含的文件但该第一安装包中不包含的文件标记为新增文件;
根据该更改文件和该新增文件确定该目标文件。
在第六方面的又一种可选的方案中,该第一发送单元,用于向该终端发送该目标文件或者用于下载该目标文件的地址信息具体为向该终端发送用于下载该目标文件的地址信息;该服务器还包括:
第三接收单元,接收该终端根据该目标文件的下载地址信息发送的下载请求;
第三发送单元,根据该下载请求向该终端发送该目标文件。
第七方面,本申请实施例提供了一种软件升级系统,包括终端和服务器,其中:
该终端为第三方面,或者第三方面的任意一种可能的实现方式所描述的终端;
该服务器为第四方面,或者第四方面的任意一种可能的实现方式所描述的服务器。
第八方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该计算机程序当被处理器执行时使该处理器实现第一方面、第二方面中任意一方面或者任意一方面的可选方案所描述的方法。
通过实施本申请实施例,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种软件升级方法的架构示意图;
图2是本申请实施例提供的一种软件升级方法的流程示意图;
图3是本申请实施例提供的又一种软件升级方法的流程示意图;
图4是本申请实施例提供的一种终端的结构示意图;
图5是本申请实施例提供的一种服务器的结构示意图;
图6是本申请实施例提供的又一种终端的结构示意图;
图7是本申请实施例提供的又一种服务器的结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行描述。
请参见图1,图1是本申请实施例提供的一种软件升级方法的系统架构示意图,该系统包括终端101,服务器102,该终端101上可以部署一个或者多个待升级的软件,该服务器102上可以存储有该一个或者多个待升级的软件的新版本软件安装包。终端101可以是手机,电脑,穿戴设备,车载设备,服务器102可以为单个服务器或者由多个服务器构成的服务器集群。
例如,车载设备上部署有一个诊断软件,诊断软件的旧版本安装包为第一安装包,第一安装包中有多个文件,诊断软件确定对旧版本安装包升级时,获得第一安装包中的多个文件的文件名和校验值,诊断软件向服务器发送第一安装包中的多个文件的文件名和校验值。服务器接收诊断软件发送的第一安装包中的多个文件的文件名和校验值。服务器中存储有诊断软件的新版本安装包,该诊断软件的新版本安装包为第二安装包,服务器将第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,服务器向车载设备发送目标文件,车载设备根据目标文件升级诊断软件。
请参见图2,图2是本申请实施例提供的一种软件升级方法的流程示意图,该方法包括但不限于如下步骤。
步骤S201:终端在对软件进行升级时,终端获取第一安装包中的文件信息。
具体地,该文件信息包括多个文件的文件名及其校验值,多个文件中任意一个文件的校验值为终端确定需要对软件进行升级时,根据预设防篡改算法对任意一个文件处理获得的。预设防篡改算法可以包括MD5消息摘要算法,哈希算法中的一项或者多项。可选的,该预设防篡改算法除了包括这里例举的算法之外,还可能包括其他算法。第一安装包是终端中软件的旧版本软件安装包。
本申请实施例中,终端获取第一安装包中的文件信息的一种可选方式可以如下:
例如,假若第一安装包中共有5个文件,分别为文件1,文件2,文件3,文件4,文件5,其中,文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E。在需要对软件进行升级时,终端根据哈希算法对文件1处理得到文件1的检验值为m1,根据哈希算法对文件2处理得到文件2的检验值为m2,根据哈希算法对文件3处理得到文件3的检验值为m3,根据哈希算法对文件4处理得到文件4的检验值为m4,根据哈希算法对文件5处理得到文件5的检验值为m5,则终端获得第一安装包中的文件信息为5个文件,其中每个文件的文件名和文件的校验值为:文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E,文件1的校验值为m1,文件2的校验值为m2,文件3的校验值为m3,文件4的校验值为m4,文件5的校验值为m5。
步骤S202:终端向服务器发送第一安装包中的文件信息。
例如,终端获得第一安装包中的文件信息,该文件信息为5个文件的文件名和文件的校验值为:文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E,文件1的校验值为m1,文件2的校验值为m2,文件3的校验为m3,文件4的校验值为m4,文件5的校验值为m5。终端向服务器发送第一安装包中的文件信息,该文件信息为5个文件的文件名和文件的校验值:文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E,文件1的校验值为m1,文件2的校验值为m2,文件3的校验为m3,文件4的校验值为m4,文件5的校验值为m5。
步骤S203:服务器接收终端发送的第一安装包中的文件信息。
步骤S204:服务器根据第一安装包中的文件信息确定目标文件。
具体地,目标文件包括更改文件和/或新增文件,更改文件为第二安装包包含的多个文件中,文件名与
第一安装包包含的多个文件中文件名相同但校验值不同的文件,新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;第二安装包为第一安装包的升级版本。
具体地,目标文件包括更改文件,服务器确定目标文件,包括:服务器将第一安装包中的多个文件与第二安装包中多个文件对比,服务器将第二安装包包含的多个文件中,文件名与第一安装包包含的多个文件中文件名相同但校验值不同的文件标记为更改文件,根据更改文件确定目标文件。
本申请实施例中,目标文件包括更改文件,服务器根据第一安装包中的文件信息确定目标文件一种可选方式可以如下:
例如,服务器接收终端发送的第一安装包中文件信息,其中,文件信息包括5个文件,分别为文件1,文件2,文件3,文件4,文件5,其中,文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E。文件1的校验值为m1,文件2的校验值为m2,文件3的校验为m3,文件4的校验值为m4,文件5的校验值为m5。
第二安装包中的文件信息包括5个文件,分别为文件6,文件7,文件8,文件9,文件10,文件6的文件名为A,文件7的文件名为B,文件8的文件名为C,文件9的文件名为D,文件10的文件名为E,文件6的校验值为n1,文件7的校验值为n2,文件8的校验值为m3,文件9的校验值为m4,文件10的校验值为m5。
第一种情况,服务器将文件1与文件6的文件名对比得到文件1与文件6的文件名相同,将文件1与文件7的文件名对比得到文件1与文件7的文件名不相同,将文件1与文件8的文件名对比得到文件1与文件8的文件名不相同,将文件1与文件9的文件名对比得到文件1与文件9的文件名不相同,将文件1与文件10的文件名对比得到文件1与文件10的文件名不相同;将文件2与文件6的文件名对比得到文件2与文件6的文件名不相同,将文件2与文件7的文件名对比得到文件2与文件7的文件名相同,将文件2与文件8的文件名对比得到文件2与文件8的文件名不相同,将文件2与文件9的文件名对比得到文件2与文件9的文件名不相同,将文件2与文件10的文件名对比得到文件2与文件10的文件名不相同;文件3,文件4,文件5依次类推,得到文件3与文件8的文件名相同,文件4与文件9的文件名相同,文件5与文件10的文件名相同,之后,服务器将对比文件名相同的文件的校验值,文件1与文件6的校验值对比,文件2与文件7的校验值对比,文件3与文件8的校验值对比,文件4与文件9的校验值对比,文件5与文件10的校验值对比,得到文件1的校验值为m1,文件6的校验值为n1,文件2的校验值为m2,文件7的校验值为n2,文件3与文件8的校验值相同都为m3,文件4与文件9的校验值相同都为m4,文件5与文件10的校验值相同都为m5,则文件1与文件6的文件名都为A,但文件1与文件6的校验值不同,文件2与文件7的文件名都为B,但文件2与文件7的校验值不同,则将文件6与文件7标记为更改文件,根据更改文件为文件6与文件7确定目标文件为文件6和文件7。
第二种情况,服务器对比文件1与文件6的文件名,得到文件1与文件6的文件名相同都为A,然后对比文件1和文件6的校验值,得到文件1的校验值为m1,文件6的校验值为n1,则文件1和文件6的文件名相同但校验值不同,则将文件6标记为更改文件;服务器对比文件1与文件7的文件名,得到文件1与文件7的文件名不同,则文件1与文件7的校验值不进行对比;服务器对比文件1与文件8的文件名,得到文件1与文件8的文件名不同,则文件1与文件8的校验值不进行对比;服务器对比文件1与文件9的文件名,得到文件1与文件9的文件名不同,则文件1与文件9的校验值不进行对比;服务器对比文件1与文件10的文件名,得到文件1与文件10的文件名不同,则文件1与文件10的校验值不进行对比;之后,服务器对比文件2与文件6的文件名,得到文件2与文件6的文件名不同,则文件2与文件6的校验值不进行对比;服务器对比文件2与文件7的文件名,得到文件2与文件7的文件名相同都为B,然后对比文件2和文件7的校验值,得到文件2的校验值为m2,文件7的校验值为n2,则文件2和文件7的文件名相同但校验值不同,将文件7标记为更改文件,服务器对比文件2与文件8的文件名,得到文件2与文件8的文件名不同,则文件2与文件8的校验值不进行对比;服务器对比文件2与文件9的文件名,得到文件2与文件9的文件名不同,则文件2与文件9的校验值不进行对比;服务器对比文件2与文件10的文件名,得到文件2与文件10的文件名不同,则文件2与文件10的校验值不进行对比;之后,服务器对文件3,文件4,文件5也依次类推得到,文件3与文件8的文件名相同都为C,文件3和文件8的校验值相同都为m3;文件4与文件9的文件名相同都为D,文件4和文件9的校验值相同都为m4,文件5与文件10的文件名相同都为E,文件5和文件10的校验值相同都为m4。最终服务器将文件6与文件7标记为更改文件,根据更改文件为文件6与文件7确定目标文件为文件6与文件7。
具体地,目标文件包括新增文件,服务器确定目标文件,包括:服务器将第一安装包中的多个文件与第二安装包中多个文件对比,服务器将第二安装包中包含的文件但第一安装包中不包含的文件标记为新增文件,根据新增文件确定目标文件。
本申请实施例中,目标文件包括新增文件,服务器根据第一安装包中的文件信息确定目标文件一种可选方式可以如下:
例如,服务器接收终端发送的第一安装包中文件信息,其中,文件信息包括5个文件,分别为文件1,文件2,文件3,文件4,文件5,其中,文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E。文件1的校验值为m1,文件2的校验值为m2,文件3的校验为m3,文件4的校验值为m4,文件5的校验值为m5。
第二安装包中的文件信息包括6个文件,分别为文件6,文件7,文件8,文件9,文件10,文件11,文件6的文件名为A,文件7的文件名为B,文件8的文件名为C,文件9的文件名为D,文件10的文件名为E,文件11的文件名为F,文件6的校验值为m1,文件7的校验值为m2,文件8的校验值为m3,文件9的校验值为m4,文件10的校验值为m5,文件11的检验值为m6。
服务器将文件1与文件6的文件名对比得到文件1与文件6的文件名相同,将文件1与文件7的文件名对比得到文件1与文件7的文件名不相同,将文件1与文件8的文件名对比得到文件1与文件8的文件名不相同,将文件1与文件9的文件名对比得到文件1与文件9的文件名不相同,将文件1与文件10的文件名对比得到文件1与文件10的文件名不相同,将文件1与文件11的文件名对比得到文件1与文件11的文件名不相同;将文件2与文件6的文件名对比得到文件2与文件6的文件名不相同,将文件2与文件7的文件名对比得到文件2与文件7的文件名相同,将文件2与文件8的文件名对比得到文件2与文件8的文件名不相同,将文件2与文件9的文件名对比得到文件2与文件9的文件名不相同,将文件2与文件10的文件名对比得到文件2与文件10的文件名不相同,将文件2与文件11的文件名对比得到文件2与文件11的文件名不相同;文件3,文件4,文件5依次类推,得到文件3与文件8的文件名相同,文件4与文件9的文件名相同,文件5与文件10的文件名相同,之后,则将第二安装包中除文件6,文件7,文件8,文件9,文件10之外的文件11标记为新增文件,根据新增文件为文件11,确定目标文件为文件11。
具体地,目标文件包括更改文件和新增文件,服务器确定目标文件,包括:服务器将第一安装包中的多个文件与第二安装包中多个文件对比,服务器将第二安装包包含的多个文件中,文件名与第一安装包包含的多个文件中文件名相同但校验值不同的文件标记为更改文件;服务器将第二安装包中包含的文件但第一安装包中不包含的文件标记为新增文件,根据更改文件和新增文件确定目标文件。
本申请实施例中,目标文件包括更改文件和新增文件,服务器根据第一安装包中的文件信息确定目标文件一种可选方式可以如下:
例如,服务器接收终端发送的第一安装包中文件信息,其中,文件信息包括5个文件,分别为文件1,文件2,文件3,文件4,文件5,其中,文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E。文件1的校验值为m1,文件2的校验值为m2,文件3的校验为m3,文件4的校验值为m4,文件5的校验值为m5。
第二安装包中的文件信息包括6个文件,分别为文件6,文件7,文件8,文件9,文件10,文件11,文件6的文件名为A,文件7的文件名为B,文件8的文件名为C,文件9的文件名为D,文件10的文件名为E,文件11的文件名为F,文件6的校验值为n1,文件7的校验值为n2,文件8的校验值为m3,文件9的校验值为m4,文件10的校验值为m5,文件11的检验值为m6。
第一种情况,服务器将文件1与文件6的文件名对比得到文件1与文件6的文件名相同,将文件1与文件7的文件名对比得到文件1与文件7的文件名不相同,将文件1与文件8的文件名对比得到文件1与文件8的文件名不相同,将文件1与文件9的文件名对比得到文件1与文件9的文件名不相同,将文件1与文件10的文件名对比得到文件1与文件10的文件名不相同,将文件1与文件11的文件名对比得到文件1与文件11的文件名不相同;将文件2与文件6的文件名对比得到文件2与文件6的文件名不相同,将文件2与文件7的文件名对比得到文件2与文件7的文件名相同,将文件2与文件8的文件名对比得到文件2与文件8的文件名不相同,将文件2与文件9的文件名对比得到文件2与文件9的文件名不相同,将文件2与文件10的文件名对比得到文件2与文件10的文件名不相同,将文件2与文件11的文件名对比得到文件2与文件11的文件名不相同;文件3,文件4,文件5依次类推,得到文件3与文件8的文件名相同,文件4与文件9的文件名相同,文件5与文件10的文件名相同,之后,服务器将对比文件名相同的文件的校验值,文件1与文件6的校验值对比,文件2与文件7的校验值对比,文件3与文件8的校验值对比,文件4与文件9的校验值对比,文件5与文件10的校验值对比,得到文件1的校验值为m1,文件6的校验值为n1,文件2的校验值为m2,文件7的校验值为n2,文件3与文件8的校验值相同都为m3,文件4与文件9的校验值相同都为m4,文件5与文件10的校验值相同都为m5,则文件1与文件6的文件名都为A,但文件1与文件6的校验值不同,文件2与文件7的文件名都为B,但文件2与文件7的校验值不同,则将文件6与文件7标记为更改文件,服务器将除文件6,文件7,文件8,文件9,文件10之外的文件11标记为新增文件,根据更改文件为文件6与文件7,以及新增文件为文件11确定目标文件为文件6、文件7和文件11。
第二种情况,服务器对比文件1与文件6的文件名,得到文件1与文件6的文件名相同都为A,然后对比文件1和文件6的校验值,得到文件1的校验值为m1,文件6的校验值为n1,则文件1和文件6的文件名相同但校验值不同,将文件6标记为更改文件;服务器对比文件1与文件7的文件名,得到文件1与文件7的文件名不同,则文件1与文件7的校验值不进行对比;服务器对比文件1与文件8的文件名,得到文件1与文件8的文件名不同,则文件1与文件8的校验值不进行对比;服务器对比文件1与文件9的文件名,得到文件1与文件9的文件名不同,则文件1与文件9的校验值不进行对比;服务器对比文件1与文件10的文件名,得到文件1与文件10的文件名不同,则文件1与文件10的校验值不进行对比,服务器对比文件1与文件11的文件名,得到文件1与文件11的文件名不同,则文件1与文件11的校验值不进行对比;之后,服务器对比文件2与文件6的文件名,得到文件2与文件6的文件名不同,则文件2与文件6的校验值不进行对比;服务器对比文件2与文件7的文件名,得到文件2与文件7的文件名相同都为B,然后对比文件2和文件7的校验值,得到文件2的校验值为m2,文件7的校验值为n2,则文件2和文件7的文件名相同但校验值不同,将文件7标记为更改文件,服务器对比文件2与文件8的文件名,得到文件2与文件8的文件名不同,则文件2与文件8的校验值不进行对比;服务器对比文件2与文件9的文件名,得到文件2与文件9的文件名不同,则文件2与文件9的校验值不进行对比;服务器对比文件2与文件10的文件名,得到文件2与文件10的文件名不同,则文件2与文件10的校验值不进行对比,服务器对比文件2与文件11的文件名,得到文件2与文件11的文件名不同,则文件2与文件11的校验值不进行对比;之后,服务器对文件3,文件4,文件5也依次类推得到,文件3与文件8的文件名相同都为C,文件3和文件8的校验值相同都为m3;文件4与文件9的文件名相同都为D,文件4和文件9的校验值相同都为m4,文件5与文件10的文件名相同都为E,文件5和文件10的校验值相同都为m4。最终服务器将文件6与文件7标记为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为文件11,将文件11标记为新增文件,根据更改文件为文件6与文件7,以及新增文件为文件11确定目标文件为文件6、文件7和文件11。
步骤S205:服务器向终端发送目标文件或者用于下载目标文件的地址信息。
用于下载目标文件的地址信息可以为链接地址,例如,可以是IP地址,或者HTTP地址。
可选的,服务器向终端发送目标文件,或者用于下载目标文件的地址信息之前,服务器向终端发送升级提醒,终端根据升级提醒向服务器发送升级请求,服务器根据升级请求执行向终端发送目标文件,或者用于下载目标文件的地址信息的操作。
服务器向终端发送目标文件或者用于下载目标文件的地址信息具体为向终端发送用于下载目标文件的地址信息具体为:服务器接收终端根据目标文件的下载地址信息发送的下载请求。服务器根据下载请求向终端发送目标文件。
步骤S206:终端接收服务器发送的目标文件或者用于下载目标文件的地址信息。
步骤S207:终端根据目标文件和未更改文件升级软件。
未更改文件为第一安装包包含的多个文件中,文件名与第二安装包包含的多个文件中文件名相同且校验值相同的文件。
未更改文件可以为服务器发送的或者终端对第一安装包与目标文件对比得到的。
本申请实施例中,终端根据目标文件和未更改文件升级软件一种可选方式可以如下:
例如,第一安装包中共有5个文件,分别为文件1,文件2,文件3,文件4,文件5,其中,文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E,文件1的校验值为m1,文件2的校验值为m2,文件3的校验为m3,文件4的校验值为m4,文件5的校验值为m5。
第二安装包中共有5个文件,分别为文件6,文件7,文件8,文件9,文件10,文件6的文件名为A,文件7的文件名为B,文件8的文件名为C,文件9的文件名为D,文件10的文件名为E,文件6的校验值为n1,文件7的校验值为n2,文件8的校验值为m3,文件9的校验值为m4,文件10的校验值为m5。
第一种情况,终端接收服务器发送的目标文件为文件6与文件7,服务器将文件1与文件8,文件9,文件10分别对比得到文件1与文件8,文件9,文件10的文件名都不相同,将文件2与文件8,文件9,文件10分别对比得到文件2与文件8,文件9,文件10的文件名都不相同,对比文件3与文件8的文件名和校验值得到文件3与文件8的文件名相同且校验值也相同,则文件3与文件8为相同的文件,对比文件4与文件9的文件名和校验值得到文件4与文件9的文件名相同且校验值也相同,则文件4与文件9为相同的文件,对比文件5与文件10的文件名和校验值得到文件5与文件10的文件名相同且校验值也相同,则文件5与文件10为相同的文件,则服务器向终端发送第二安装包中与第一安装包中文件名和校验值都相同的文件,文件8,文件9,文件10,终端接收服务器发送的文件8,文件9,文件10,终端根据服务器发送的目标文件,文件6,文件7,以及服务器发送的未更改文件,文件8,文件9,文件10升级软件。
第二种情况,终端接收服务器发送的目标文件为文件6与文件7,得到文件6的文件名为A,文件6的校验值为n1,文件7的文件名为B,文件7的校验值为n2,将文件6与文件1,文件2,文件3,文件4,文件5分别对比得到文件6与文件1文件名相同但校验值不同,文件7与文件2,文件3,文件4,文件5分别对比得到文件7与文件2文件名相同但校验值不同,则第一安装包中除文件1,文件2之外,文件3,文件4,文件5为未更改文件,则终端根据未更改文件,文件3,文件4,文件5,以及目标文件,文件6,文件7升级软件。
在图2所描述的方法中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
请参见图3,图3是本申请实施例提供的又一种软件升级方法的流程示意图,该方法包括但不限于如下步骤。
步骤S301:终端获取第一安装包中的文件信息,具体原理可以参照步骤S201。
步骤S302:终端向服务器发送升级请求和第一安装包中的文件信息。
第一种情况,终端可以先向服务器发送升级请求,服务器接收终端发送的升级请求后,向终端发送接收升级请求的回复,终端接收服务器发送的接收升级请求的回复后,向服务器发送第一安装包中的文件信息。
第二种情况,终端向服务器同时发送升级请求和第一安装包中的文件信息。
步骤S303:服务器接收终端发送的升级请求和第一安装包中的文件信息。
步骤S304:服务器对比第一文件安装包中的文件信息和第二安装包中的文件信息,得到未更改文件信息记录和用于下载目标文件的地址信息。
未更改文件为第一安装包包含的多个文件中,文件名与第二安装包包含的多个文件中文件名相同且校验值相同的文件。
目标文件包括更改文件和/或新增文件,更改文件为第二安装包包含的多个文件中,文件名与第一安装包包含的多个文件中文件名相同但校验值不同的文件,新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;第二安装包为第一安装包的升级版本。
本申请实施例中,服务器对比第一文件安装包中的文件信息和第二安装包中的文件信息,得到未更改文件信息记录和用于下载目标文件的地址信息一种可选方式可以如下:
例如,服务器接收终端发送的第一安装包中的文件信息,即每个文件的文件名和文件的校验值为:第一安装包中共有5个文件,分别为文件1,文件2,文件3,文件4,文件5,其中,文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E,文件1的校验值为m1,文件2的校验值为m2,文件3的校验为m3,文件4的校验值为m4,文件5的校验值为m5。
第二安装包中的文件信息为5个文件,分别为文件6,文件7,文件8,文件9,文件10,其中,文件6的文件名为A,文件7的文件名为B,文件8的文件名为C,文件9的文件名为D,文件10的文件名为E,文件6的校验值为n1,文件7的校验值为n2,文件8的校验值为m3,文件9的校验值为m4,文件10的校验值为m5。
服务器将文件1与文件6的文件名和校验值分别对比得到文件1与文件6的文件名都为A,但文件1与文件6的检验值不同,则文件6为更改文件,将文件1与文件7的文件名对比得到文件1与文件7的文件名不同,将文件1与文件8的文件名对比得到文件1与文件8的文件名不同,将文件1与文件9的文件名对比得到文件1与文件9的文件名不同,将文件1与文件10的文件名对比得到文件1与文件10的文件名不同;将文件2与文件6的文件名对比得到文件2与文件6的文件名不同,将文件2与文件7的文件名和校验值分别对比得到文件2与文件7的文件名都为B,但文件2与文件7的检验值不同,则文件7为更改文件,将文件2与文件8的文件名对比得到文件2与文件8的文件名不同,将文件2与文件9的文件名对比得到文件2与文件9的文件名不同,将文件2与文件10的文件名对比得到文件2与文件10的文件名不同;文件3,文件4,文件5也以此类推,得到文件3与文件8的文件名和校验值都相同,文件4与文件9的文件名和校验值都相同,文件5与文件10的文件名和校验值都相同,则文件8,文件9,文件10为未更改文件。综上,文件6与文件7为更改文件,因此文件6与文件7为目标文件,文件8,文件9,文件10为为更改文件。服务器将文件6,文件7打包生成用于下载目标文件的地址信息。文件8的文件名和校验值,文件9的文件名和校验值,文件10的文件名和校验值的文件名为未更改文件信息记录。
步骤S305:服务器向终端发送的未更改文件信息记录和用于下载目标文件的地址信息。
步骤S306:终端接收服务器发送的未更改文件信息记录,根据未更改文件信息记录将未更改文件拷贝到新软件版本安装目录中。
例如,第一安装包中的文件信息为5个文件,分别为文件1,文件2,文件3,文件4,文件5,其中,文件1的文件名为A,文件2的文件名为B,文件3的文件名为C,文件4的文件名为D,文件5的文件名为E,文件1的校验值为m1,文件2的校验值为m2,文件3的校验为m3,文件4的校验值为m4,文件5的校验值为m5。
终端接收服务器发送的未更改文件信息记录为文件8的文件名为C,文件8的校验值为m3,文件9的文件名为D,文件9的校验值为m4,文件10的文件名为E,文件10的校验值为m5,则终端将文件8与文件1的文件名对比得到文件8与文件1文件名不同,将文件8与文件2的文件名对比得到文件8与文件2文件名不同,将文件8与文件3的文件名和校验值分别对比得到文件8与文件3的文件名和校验值都相同,将文件8与文件4的文件名对比得到文件8与文件4文件名不同,将文件8与文件5的文件名对比得到文件8与文件5文件名不同;终端将文件9与文件1的文件名对比得到文件9与文件1文件名不同,将文件9与文件2的文件名对比得到文件9与文件2文件名不同,将文件9与文件3的文件名和校验值分别对比得到文件9与文件4的文件名和校验值都相同,将文件9与文件5的文件名对比得到文件9与文件5文件名不同,文件10也以此类推,得到文件10与文件5的文件名和校验值都相同,终端将文件名为C且校验值为m3的文件3,文件名为D且校验值为m4的文件4,文件名为E且校验值为m5的文件5复制到新软件版本安装目录中,新软件版本安装目录建立与终端获取第一安装包中的文件信息之前。
步骤S307:终端接收服务器发送的用于下载目标文件的地址信息,根据用于下载目标文件的地址信息下载目标文件,将目标文件解压到新软件版本安装目录。
例如,终端根据用于下载目标文件的地址信息下载目标文件,文件6和文件7,将文件6和文件7解压到新软件版本安装目录中。
步骤S306与步骤S307可任意调换执行顺序。
在图3所描述的方法中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图4,图4是本申请实施例提供的一种终端的结构示意图,该终端可以包括获取单元401,第一发送单元402,第一接收单元403,升级单元404,其中,各个单元的详细描述如下。
获取单元401,用于在对软件进行升级时,获取第一安装包中的文件信息,其中所述文件信息包括多个文件的文件名及其校验值,所述多个文件中任意一个文件的校验值为确定需要对所述软件进行升级时根据预设防篡改算法对所述任意一个文件处理获得的;
第一发送单元402,用于向服务器发送所述第一安装包中的文件信息;
第一接收单元403,用于接收所述服务器发送的目标文件,或者用于下载所述目标文件的地址信息,其中,所述目标文件包括更改文件和/或新增文件,所述更改文件为第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件,所述新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;所述第二安装包为所述第一安装包的升级版本;
升级单元404,用于根据所述目标文件和未更改文件升级所述软件,所述未更改文件为第一安装包包含的多个文件中,文件名与所述第二安装包包含的多个文件中文件名相同且校验值相同的文件。
在上述终端中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在一种可选方案中,所述终端还包括:
第二发送单元,用于在所述第一接收单元接收所述服务器发送的用于下载所述目标文件的下载地址信息之后,根据所述目标文件的下载地址信息向所述服务器发送下载请求;
第二接收单元,用于接收所述服务器根据所述下载请求发送的所述目标文件。
在又一种可选方案中,所述终端还包括:
第三接收单元,用于在所述第一接收单元接收所述服务器发送的目标文件或者用于下载所述目标文件的地址信息之前,接收所述服务器发送的升级提醒;
第三发送单元,用于根据所述升级提醒向所述服务器发送升级请求;
执行单元,用于根据所述升级请求执行所述接收所述服务器发送的目标文件或者用于下载所述目标文件的地址信息的操作。
在上述终端中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
在图4所描述的终端中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
请参见图5,图5是本申请实施例提供的一种服务器的结构示意图,该服务器可以包括第一接收单元501,确定单元502,第一发送单元503,其中,各个单元的详细描述如下。
第一接收单元501,用于接收终端发送的第一安装包中的文件信息,其中所述文件信息包括多个文件的文件名及其校验值,所述多个文件中任意一个文件的检验值为所述终端确定需要对软件进行升级时根据预设防篡改算法对所述任意一个文件处理获得的;
确定单元502,用于确定目标文件,其中,所述目标文件包括更改文件和/或新增文件,所述更改文件为第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件,所述新增文件为所述第二安装包中包含的文件但所述第一安装包中不包含的文件;所述第二安装包为所述第一安装包的升级版本;
第一发送单元503,用于向所述终端发送所述目标文件,或者用于下载所述目标文件的地址信息,所述目标文件用于升级所述第一安装包。
在上述服务器中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在一种可选的方案中,所述服务器还包括:
第二发送单元,用于在所述第一发送单元向所述终端发送所述目标文件或者用于下载所述目标文件的地址信息之前,向所述终端发送升级提醒;
第二接收单元,用于接收所述终端根据所述升级提醒发送的升级请求;
执行单元,用于根据所述升级请求执行所述向所述终端发送所述目标文件或者用于下载所述目标文件的地址信息的操作。
在上述服务器中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
在又一种可选的方案中,所述确定单元502,用于所述目标文件包括更改文件和新增文件,确定目标文件,具体为:
将所述第一安装包中的多个文件与所述第二安装包中多个文件对比;
将所述第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件标记为更改文件;
将第二安装包中包含的文件但所述第一安装包中不包含的文件标记为新增文件;
根据所述更改文件和所述新增文件确定所述目标文件。
在又一种可选的方案中,所述第一发送单元503,用于向所述终端发送所述目标文件或者用于下载所述目标文件的地址信息具体为向所述终端发送用于下载所述目标文件的地址信息;所述服务器还包括:
第三接收单元,接收所述终端根据所述目标文件的下载地址信息发送的下载请求;
第三发送单元,根据所述下载请求向所述终端发送所述目标文件。
在图5所描述的服务器中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
请参见图6,图6是本申请实施例提供的又一种终端600,本申请实施例中所描述的终端600对应前文所述的终端,所述终端600包括:处理器601、通信接口602及存储器603。其中,处理器601、通信接口602及存储器603可通过总线或其他方式连接,本申请实施例以通过总线连接为例。
其中,处理器601(或称中央处理器(Central Processing Unit,CPU))是终端600的计算核心以及控制核心,其可以解析终端600内的各类指令以及处理终端600的各类数据,例如:CPU可以在终端600内部结构之间传输各类交互数据,等等。通信接口602可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器601的控制可以用于收发数据;通信接口602还可以用于终端600内部信令或者指令的传输以及交互。存储器603(Memory)是终端600中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器603既可以包括终端600的内置存储器,当然也可以包括终端600所支持的扩展存储器。存储器603提供存储空间,该存储空间存储了终端600的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
在本申请实施例中,处理器601运行存储器603中的可执行程序代码,用于执行如下操作:
在对软件进行升级时,获取第一安装包中的文件信息,其中,所述文件信息包括多个文件的文件名及其校验值,所述多个文件中任意一个文件的校验值为确定需要对所述软件进行升级时根据预设防篡改算法对所述任意一个文件处理获得的;
向服务器发送所述第一安装包中的文件信息;
接收所述服务器发送的目标文件,或者用于下载所述目标文件的地址信息,其中,所述目标文件包括更改文件和/或新增文件,所述更改文件为第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件,所述新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;所述第二安装包为所述第一安装包的升级版本;
根据所述目标文件和未更改文件升级所述软件,所述未更改文件为第一安装包包含的多个文件中,文件名与所述第二安装包包含的多个文件中文件名相同且校验值相同的文件。
在上述终端中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在一种可选方案中,所述处理器601,用于接收所述服务器发送的用于下载所述目标文件的下载地址信息之后,所述处理器601还用于:
根据所述目标文件的下载地址信息向所述服务器发送下载请求;
接收所述服务器根据所述下载请求发送的所述目标文件。
在又一种可选方案中,所述处理器601,用于接收所述服务器发送的目标文件或者用于下载所述目标文件的地址信息之前,所述处理器601还用于:
接收所述服务器发送的升级提醒;
根据所述升级提醒向所述服务器发送升级请求;
根据所述升级请求执行所述接收所述服务器发送的目标文件或者用于下载所述目标文件的地址信息的操作。
在上述终端中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
需要说明的是,各个操作的实现还可以对应参照图2所示的方法实施例的相应描述。该终端600为图2所示方法实施例中的终端。
在图6所描述的终端中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
请参见图7,图7是本申请实施例提供的又一种服务器700,本申请实施例中所描述的服务器700对应前文所述的服务器,所述服务器700包括:处理器701、通信接口702及存储器703。其中,处理器701、通信接口702及存储器703可通过总线或其他方式连接,本申请实施例以通过总线连接为例。
其中,处理器701(或称中央处理器(Central Processing Unit,CPU))是服务器700的计算核心以及控制核心,其可以解析服务器700内的各类指令以及处理服务器700的各类数据,例如:CPU可以在服务器700内部结构之间传输各类交互数据,等等。通信接口702可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器701的控制可以用于收发数据;通信接口702还可以用于服务器700内部信令或者指令的传输以及交互。存储器703(Memory)是服务器700中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器703既可以包括服务器700的内置存储器,当然也可以包括服务器700所支持的扩展存储器。存储器703提供存储空间,该存储空间存储了服务器700的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
在本申请实施例中,处理器701运行存储器703中的可执行程序代码,用于执行如下操作:
接收终端发送的第一安装包中的文件信息,其中,所述文件信息包括多个文件的文件名及其校验值,所述多个文件中任意一个文件的检验值为所述终端确定需要对软件进行升级时根据预设防篡改算法对所述任意一个文件处理获得的;
确定目标文件,其中,所述目标文件包括更改文件和/或新增文件,所述更改文件为第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件,所述新增文件为所述第二安装包中包含的文件但所述第一安装包中不包含的文件;所述第二安装包为所述第一安装包的升级版本;
向所述终端发送所述目标文件或者用于下载所述目标文件的地址信息,所述目标文件用于升级所述第一安装包。
在上述服务器中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
在一种可选方案中,所述处理器701用于向所述终端发送所述目标文件或者用于下载所述目标文件的地址信息之前,还用于:
向所述终端发送升级提醒;
接收所述终端根据所述升级提醒发送的升级请求;
根据所述升级请求执行所述向所述终端发送所述目标文件或者用于下载所述目标文件的地址信息的操作。
在上述服务器中,服务器在该服务器中存储新版本软件安装包之后,向终端发送升级提醒,终端根据服务器发送的升级提醒向服务器发送升级请求,之后进行软件升级。这种方式能够使用户通过终端及时对软件进行升级,更早的完善优化旧版本软件中的漏洞,让用户尽早体验新版本软件提供的最新功能。
在又一种可选方案中,所述目标文件包括更改文件和新增文件,所述处理器701用于确定目标文件,具体为:
将所述第一安装包中的多个文件与所述第二安装包中多个文件对比;
将所述第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件标记为更改文件;
所述服务器将第二安装包中包含的文件但所述第一安装包中不包含的文件标记为新增文件;
根据所述更改文件和所述新增文件确定所述目标文件。
在又一种可选方案中,所述处理器701用于向所述终端发送所述目标文件或者用于下载所述目标文件的地址信息具体为向所述终端发送用于下载所述目标文件的地址信息;所述处理器701还用于:
接收所述终端根据所述目标文件的下载地址信息发送的下载请求;
根据所述下载请求向所述终端发送所述目标文件。
需要说明的是,各个操作的实现还可以对应参照图2所示的方法实施例的相应描述。该服务器700为图2所示方法实施例中的服务器。
在图7所描述的服务器中,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述计算机程序当被处理器执行时使所述处理器实现图2所述实施例中终端所执行的操作,或者图2所述实施例中服务器所执行的操作,实现图3所述实施例中终端所执行的操作,或者图3所述实施例中服务器所执行的操作。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,实现图2所述实施例中终端所执行的操作,或者图2所述实施例中服务器所执行的操作,实现图3所述实施例中终端所执行的操作,或者图3所述实施例中服务器所执行的操作。
综上所述,通过实施本申请实施例,整个软件升级的过程中,服务器需要将终端发送的第一安装包中的多个文件与第二安装包中的多个文件的文件名和校验值对比得到目标文件,目标文件包括更改文件和/或新增文件,假若,终端向服务器发送第一安装包中的多个文件之前,第一安装包中的某个文件被损坏或者篡改,则服务器对比第一安装包中的多个文件和第二安装包中的多个文件时,第一安装包中某个被篡改文件的校验值与第二安装包中的某一个文件的文件名相同但校验值不同,确定第二安装包中某一个与被篡改文件文件名相同的文件为更改文件,第二安装包中包含的文件但第一安装包中不包含的文件为新增文件,服务器根据更改文件和/或新增文件确定目标文件,服务器向终端发送目标文件,终端根据目标文件升级软件。通过文件名和校验值对比的方式能有效地解决终端第一安装包中的某个文件被篡改或损坏,从而造成软件升级不成功的问题,显著提高了软件升级成功率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过程序来指令相关的硬件来完成,该的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。

Claims (10)

1.一种软件升级的方法,其特征在于,包括:
终端获取第一安装包中的文件信息,其中,所述文件信息包括多个文件的文件名及其校验值,所述多个文件中任意一个文件的校验值为确定需要对所述软件进行升级时根据预设防篡改算法对所述任意一个文件处理获得的;
所述终端向服务器发送所述第一安装包中的文件信息;
所述终端接收所述服务器发送的目标文件,或者用于下载所述目标文件的地址信息,其中,所述目标文件包括更改文件和/或新增文件,所述更改文件为第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件,所述新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;所述第二安装包为所述第一安装包的升级版本;
所述终端根据所述目标文件和未更改文件升级所述软件,所述未更改文件为第一安装包包含的多个文件中,文件名与所述第二安装包包含的多个文件中文件名相同且校验值相同的文件。
2.根据权利要求1所述的方法,其特征在于,所述终端接收所述服务器发送的用于下载所述目标文件的地址信息之后,还包括:
所述终端根据所述目标文件的地址信息向所述服务器发送下载请求;
所述终端接收所述服务器根据所述下载请求发送的所述目标文件。
3.根据权利要求1或2所述的方法,其特征在于,所述终端接收所述服务器发送的目标文件,或者用于下载所述目标文件的地址信息之前,还包括:
所述终端接收所述服务器发送的升级提醒;
所述终端根据所述升级提醒向所述服务器发送升级请求;
所述终端根据所述升级请求执行所述接收所述服务器发送的目标文件,或者用于下载所述目标文件的地址信息的步骤。
4.一种软件升级的方法,其特征在于,包括:
服务器接收终端发送的第一安装包中的文件信息,其中,所述文件信息包括多个文件的文件名及其校验值,所述多个文件中任意一个文件的检验值为所述终端确定需要对软件进行升级时根据预设防篡改算法对所述任意一个文件处理获得的;
所述服务器确定目标文件,其中,所述目标文件包括更改文件和/或新增文件,所述更改文件为第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件,所述新增文件为所述第二安装包中包含的文件但所述第一安装包中不包含的文件;所述第二安装包为所述第一安装包的升级版本;
所述服务器向所述终端发送所述目标文件,或者用于下载所述目标文件的地址信息,所述目标文件用于升级所述第一安装包。
5.根据权利要求4所述的方法,其特征在于,所述服务器向所述终端发送目标文件,或者用于下载所述目标文件的地址信息之前,还包括:
所述服务器向所述终端发送升级提醒;
所述服务器接收所述终端根据所述升级提醒发送的升级请求;
所述服务器根据所述升级请求执行所述向所述终端发送所述目标文件,或者用于下载所述目标文件的地址信息的步骤。
6.根据权利要求4或5所述的方法,其特征在于,所述目标文件包括更改文件和新增文件,所述服务器确定目标文件,包括:
所述服务器将所述第一安装包中的多个文件与所述第二安装包中多个文件对比;
所述服务器将所述第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件标记为更改文件;
所述服务器将第二安装包中包含的文件但所述第一安装包中不包含的文件标记为新增文件;
根据所述更改文件和所述新增文件确定所述目标文件。
7.根据权利要求4或5所述的方法,其特征在于,所述服务器向所述终端发送所述目标文件或者用于下载所述目标文件的地址信息具体为向所述终端发送用于下载所述目标文件的地址信息;所述方法还包括:
所述服务器接收所述终端根据所述目标文件的下载地址信息发送的下载请求;
所述服务器根据所述下载请求向所述终端发送所述目标文件。
8.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器用于存储程序指令,所述处理器调用所述程序指令,用于执行如下操作:
在对软件进行升级时,获取第一安装包中的文件信息,其中,所述文件信息包括多个文件的文件名及其校验值,所述多个文件中任意一个文件的校验值为确定需要对所述软件进行升级时根据预设防篡改算法对所述任意一个文件处理获得的;
向服务器发送所述第一安装包中的文件信息;
接收所述服务器发送的目标文件,或者用于下载所述目标文件的地址信息,其中,所述目标文件包括更改文件和/或新增文件,所述更改文件为第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件,所述新增文件为第二安装包中包含的文件但第一安装包中不包含的文件;所述第二安装包为所述第一安装包的升级版本;
根据所述目标文件和未更改文件升级所述软件,所述未更改文件为第一安装包包含的多个文件中,文件名与所述第二安装包包含的多个文件中文件名相同且校验值相同的文件。
9.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器用于存储程序指令,所述处理器调用所述程序指令,用于执行如下操作:
接收终端发送的第一安装包中的文件信息,其中,所述文件信息包括多个文件的文件名及其校验值,所述多个文件中任意一个文件的检验值为所述终端确定需要对软件进行升级时根据预设防篡改算法对所述任意一个文件处理获得的;
确定目标文件,其中,所述目标文件包括更改文件和/或新增文件,所述更改文件为第二安装包包含的多个文件中,文件名与所述第一安装包包含的多个文件中文件名相同但校验值不同的文件,所述新增文件为所述第二安装包中包含的文件但所述第一安装包中不包含的文件;所述第二安装包为所述第一安装包的升级版本;
向所述终端发送所述目标文件,或者用于下载所述目标文件的地址信息,所述目标文件用于升级所述第一安装包。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述计算机程序当被处理器执行时使所述处理器实现权利要求1至7中任一项所述的软件升级的方法。
CN201911029648.0A 2019-10-25 2019-10-25 一种软件升级的方法及相关设备 Pending CN110825406A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911029648.0A CN110825406A (zh) 2019-10-25 2019-10-25 一种软件升级的方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911029648.0A CN110825406A (zh) 2019-10-25 2019-10-25 一种软件升级的方法及相关设备

Publications (1)

Publication Number Publication Date
CN110825406A true CN110825406A (zh) 2020-02-21

Family

ID=69550685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911029648.0A Pending CN110825406A (zh) 2019-10-25 2019-10-25 一种软件升级的方法及相关设备

Country Status (1)

Country Link
CN (1) CN110825406A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732292A (zh) * 2020-12-30 2021-04-30 北京浪潮数据技术有限公司 一种软件升级的方法、系统、设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136013A (zh) * 2011-12-01 2013-06-05 腾讯科技(深圳)有限公司 软件升级方法和系统
CN103647816A (zh) * 2013-12-03 2014-03-19 北京奇虎科技有限公司 一种应用软件升级的方法及装置
CN104915220A (zh) * 2014-03-13 2015-09-16 中国移动通信集团安徽有限公司 一种客户端应用程序的升级方法和系统、客户端
CN105278957A (zh) * 2015-10-08 2016-01-27 南京南瑞继保电气有限公司 一种软件和驱动包的版本匹配识别方法
CN110333894A (zh) * 2019-07-10 2019-10-15 中国民航信息网络股份有限公司 系统升级方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136013A (zh) * 2011-12-01 2013-06-05 腾讯科技(深圳)有限公司 软件升级方法和系统
CN103647816A (zh) * 2013-12-03 2014-03-19 北京奇虎科技有限公司 一种应用软件升级的方法及装置
CN104915220A (zh) * 2014-03-13 2015-09-16 中国移动通信集团安徽有限公司 一种客户端应用程序的升级方法和系统、客户端
CN105278957A (zh) * 2015-10-08 2016-01-27 南京南瑞继保电气有限公司 一种软件和驱动包的版本匹配识别方法
CN110333894A (zh) * 2019-07-10 2019-10-15 中国民航信息网络股份有限公司 系统升级方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112732292A (zh) * 2020-12-30 2021-04-30 北京浪潮数据技术有限公司 一种软件升级的方法、系统、设备及可读存储介质
CN112732292B (zh) * 2020-12-30 2024-02-23 北京浪潮数据技术有限公司 一种软件升级的方法、系统、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN108108181B (zh) 应用程序的功能更新方法、装置及计算机可读存储介质
CN105867947B (zh) 预置应用程序升级后的数据处理方法及装置
CN107547239B (zh) 配置对象的更新方法及装置
CN109391673B (zh) 一种管理更新文件的方法、系统及终端设备
CN108874426B (zh) 一种应用程序更新方法、装置及可读存储介质
CN105389177A (zh) 一种软件版本确认方法、装置及系统
CN111158738B (zh) 耳机固件的升级方法、装置及可读存储介质
CN110647337A (zh) 物联网mcu空中固件升级方法
CN106293790B (zh) 基于Firefox操作系统的应用程序升级方法和装置
CN113094064A (zh) 网关软件模块升级方法、装置、设备及存储介质
CN113037850A (zh) 一种应用程序升级方法、装置、电子设备及存储介质
CN106293814B (zh) 升级方法及装置
CN110825406A (zh) 一种软件升级的方法及相关设备
CN116074308A (zh) 车端升级包下载方法、系统、设备及可读存储介质
CN113312073B (zh) 一种安装包文件处理方法和相关装置
CN115543429A (zh) 项目环境的搭建方法、电子设备及计算机可读存储介质
CN113867756A (zh) 软件升级方法、终端设备及可读存储介质
CN114327548A (zh) 软件升级方法及相关装置
CN115421745A (zh) 设备远程升级方法、装置、终端及存储介质
CN114610366A (zh) 一种差分包升级方法、系统、智能电子设备和存储介质
CN114546842A (zh) 接口测试方法、装置和存储介质及电子设备
CN115437660A (zh) 一种固件更新方法、装置、电子设备和存储介质
CN114968963A (zh) 文件覆盖写方法、装置和电子设备
CN116107603B (zh) 一种固件升级方法、装置、存储介质和电子设备
CN117560285B (zh) 一种智控物联整机ota升级方法、客户端及服务端

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200221

RJ01 Rejection of invention patent application after publication