渠道号添加、安装包校验方法及装置制造方法及图纸

技术编号:18445397 阅读:74 留言:0更新日期:2018-07-14 10:34
本发明专利技术公开了一种渠道号添加、安装包校验方法及装置,属于安装包处理领域。该方法包括:对APK文件进行解析,获取APK文件的签名区块,签名区块中包括签名信息和校验信息;向签名区块中添加目标渠道号,目标渠道号与发布APK文件的应用发布方对应;计算添加目标渠道号前后签名区块的数据变化量;根据数据变化量更新APK文件中包含的偏移字段,偏移字段位于目录结束标识区块,目录结束标识区块用于通过偏移字段指示目录区块在APK文件中所处的位置,目录区块用于指示数据区块中各个文件数据的位置。本发明专利技术实施例解决了现有的v1版签名APK文件的渠道号注入方式无法适用于v2版签名APK文件的问题,实现了添加渠道号后v2版签名APK文件的正常安装。

Channel number addition, installation package check method and device

The invention discloses a channel number adding and installation package checking method and device, belonging to the field of installation package processing. The method includes: parsing the APK file, obtaining the signature block of the APK file, including the signature information and the check information in the signature block, adding the target channel number to the signature block, the target channel number corresponding to the application publisher that publishers the APK file, and calculating the data change amount of the signature block before and after the channel number added to the target. The offset field is updated in the APK file based on the amount of data change, the offset field is located at the end of the directory identification block, and the directory end identification block is used to indicate the location of the directory block in the APK file through the offset field, and the directory block is used to indicate the location of the individual text data in the data block. The embodiment of the present invention solves the problem that the channel number injection mode of the existing V1 signature APK file cannot be applied to the V2 version of the signature APK file, and the normal installation of the V2 signature APK file after the addition of the channel number is realized.

【技术实现步骤摘要】
渠道号添加、安装包校验方法及装置
本专利技术实施例涉及安装包处理领域,特别涉及一种渠道号添加、安装包校验方法及装置。
技术介绍
应用开发商完成Android(安卓)应用开发后,可以将Android应用投放到互联网中不同的应用市场,供用户下载并安装。为了使应用开发商知悉Android应用在不同应用市场中的下载量,从而制定相应的投放策略,应用市场需要在Android应用的APK文件(AndroidPackage,安卓安装包)中添加渠道号,其中,该渠道号即用于指示提供应用下载的应用市场,并用于统计应用在应用市场中的下载量。现有技术中,针对采用APKSignatureSchemev1(第一版安卓安装包签名方案)进行签名的APK文件,应用市场采用向APK文件中注入channel(渠道号)文件或向APK文件的zipinfo(压缩信息)中注入channel信息的方式实现渠道号的添加。对于采用APKSignatureSchemev2(第二版安卓安装包签名方案)进行签名的APK文件,其APK文件结构如图1所示,其中,数据区块11用于存储压缩后的文件数据,签名区块14用于存储签名信息和校验信息,目录区块12用于指示数据区块11中各个文件数据的位置,目录结束标识区块13用于指示目录区块12的位置。若将v1版签名APK文件的渠道号注入方式用于v2版签名APK文件,当采用注入channel文件的方式添加渠道号时,由于添加channel文件后APK文件新增了文件数据,并相应增加了指示新增文件数据的目录,导致APK文件中的数据区块11和目录区块12均发生变化;当采用注入channel信息的方式添加渠道号时,由于注入的channel信息位于目录结束标识区块13中,导致APK文件中的目录结束标识区块13发生变化。然而,终端安装v2版签名APK文件时,需要根据签名区块的校验信息分别对数据区块、目录区块以及目录结束标识区块进行校验,当数据区块、目录区块或目录结束标识区块发生变化时,APK文件将无法通过校验。显然,若将v1版签名APK文件的渠道号注入方式用于v2版签名APK文件,将导致v2版签名APK文件无法被正常安装。
技术实现思路
为了解决现有的v1版签名APK文件的渠道号注入方式无法适用于v2版签名APK文件的问题,本专利技术实施例提供了一种渠道号添加、安装包校验方法及装置。所述技术方案如下:根据本专利技术实施例的第一方面,提供了一种渠道号添加方法,该方法包括:对APK文件进行解析,获取APK文件的签名区块,签名区块中包括签名信息和校验信息;向签名区块中添加目标渠道号,目标渠道号与发布APK文件的应用发布方对应;计算添加目标渠道号前后签名区块的数据变化量;根据数据变化量更新APK文件中包含的偏移字段,该偏移字段位于目录结束标识区块,目录结束标识区块用于通过偏移字段指示目录区块在APK文件中所处的位置,目录区块用于指示数据区块中各个文件数据的位置。根据本专利技术实施例的第二方面,提供了一种安装包校验方法,该方法包括:对APK文件进行解析,获取APK文件的签名区块,,签名区块中包括签名信息、校验信息和渠道号;获取APK文件中包含的偏移字段,偏移字段位于目录结束标识区块,目录结束标识区块用于通过偏移字段指示目录区块在APK文件中所处的位置,目录区块用于指示数据区块中各个文件数据的位置;根据偏移字段对应的偏移值和签名区块的数据量,还原目录结束标识区块,还原后的目标结束标识区块与签名前APK文件的目录结束标识区块一致;根据校验信息对数据区块、目录区块以及还原后的目录结束标识区块进行校验。根据本专利技术实施例的第三方面,提供了一种渠道号添加装置,该装置包括:第一解析模块,用于对APK文件进行解析,获取APK文件的签名区块,签名区块中包括签名信息和校验信息;添加模块,用于向签名区块中添加目标渠道号,目标渠道号与发布APK文件的应用发布方对应;计算模块,用于计算添加目标渠道号前后签名区块的数据变化量;第一更新模块,用于根据数据变化量更新APK文件中包含的偏移字段,偏移字段位于目录结束标识区块,目录结束标识区块用于通过偏移字段指示目录区块在APK文件中所处的位置,目录区块用于指示数据区块中各个文件数据的位置。根据本专利技术实施例的第四方面,提供了一种安装包校验装置,该装置包括:第二解析模块,用于对APK文件进行解析,获取APK文件的签名区块,签名区块中包括签名信息、校验信息和渠道号;获取模块,用于获取APK文件中包含的偏移字段,偏移字段位于目录结束标识区块,目录结束标识区块用于通过偏移字段指示目录区块在APK文件中所处的位置,目录区块用于指示数据区块中各个文件数据的位置;还原模块,用于根据偏移字段对应的偏移值和签名区块的数据量,还原目录结束标识区块,还原后的目标结束标识区块与v2版签名前APK文件的目录结束标识区块一致;校验模块,用于根据校验信息对数据区块、目录区块以及还原后的目录结束标识区块进行校验。本专利技术实施例提供的技术方案带来的有益效果是:在向APK文件中添加渠道号时,通过将渠道号添加到无需进行校验的签名区块,并根据添加渠道号前后签名区块的数据变化量,动态更新APK文件中目录结束标识区块包含的偏移字段,确保添加渠道号后APK文件的数据区块、目录区块和目录结束标识区块均能够通过签名区块中校验信息的校验,从而解决了现有的v1版签名APK文件的渠道号注入方式无法适用于v2版签名APK文件的问题,实现了添加渠道号后v2版签名APK文件的正常安装。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了v2版签名前后APK文件的文件结构示意图;图2示出了本专利技术一个实施例提供的实施环境的示意图;图3示出了本专利技术一个实施例提供的渠道号添加方法的流程图;图4A示出了本专利技术另一个实施例提供的渠道号添加方法的流程图;图4B是图4A所示渠道号添加方法的原理示意图;图5A示出了本专利技术一个实施例提供的安装包校验方法的流程图;图5B是图5A所示安装包校验方法的原理示意图;图5C示出了本专利技术另一个实施例提供的安装包校验方法的流程图;图6示出了本专利技术一个实施例提供的渠道号添加装置的结构方框图;图7示出了本专利技术一个实施例提供的安装包校验装置的结构方框图;图8示出了本专利技术一个实施例提供的服务器的结构方框图;图9示出了本专利技术一个实施例提供的终端的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。请参考图2,其示出了本专利技术一个实施例提供的实施环境的示意图,该实施环境中包括应用开发商终端210、应用市场服务器220和用户终端230。应用开发商终端210是应用开发商所使用的终端,应用开发商即使用该终端向至少一个应用市场投本文档来自技高网
...

【技术保护点】
1.一种渠道号添加方法,其特征在于,所述方法包括:对安卓安装包APK文件进行解析,获取所述APK文件的签名区块,所述签名区块中包括签名信息和校验信息;向所述签名区块中添加目标渠道号,所述目标渠道号与发布所述APK文件的应用发布方对应;计算添加所述目标渠道号前后所述签名区块的数据变化量;根据所述数据变化量更新所述APK文件中包含的偏移字段,所述偏移字段位于目录结束标识区块,所述目录结束标识区块用于通过所述偏移字段指示目录区块在所述APK文件中所处的位置,所述目录区块用于指示数据区块中各个文件数据的位置。

【技术特征摘要】
1.一种渠道号添加方法,其特征在于,所述方法包括:对安卓安装包APK文件进行解析,获取所述APK文件的签名区块,所述签名区块中包括签名信息和校验信息;向所述签名区块中添加目标渠道号,所述目标渠道号与发布所述APK文件的应用发布方对应;计算添加所述目标渠道号前后所述签名区块的数据变化量;根据所述数据变化量更新所述APK文件中包含的偏移字段,所述偏移字段位于目录结束标识区块,所述目录结束标识区块用于通过所述偏移字段指示目录区块在所述APK文件中所处的位置,所述目录区块用于指示数据区块中各个文件数据的位置。2.根据权利要求1所述的方法,其特征在于,所述向所述签名区块中添加目标渠道号之前,还包括:检测所述签名区块中是否包含历史渠道号;当所述签名区块中不包含所述历史渠道号时,执行所述向所述签名区块中添加目标渠道号的步骤;当所述签名区块中包含所述历史渠道号时,删除所述历史渠道号,并执行所述向所述签名区块中添加目标渠道号的步骤。3.根据权利要求2所述的方法,其特征在于,所述计算添加所述目标渠道号前后所述签名区块的数据变化量,包括:当所述签名区块中不包含所述历史渠道号时,计算所述目标渠道号的数据量;将所述目标渠道号的数据量确定为所述数据变化量;或,当所述签名区块中包含所述历史渠道号时,计算所述历史渠道号与所述目标渠道号的数据量差值;将所述数据量差值确定为所述数据变化量,其中,所述数据量差值=所述目标渠道号的数据量-所述历史渠道号的数据量。4.根据权利要求2或3所述的方法,其特征在于,渠道号采用预定格式的数据对表示,所述预定格式的数据对中包括预定标识字段和渠道号值;所述检测所述签名区块中是否包含历史渠道号,包括:检测所述签名区块中是否包含所述预设标识字段;若所述签名区块中不包含所述预设标识字段,则确定所述签名区块中不包含所述历史渠道号;若所述签名区块中包含所述预设标识字段,则确定所述签名区块中包含所述历史渠道号。5.根据权利要求1至3任一所述的方法,其特征在于,所述根据所述数据变化量更新所述APK文件中包含的偏移字段,包括:获取所述偏移字段中包含的原始偏移值;根据所述原始偏移值和所述数据变化量更新所述偏移字段。6.根据权利要求1至3任一所述的方法,其特征在于,所述计算添加所述目标渠道号前后所述签名区块的数据变化量之后,还包括:根据所述签名区块的第一原始数据量和所述数据变化量更新所述签名区块的数据量字段;根据所述APK文件的第二原始数据量和所述数据变化量调整所述APK文件的数据量。7.一种安装包校验方法,其特征在于,所述方法包括:对安卓安装包APK文件进行解析,获取所述APK文件的签名区块,所述签名区块中包括签名信息、校验信息和渠道号;获取所述APK文件中包含的偏移字段,所述偏移字段位于目录结束标识区块,所述目录结束标识区块用于通过所述偏移字段指示目录区块在所述APK文件中所处的位置,所述目录区块用于指示数据区块中各个文件数据的位置;根据所述偏移字段对应的偏移值和所述签名区块的数据量,还原所述目录结束标识区块,还原后的所述目标结束标识区块与签名前所述APK文件的目录结束标识区块一致;根据所述校验信息对所述数据区块、所述目录区块以及还原后的所述目录结束标识区块进行校验。8.根据权利要求7所述的方法,其特征在于,所述根据所述偏移字段对应的偏移值和所述签名区块的数据量,还原所述目录结束标识区块,包括:利用所述偏移值减去所述数据量,得到还原后的所述偏移字段;根据还原后的所述偏移字段生成还原后的所述目录结束标识区块。9.根据权利要求7或8所述的方法,其特征在于,所述校验信息中包含签名前数据区块的第一信息摘要、签名前目录区块的第二信息摘要以及签名前目录结束标识区块的第三信息摘要;所述根据所述校验信息对所述数据区块、所述目录区块以及还原后的所述目录结束标识区块进行校验,包括:根据所述第一信息摘要对签名后的所述数据区块进行校验;根据所述第二信息摘要对签名后的所述目录区块进行校验;根据所述第三信息摘要对还原后的所述目标结束标识区块进行校验。10.一种渠道号添加装置,其特征在于,所述装...

【专利技术属性】
技术研发人员:余光镇赵准曹飞黄普光管琰平
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1