1.一种安卓平台上APK文件的二次打包签名验证方法,其特征在于:所述方法包括如下步骤:
步骤1、签名工具使用私钥对经过打包的原始APK文件进行签名,生成嵌有数字签名文件的APK文件;
步骤2、在终端设备上预置公钥证书,且将嵌有数字签名文件的APK文件下载到终端设备上;
步骤3、终端设备使用公钥证书验证嵌有数字签名文件的APK文件的合法性。
2.根据权利要求1所述的安卓平台上APK文件的二次打包签名验证方法,其特征在于:所述步骤1具体为:
由签名工具使用私钥生成一个数字签名文件,并将该数字签名文件嵌入到经过打包的原始APK文件的目录中,生成嵌有数字签名文件的APK文件;
所述数字签名文件包括签名信息、自定义信息以及文件头;
所述签名信息由文件类别名称、头部分、签名信息主体以及签名数据组成,其中,所述签名信息主体包括主体部分开始、结构版本、签名证书ID号、数字签名算法、签名时间以及原始文件哈希值;
所述文件头由文件类别名称、头部分、结构版本、文件体长度、源文件长度、原始APK文件长度以及校验值组成。
3.根据权利要求1所述的安卓平台上APK文件的二次打包签名验证方法,其特征在于:所述步骤3具体为:
终端设备在安装嵌有数字签名文件的APK文件时,首先对嵌有数字签名文件的APK文件中的原生签名文件进行验证,待原生签名文件验证通过以后,再从嵌有数字签名文件的APK文件的目录中提取出数字签名文件,还原原始APK文件;
在数字签名文件提取完成后,使用公钥证书对数字签名文件进行合法性验证,且如果验证通过,则允许将原始APK文件安装到终端设备上;如果验证未通过,则不允许将原始APK文件安装到终端设备上。