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

时间:2017-06-30 00:25:49

标签: android provisioning device-policy-manager device-owner android-for-work

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

使用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上运行。

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

1 个答案:

答案 0 :(得分:5)

试试这个

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 -- '+/=' '-_'使网址安全(+编码为-/编码为_,填充字符=被删除)。