由于最近的 SHA1-collision 新闻,我想确保 SHA1 不再用于我的 apk 签名。但是我在apksigner中找不到参数。
有没有办法指定(直接或间接) apksigner 使用的摘要算法?
(在 SDK 24 之前,Android 使用 javajarsigner
对 apk 进行签名,其中有类似的选项-sigalg SHA1withRSA -digestalg SHA1
)
更新:正如亚历克斯提到的,我发现如何在V1SchemeSigner.javaapksigner
中确定方案 v1 的签名算法。
简而言之,从证书的密钥类型来apksigner
确定它。minimumSDK
SHA256withRSA
最低 SDK 18 (Android 4.3) 及更高版本SHA256withDSA
最低 SDK 21 (Android 5.0) 及更高版本SHA256withEC
最低 SDK 18 及更高版本SHA1with*
用于更低的最低 SDK 级别
这是我为备忘录写的一个常见问题解答:SHA1 Collision and Android APK Signing。