360安卓平台apk包加固签名, jarsigner使用详解

在360平台上传apk包时遇到以下问题:

警示:您的应用的签名算法采用“SHA256withRSA”,在部分4.2如下安卓版本的手机上不能安装。android

解决办法:

1.先构建一个apk包出来, 打开android studio, 依次点击build->Generate signed bundle/apk, 选择apk, 点击next, 填写keystore配置, 选择发布版本, 构建.
2.打开360加固助手, 应用加固->签名设置, 去掉 启动自动签名,以下图:
不要勾选 启用自动签名
3.而后推到加固页面, 开始加固apk包.
4.对已经加固的apk包进行签名, 使用SHA1withRSA加密算法, 完整命令以下:web

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 你存放keystore的绝对路径 -signedjar signed.apk jiagu.apk keystore_alias

这里解释一下jarsigner这个命令行工具的几个主要参数的意义:
-sigalg 即signature algorithm签名算法, 上360平台须要使用SHA1withRSA加密算法
-digestalg 摘要算法的名称, 这里使用SHA1
-keystore 对应你的apk的keystore文件的绝对路径
-signedjar 填写签名后你想保存的apk名称
最后两个参数, 一个是已加固未签名的apk文件路径, 另外一个是你的keystore文件在打包设置的别名算法

jarsigner --help

用法: jarsigner [选项] jar-file 别名
jarsigner -verify [选项] jar-file [别名…]安全

[-keystore ] 密钥库位置ide

[-storepass <口令>] 用于密钥库完整性的口令svg

[-storetype <类型>] 密钥库类型工具

[-keypass <口令>] 私有密钥的口令 (若是不一样)ui

[-certchain <文件>] 替代证书链文件的名称this

[-sigfile <文件>] .SF/.DSA 文件的名称加密

[-signedjar <文件>] 已签名的 JAR 文件的名称

[-digestalg <算法>] 摘要算法的名称

[-sigalg <算法>] 签名算法的名称

[-verify] 验证已签名的 JAR 文件

[-verbose[:suboptions]] 签名/验证时输出详细信息。
子选项能够是 all, grouped 或 summary

[-certs] 输出详细信息和验证时显示证书

[-tsa ] 时间戳颁发机构的位置

[-tsacert <别名>] 时间戳颁发机构的公共密钥证书

[-tsapolicyid ] 时间戳颁发机构的 TSAPolicyID

[-tsadigestalg <算法>] 时间戳请求中的摘要数据的算法

[-altsigner <类>] 替代的签名机制的类名
(此选项已过期。)

[-altsignerpath <路径列表>] 替代的签名机制的位置
(此选项已过期。)

[-internalsf] 在签名块内包含 .SF 文件

[-sectionsonly] 不计算整个清单的散列

[-protected] 密钥库具备受保护验证路径

[-providerName <名称>] 提供方名称

[-addprovider <名称> 按名称 (例如 SunPKCS11) 添加安全提供方
[-providerArg <参数>]] … 配置 -addprovider 的参数

[-providerClass <类> 按全限定类名添加安全提供方
[-providerArg <参数>]] … 配置 -providerClass 的参数

[-strict] 将警告视为错误

[-conf ] 指定预配置的选项文件

[-? -h --help] 输出此帮助消息

If you get help from this article, please buy me a cup of coffee.
在这里插入图片描述