本技术涉及终端,尤其涉及一种应用程序更新方法、通信系统及电子设备。
背景技术:
1、目前,在应用程序(application,app)需要更新的场景,首先,app的开发者会将app对应的新版本的安装包(android package,apk),如apk1,和apk1的签名信息上传至服务器。之后,服务器对app对应的旧版本的apk2和新版本的apk1执行差分操作,获得差分文件,并对差分文件进行签名验证。当签名检验成功后,app对应的新版本的安装包可以在服务器上架。
2、上述app的更新方式中,当终端设备需要对应用程序更新时,终端设备从服务器下载最新的安装包,即差分文件,终端设备需要将文件1先压缩获得apk1,然后对apk1的开发者签名进行验证,所以当签名验证成功后再解压安装。这个过程中,终端设备需要进行大量运算,消耗比较多的设备资源。
技术实现思路
1、本技术实施例提供一种应用程序更新方法、通信系统及电子设备,针对服务器生成的差分文件进行服务器签名验证即可,而无需在终端设备侧对合成后的第一安装包的开发者签名进行验证,减少了开发者签名验证过程中的压缩和解压的过程,也节省了更多的设备资源。
2、为达到上述目的,本技术的实施例采用如下技术方案:
3、第一方面,提供一种应用程序更新方法,应用于通信系统,通信系统包括服务器和至少一个终端设备,其中,服务器与至少一个终端设备建立通信连接,终端设备上安装有目标应用程序。在上述方法中,服务器获取待更新版本的目标应用程序对应的第一安装包,以及获取历史版本的目标应用程序对应的第二安装包。之后,服务器根据第一安装包和第二安装包,获得目标差分文件,以及对目标差分文件进行校验。在校验成功后,服务器生成目标差分文件的第一签名信息,并向至少一个终端设备发送第一签名信息与目标差分文件。
4、终端设备接收目标差分文件和目标差分文件的第一签名信息,以及利用第一签名信息对目标差分文件进行签名验证。在签名验证成功后,终端设备基于目标差分文件和第二安装包,安装待更新版本的目标应用程序。
5、上述方法中,由于服务器在下发目标差分文件之前对目标差分文件进行签名,因此,终端设备对目标差分文件的服务器签名(或者称为应用市场签名)进行验证即可,而无需对合成后的第一安装包的开发者签名进行验证,即无需将终端设备合成后的文件压缩获得第一安装包后再解压,这样,终端设备上减少了使用压缩算法的运算过程,也节省了更多的设备资源。
6、在第一方面的一种可实现方式中,服务器获得目标差分文件时,可以根据第一安装包,获取第一类型的第一文件和第二类型的第二文件,以及根据第二安装包,获取第一类型的第三文件和第二类型的第四文件。之后,服务器基于第一文件和第三文件获取第一类型的第一差分文件,以及基于第二文件和第四文件获取第二类型的第二差分文件,其中,目标差分文件包括第一差分文件和第二差分文件。
7、在一些可能的应用场景中,服务器获得第一差分文件的方式可以是第一差分操作,而获得第二差分文件的方式可以是第二差分操作。示例性的,第一差分操作可以是采用bsdiff、hdiff等算法的操作,第二差分操作可以是采用xdelta算法的操作。以及,第一类型也可以包括so、xml、dex等类型,第二类型可以包括除了so、xml、dex等类型以外的其他类型。
8、这种实现方式中,服务器可以针对安装包对应的不同类型的文件进行不同的差分操作,即,针对目标应用程序新旧版本安装包中的第一类型的文件进行第一差分操作,而针对目标应用程序新旧版本安装包的第二类型的文件进行第二差分操作。其中,第一差分操作能获得较高差分率的差分文件,差分文件也比较小,第二差分操作能提高差分操作的效率,也能提高终端设备上文件合成的效率。从而上述应用程序更新方法,既可以降低差分文件的大小,提高差分率,又可以提高差分操作效率和终端设备上文件合成的效率,兼顾设备性能和差分率两方面的要求。
9、在第一方面的一种可实现方式中,服务器对目标差分文件进行校验的方式可以包括第一签名验证,在进行第一签名验证时,服务器基于目标差分文件中的第一差分文件和第三文件生成第一合成文件,以及,基于目标差分文件中的第二差分文件和第四文件生成第二合成文件。之后,服务器将第一合成文件和第二合成文件进行组合压缩,获得压缩文件,并对压缩文件签名,获得压缩文件的第二签名信息。最后,服务器利用第二签名信息对目标差分文件进行校验,以及在第二签名信息与第一安装包的签名信息一致时,确定目标差分文件校验成功。
10、这种实现方式中,服务器可以采用第一签名验证的方式对目标差分文件进行校验,从而验证目标差分文件是否可用。若校验成功,则说明服务器获得的目标差分文件可用,即服务器可以基于目标差分文件获得对应的第一安装包。
11、在第一方面的一种可实现方式中,服务器对目标差分文件进行校验的方式还可以包括哈希值校验,在进行哈希值校验时,服务器基于目标差分文件中的第一差分文件和第三文件生成第一合成文件,以及,基于目标差分文件中的第二差分文件和第四文件生成第二合成文件。之后,服务器获取第一合成文件的哈希值和第一文件的哈希值,以及获取第二合成文件的哈希值和第二文件的哈希值,并利用哈希值对目标差分文件进行校验。在第一合成文件的哈希值与第一文件的哈希值一致,且第二合成文件的哈希值与第二文件的哈希值一致时,确定目标差分文件校验成功。
12、这种实现方式中,服务器可以采用哈希值校验的方式对目标差分文件进行校验,从而验证目标差分文件是否可用。若校验成功,则说明服务器获得的目标差分文件可用,即服务器可以基于目标差分文件获得对应的第一安装包。
13、在第一方面的一种可实现方式中,由于安装包表示的是应用程序安装文件压缩后的安装包、压缩包等,因此,在获得第一安装包和第二安装包之后,服务器对第一安装包解压,获得第一文件集,第一文件集包括第一类型的第一文件和第二类型的第二文件,以及,服务器对第二安装包解压,获得第二文件集,第二文件集包括第一类型的第三文件和第二类型的第四文件。
14、在第一方面的一种可实现方式中,终端设备响应于用户对于目标应用程序的更新操作,向服务器发送更新请求。其中,更新请求用于指示服务器向终端设备发送目标差分文件和第一签名信息。之后,终端设备接收目标差分文件和第一签名信息。
15、这种实现方式中,终端设备可以响应于用户的更新操作,从服务器获取用于更新目标应用程序的目标差分文件和第一签名信息。在另一种可能的实现方式中,在服务器生成第一签名信息后,终端设备还可以主动地从服务器获取目标差分文件和第一签名信息,或者,服务器在生成第一签名信息后,自动向终端设备发送目标差分文件和目标差分文件的第一签名信息,之后,终端设备再响应于用户的更新操作,对目标差分文件进行签名验证等操作。
16、在第一方面的一种可实现方式中,为了加快文件传输的速度,服务器向终端设备发送的目标差分文件,是压缩后的文件或者压缩包,即,目标差分文件为服务器对第一差分文件和第二差分文件压缩后获得的压缩包。
17、在第一方面的一种可实现方式中,终端设备对目标差分文件进行签名验证时,可以先对目标差分文件签名,获得第三签名信息。之后,终端设备利用第一签名信息和第三签名信息对目标差分文件进行签名验证,以及在第一签名信息与第三签名信息一致时,确定签名验证成功。
18、这种实现方式中,若第三签名信息与第一签名信息相同,说明目标差分文件在传输的过程中并未被篡改或者损坏,以及目标差分文件是可用的、安全的,也说明目标差分文件的签名验证成功。并且,终端设备只需针对目标差分文件的第三签名信息和第一签名信息进行验证即可,无需对第一安装包的开发者签名进行验证,即减少了将合成后的文件压缩为第一安装包后再解压的过程,也减少了使用压缩算法的运算过程,节省了更多的设备资源以及加快应用程序更新的速度。
19、在第一方面的一种可实现方式中,终端设备安装待更新版本的目标应用程序时,先对目标差分文件解压,获得第一差分文件和第二差分文件。之后,终端设备基于第一差分文件和第三文件生成第三合成文件,以及基于第二差分文件和第四文件生成第四合成文件。最后,终端设备基于第三合成文件和第四合成文件,安装待更新版本的目标应用程序。
20、这种实现方式中,终端设备生成的第三合成文件与服务器获取到的第一安装包对应的第一文件相同,而第四合成文件与服务器获取到的第一安装包对应的第二文件相同,第三合成文件和第四合成文件后,可以利用第三合成文件和第四合成文件生成第一安装包,或者第一安装包对应的第一文件集,从而终端设备安装第一安装包或者第一文件集,以完成待更新版本的目标应用程序的安装。
21、第二方面,提供一种应用程序更新方法,应用于服务器,服务器与至少一个终端设备建立通信连接,终端设备上安装有目标应用程序。该方法中,服务器获取待更新版本的目标应用程序对应的第一安装包,以及获取历史版本的目标应用程序对应的第二安装包。之后,服务器根据第一安装包和第二安装包,获得目标差分文件,以及对目标差分文件进行校验。最后,在校验成功后,服务器生成目标差分文件的第一签名信息,并向至少一个终端设备发送第一签名信息与目标差分文件。
22、在第二方面的一种可实现方式中,获得目标差分文件时,服务器根据第一安装包,获取第一类型的第一文件和第二类型的第二文件,以及根据第二安装包,获取第一类型的第三文件和第二类型的第四文件。之后,服务器基于第一文件和第三文件获取第一类型的第一差分文件,以及基于第二文件和第四文件获取第二类型的第二差分文件,其中,目标差分文件包括第一差分文件和第二差分文件。
23、在第二方面的一种可实现方式中,对目标差分文件进行校验时,服务器先基于目标差分文件中的第一差分文件和第三文件生成第一合成文件,以及,基于目标差分文件中的所述第二差分文件和所述第四文件生成第二合成文件。之后,服务器将第一合成文件和第二合成文件进行组合压缩,获得压缩文件,以及对压缩文件签名,获得压缩文件的第二签名信息。最后,服务器利用第二签名信息对目标差分文件进行校验,以及在第二签名信息与第一安装包的签名信息一致时,确定目标差分文件校验成功。
24、在第二方面的一种可实现方式中,对目标差分文件进行校验时,服务器先基于目标差分文件中的第一差分文件和第三文件生成第一合成文件,以及,基于目标差分文件中的第二差分文件和第四文件生成第二合成文件。之后,服务器获取第一合成文件的哈希值和第一文件的哈希值,以及获取第二合成文件的哈希值和第二文件的哈希值。最后,服务器利用哈希值对目标差分文件进行校验,以及在第一合成文件的哈希值与第一文件的哈希值一致,且第二合成文件的哈希值与第二文件的哈希值一致时,确定目标差分文件校验成功。
25、在第二方面的一种可实现方式中,服务器对第一安装包解压,获得第一文件集,其中,第一文件集包括第一类型的第一文件和第二类型的第二文件。以及,服务器对第二安装包解压,获得第二文件集,其中,第二文件集包括第一类型的第三文件和第二类型的第四文件。
26、第三方面,提供一种应用程序更新方法,应用于终端设备,终端设备与服务器建立通信连接,终端设备上安装有目标应用程序。该方法中,终端设备接收服务器发送的目标差分文件和目标差分文件的第一签名信息,其中,目标差分文件为服务器根据待更新版本的目标应用程序对应的第一安装包和历史版本的目标应用程序对应的第二安装包获得;以及第一签名信息为服务器在对目标差分文件校验成功后,对目标差分文件签名而生成。之后,终端设备利用第一签名信息对目标差分文件进行签名验证,在签名验证成功后,终端设备基于目标差分文件和第二安装包,安装待更新版本的目标应用程序。
27、在第三方面的一种可实现方式中,接收目标差分文件和目标差分文件的第一签名信息时,终端设备响应于用户对于目标应用程序的更新操作,向服务器发送更新请求,其中,更新请求用于指示服务器向终端设备发送目标差分文件和第一签名信息。之后,终端设备接收目标差分文件和第一签名信息。
28、在第三方面的一种可实现方式中,对目标差分文件进行签名验证时,终端设备对目标差分文件签名,获得第三签名信息。之后,终端设备利用第一签名信息和第三签名信息对目标差分文件进行签名验证,以及在第一签名信息与第三签名信息一致时,确定签名验证成功。
29、在第三方面的一种可实现方式中,安装待更新版本的目标应用程序时,终端设备对目标差分文件解压,获得第一差分文件和所述第二差分文件。之后,终端设备基于第一差分文件和第三文件生成第三合成文件,以及基于第二差分文件和第四文件生成第四合成文件。最后,终端设备基于第三合成文件和第四合成文件,安装待更新版本的目标应用程序。
30、第四方面,提供一种通信系统,包括服务器和至少一个终端设备,服务器与至少一个终端设备建立通信连接,终端设备上安装有目标应用程序。
31、其中,服务器,用于获取待更新版本的目标应用程序对应的第一安装包,以及获取历史版本的目标应用程序对应的第二安装包。服务器,还用于根据第一安装包和第二安装包,获得目标差分文件。服务器,还用于对目标差分文件进行校验。在校验成功后,服务器,还用于生成目标差分文件的第一签名信息,并向至少一个终端设备发送第一签名信息与目标差分文件。
32、终端设备,用于接收目标差分文件和目标差分文件的第一签名信息。终端设备,还用于利用第一签名信息对目标差分文件进行签名验证。在签名验证成功后,终端设备,还用于基于目标差分文件和第二安装包,安装待更新版本的目标应用程序。
33、第五方面,提供一种电子设备,包括存储器、一个或多个处理器;存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行如第二方面及其任一实现方式中的应用程序更新方法,或者执行如第三方面及其任一实现方式中的应用程序更新方法。
34、第六方面,提供一种计算机可读存储介质,包括计算机指令,当计算机指令在芯片上运行时,使得芯片执行如第二方面及其任一实现方式中的应用程序更新方法,或者执行如第三方面及其任一实现方式中的应用程序更新方法。
35、第七方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第二方面及其任一实现方式中的应用程序更新方法,或者执行如第三方面及其任一实现方式中的应用程序更新方法。
36、可以理解地,上述第二方面所述的应用程序更新方法、第三方面所述的应用程序更新方法、第四方面所述的通信系统,第五方面所述的电子设备,第六方面所述的计算机可读存储介质,第七方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
1.一种应用程序更新方法,其特征在于,应用于通信系统,所述通信系统包括服务器和至少一个终端设备,所述服务器与至少一个所述终端设备建立通信连接,所述终端设备上安装有目标应用程序;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述服务器根据所述第一安装包和所述第二安装包,获得目标差分文件,包括:
3.根据权利要求2所述的方法,其特征在于,所述服务器对所述目标差分文件进行校验,包括:
4.根据权利要求2所述的方法,其特征在于,所述服务器对所述目标差分文件进行校验,包括:
5.根据权利要求2-4任一项所述的方法,其特征在于,所述服务器根据所述第一安装包,获取第一类型的第一文件和第二类型的第二文件,包括:所述服务器对所述第一安装包解压,获得第一文件集,所述第一文件集包括第一类型的第一文件和第二类型的第二文件;
6.根据权利要求1-5任一项所述的方法,其特征在于,所述终端设备接收所述目标差分文件和所述目标差分文件的第一签名信息,包括:
7.根据权利要求2-6任一项所述的方法,其特征在于,所述目标差分文件为所述服务器对所述第一差分文件和所述第二差分文件压缩后获得的压缩包。
8.根据权利要求7所述的方法,其特征在于,所述终端设备利用所述第一签名信息对所述目标差分文件进行签名验证,包括:
9.根据权利要求8所述的方法,其特征在于,所述终端设备基于所述目标差分文件和所述第二安装包,安装待更新版本的所述目标应用程序,包括:
10.一种应用程序更新方法,其特征在于,应用于终端设备,所述终端设备与服务器建立通信连接,所述终端设备上安装有目标应用程序;所述方法包括:
11.根据权利要求10所述的方法,其特征在于,所述接收所述服务器发送的目标差分文件和所述目标差分文件的第一签名信息,包括:
12.根据权利要求10或11所述的方法,其特征在于,所述目标差分文件包括第一类型的第一差分文件和第二类型的第二差分文件;所述目标差分文件为所述服务器对所述第一差分文件和所述第二差分文件压缩后获得的压缩包。
13.根据权利要求12所述的方法,其特征在于,利用所述第一签名信息对所述目标差分文件进行签名验证,包括:
14.根据权利要求13所述的方法,其特征在于,基于所述目标差分文件和所述第二安装包,安装待更新版本的所述目标应用程序,包括:
15.一种通信系统,其特征在于,包括服务器和至少一个终端设备,所述服务器与至少一个所述终端设备建立通信连接,所述终端设备上安装有目标应用程序;
16.一种电子设备,其特征在于,包括存储器、一个或多个处理器;存储器与处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求10-14任一项中所述的应用程序更新方法。
17.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在芯片上运行时,使得所述电子设备执行如权利要求10-14任一项中所述的应用程序更新方法。
