如何获得仅使用v2方案签名的APK的签名校验和?

问题描述:

我以前张贴在这里怎么得到我的APK的签名校验一个问题: How do I get the signature checksum of my APK?如何获得仅使用v2方案签名的APK的签名校验和?

答案是完美的,如果一个应用程序与V1签名方案或组合V1/V2签名方案签名。 (Jar and Full APK Signatures)

但是,由于我的应用只能在Android O或更高版本上运行(它是一种特定于设备的应用),因此我只会使用APK签名方案v2(v2方案) 。

我将使用EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM。详情请参阅:https://developer.android.com/reference/android/app/admin/DevicePolicyManager.html

如何获取我的应用的APK(v2)签名校验和,以便在我的密钥/值对中使用NFC配置设备所有者应用?

要建立在例如How do I get the signature checksum of my APK?你提到:

apksigner verify -print-certs [path to your apk] | grep -Po "(?<=SHA-256 digest:) .*" | xxd -r -p | openssl base64 | tr -d '=' | tr -- '+/=' '-_'` 

“签名校验”你指的是安全网址Base64编码的APK的签名证书的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

+1

刚刚验证此方法适用于v1和/或v2方案!谢谢! –

+1

我的Mac有一个不支持-P标志的grep版本。为了解决这个问题,我不得不改变命令:我换了grep -Po“(?