百度应用平台认领应用需要下载空包APK,对其进行签名再上传,已重新上传应用。
需要在 Java 环境下运行代码。
第一次我是直接在 jdk/bin 下执行的(将需要签名的空包 unsigned.apk 放到 bin 目录下)
代码如下:
jarsigner -verbose -keystore secret_key.keystore -signedjar signed.apk unsigned.apk alias
参数:
-jarsigner bin 目录下的jar包
-verbose 显示输出动作
-keystore 密钥库位置 我这里将 secret_key.keystore 秘钥文件放到 bin 目录下,所以直接写秘钥文件名称
-signedjar signed.apk unsign.apk alias 三个参数依次为:签名后的apk 未签名的apk 别名
第二次是在 bin 目录外边的,不用将需要的秘钥和apk空包放到bin目录下
jarsigner -verbose -keystore D:\secretKey\secret_key.keystore -signedjar F:\xunlei\signed.apk -digestalg SHA1 -sigalg MD5withRSA F:\xunlei\Baidu_Claim_unsigned.apk alias
新增参数:
-digestalg 摘要算法的名称
-sigalg 签名算法的名称
jarsigner命令的一些选项
[-signedjar <文件>] 已签名的 JAR 文件的名称
[-verbose] 签名/验证时输出详细信息
[-keystore ] 密钥库位置
[-digestalg <算法>] 摘要算法的名称
[-sigalg <算法>] 签名算法的名称
[-storepass <口令>] 用于密钥库完整性的口令
[-storetype <类型>] 密钥库类型
[-keypass <口令>] 专用密钥的口令(如果不同)
[-sigfile <文件>] .SF/.DSA 文件的名称
[-verify] 验证已签名的 JAR 文件
[-certs] 输出详细信息和验证时显示证书
[-tsa ] 时间戳机构的位置
[-tsacert <别名>] 时间戳机构的公共密钥证书
[-altsigner <类>] 替代的签名机制的类名
[-altsignerpath <路径列表>] 替代的签名机制的位置
[-internalsf] 在签名块内包含 .SF 文件
[-sectionsonly] 不计算整个清单的散列
[-protected] 密钥库已保护验证路径
[-providerName <名称>] 提供者名称
[-providerClass <类>] 加密服务提供者的名称
[-providerArg <参数>] … 主类文件和构造函数参数