如何获取我的 APK 的签名校验和?

How do I get the signature checksum of my APK?

在使用设备所有者应用程序配置设备时,我想使用签名校验和而不是包校验和。该应用程序将从 http 服务器下载。

这个 post 在使用 EXTRA_PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM 时非常有用: Checksum Error while provisioning Android Lollipop

但是我想用EXTRA_PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM。 参见:https://developer.android.com/reference/android/app/admin/DevicePolicyManager.htm

配置应用和设备所有者应用都将在 Android O 上 运行。

如何获取我的应用程序的签名校验和,我可以在我的 key/value 对 NFC 中使用它?

试试这个

keytool -list -printcert -jarfile [path_to_your_apk] | grep -Po "(?<=SHA256:) .*" | xxd -r -p | openssl base64 | tr -d '=' | tr -- '+/=' '-_'

详情:

  • keytool -list -printcert -jarfile [path_to_your_apk] 提取有关 APK 证书的信息,
  • grep -Po "(?<=SHA256:) .*" | xxd -r -p 采用 SHA256 哈希并将其转换为二进制,
  • openssl base64用base64编码,
  • tr -d '=' | tr -- '+/=' '-_' 使其 URL-安全(+ 编码为 -/ 编码为 _ 并且填充字符 = 已删除)。