- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
由于最近的 SHA1 冲突新闻,我想确保 SHA1 不再用于我的 apk 签名。但是我在 apksigner 中找不到参数.
有没有办法指定(直接或间接)apksigner 使用的摘要算法?
(在SDK 24之前,Android使用java的jarsigner
对apk进行签名,有-sigalg SHA1withRSA -digestalg SHA1
等选项)
更新:正如 Alex 提到的,我在 V1SchemeSigner.java 中找到了 apksigner
如何确定方案 v1 的签名算法。 .
简而言之,apksigner
根据minimumSDK
和证书的 key 类型来确定。
SHA256withRSA
适用于最低 SDK 18 (Android 4.3) 及更高版本SHA256withDSA
适用于最低 SDK 21 (Android 5.0) 及更高版本SHA256withEC
最低 SDK 18 及以上SHA1with*
用于降低最低 SDK 级别这是我为备忘录写的常见问题解答:SHA1 Collision and Android APK Signing .
最佳答案
不直接。 apksigner
尝试仅使用安全摘要和签名算法,但它会在您的签名 key (大小、算法)和被签名的 APK 支持的 Android 平台版本施加的限制范围内执行此操作。特别是,对于 JAR 签名,apksigner
默认使用 SHA-256 或更强的算法,但仅适用于仅支持 API 级别 18 或更高级别的 APK(如 minSdkVersion
中声明的那样) AndroidManifest.xml
)。在早期平台上运行的 APK 必须使用 SHA-1,因为这些早期平台不支持使用 SHA-256 或更强大的算法验证 APK。对于 APK 签名方案 v2 签名,仅使用 SHA-256 或更强,因为此签名方案甚至不支持 SHA-1。
如果您希望 apksigner
使用 SHA-256 为您的 APK 签名,您可以:
minSdkVersion
设置为 18 或更高,但这会使 API 级别为 17 及更低的 Android 平台在安装时拒绝 APK。--min-sdk-version=18
传递给 apksigner
,但这会使 API 级别 17 及更低级别的 Android 平台在安装时拒绝 APK。 --v1-signing-enabled=false
传递给 apksigner
仅使用 APK 签名方案 v2 对 APK 进行签名,但这将使 Android 平台具有 API 23 级及更低级别在安装时拒绝 APK。P. S. 即使您改用仅使用 SHA-256 对 APK 进行签名,Android 仍会接受带有您的包名称和签名证书并使用 SHA-1 或 MD5 进行签名的 APK。因此,根据您的威胁模型,您可能需要切换到从未与 SHA-1 或较弱的摘要算法一起使用的新签名 key 。而这不仅是针对实际密码签名中使用的摘要算法,还针对.SF
和MANIFEST.MF
文件中使用的摘要算法。
关于android - 我可以指定 apksigner 使用的摘要算法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42477546/
我试图用 apksigner 验证最新 Gmail 应用程序(版本 8.11.25.224)的签名,但失败了。 我用过: apksigner verifiy --verbose --print-cer
到目前为止,我一直使用以下方法对我的 apk 进行签名: jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore {keyst
由于最近的 SHA1 冲突新闻,我想确保 SHA1 不再用于我的 apk 签名。但是我在 apksigner 中找不到参数. 有没有办法指定(直接或间接)apksigner 使用的摘要算法? (在SD
本文整理了Java中com.zzzmode.apkeditor.apksigner.ZipManager类的一些代码示例,展示了ZipManager类的具体用法。这些代码示例主要来源于Github/S
我目前正在从 V1 签名 ( jarsigner ) 升级到 V2 签名 ( apksigner )。 Jarsigner 一直为我工作没问题,但是我遇到了 zipalign 的问题在我的 build
如 https://developer.android.com/studio/publish/app-signing#signing-manually 中所述,我尝试在 Windows 7 上的 gi
如 https://developer.android.com/studio/publish/app-signing#signing-manually 中所述,我尝试在 Windows 7 上的 gi
按照 Sign Your App Manually指导, You can sign your app from the command line using standard tools from t
我正在 Android 上的 termux 上编译 Mario 64,但我在完成时遇到了问题。 这是正在发生的错误,我哪里错了?谢谢! apksigner sign --cert certificat
如何找到用于签署我的 APK 文件的证书? SO 问题 7104624、developer.android.com 上的 apksigner 文档和其他地方对此进行了讨论。他们都说在 apksigne
本文整理了Java中com.zzzmode.apkeditor.apksigner.ZipManager.extraZipEntry()方法的一些代码示例,展示了ZipManager.extraZip
从 3.0.13 升级到 Xamarin.UITest v.3.0.14 后,尝试签名时 APK 加载中断。 Android SDK not found. Please install it and
TLDR:apksigner sign -key rsa_der.key -cert x509.cert app.apk 直接使用未存储在 openssl 中的证书和 key 时失败一个 keysto
我们使用 HSM 进行 APK 签名,为了支持新的“APK Signature Scheme v2”,我们是否需要使用 apksigner 来支持方案 1 和方案 2? jarsigner - 仅支持
Xamarin 应用程序部署失败,错误为“apksigner.BAT”,退出时代码为 2。 JDK 版本 1.8.162 最佳答案 尝试将 JDK 降级到 1.8.131。 我遇到了 1.8.161
我已经使用 keytool、jarsigner 和 zipalign 实用程序对 APK 进行了签名。 我使用了以下命令: keytool -genkey -v -keystore myAppTran
我是一名优秀的程序员,十分优秀!