我之前在这里发布了一个关于如何获取 APK 签名校验和的问题: 如何获取 APK 的签名校验和?
如果应用程序使用 v1 签名方案或 v1/v2 签名方案组合进行签名,那么答案是完美的。 (Jar 和完整的 APK 签名)
但是,由于我的应用程序只能在 Android O 或更高版本上运行(它是特定于设备的应用程序),因此我只会使用 APK 签名方案 v2(v2 方案)对其进行签名。
我将使用 EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM。请参阅:https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html了解详细信息。
如何获取我的应用程序的 APK (v2) 签名校验和,以便在密钥/值对中使用它来配置设备所有者应用程序的 NFC?
在示例的基础上构建如何获取 APK 的签名校验和?您提到:
apksigner verify -print-certs [path to your apk] | grep -Po "(?<=SHA-256 digest:) .*" | xxd -r -p | openssl base64 | tr -d '=' | tr -- '+/=' '-_'
您所指的“签名校验和”是 APK 签名证书的 URL 安全 Base64 编码的 SHA-256 摘要。
apksigner verify --print-certs
打印 APK 签名证书的各种摘要,无论 APK 是 JAR 签名、APK 签名方案 v2 签名还是两者均签名。
apksigner
通过 Android SDK 构建工具 24.0.3
及更新版本进行分发(26.0.0
除外,它意外丢失了 apksigner
)。 https://developer.android.com/studio/command-line/apksigner.html
对于 Windows 用户来说是一个简单又好的解决方案: