# 从 Android 应用程序获取许可证持有人哈希值

Source: [https://docs.qualcomm.com/doc/80-PV345-88SC/topic/android_get_licensee_hash_from_an_android_application.html](https://docs.qualcomm.com/doc/80-PV345-88SC/topic/android_get_licensee_hash_from_an_android_application.html)

ISV 编写的 Android 应用程序可能需要由许可证持有人或 ISV 哈希限制的功能许可证/证书。

QTI 颁发功能许可证/证书时需要使用 Android 应用程序签名证书的 SHA-256 哈希值，即，DER 格式的 X.509 应用程序签名证书的 SHA-256 哈希值。可以使用 keytool 及 –list –v 选项来获取该哈希值，如下所示：

    keytool -exportcert -list -v -alias <isv-key-name> \
    -keystore <path-to-keystore>Copy to clipboard

`<path-to- keystore>` 是包含证书的 keystore 所在的文件路径名称。对于调试密钥，默认文件路径为 ~/.android/debug.keystore。对于发布密钥，该位置通常由用户指定。

`<isv-key-name> `是 keystore 中密钥的别名，在密钥生成期间指定。调试密钥的默认值为 androiddebugkey。

必须发送到 QTI 的输出如下所示：

    SHA256:37:B7:E3:7D:AC:D7:99:7D:4B:C4:D6:C2:8B:6F:8F:31:21:5E:\
    9F:D1:AA:70:4F:BC:64:4E:EA:4F:FF:D4:93:19Copy to clipboard

输出的十六进制数字会有所不同。

有关 keytool 的信息，参见 [https://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html](https://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html)。

如果应用程序签名证书不在 keytool 中，则可使用以下 OpenSSL 命令获取指纹：

    openssl x509 –in <isv_cert_file> -fingerprint –sha256Copy to clipboard

如果使用多个密钥对 Android 应用程序进行签名，则可以将多个指纹发送到 QTI 并绑定到功能许可证/证书。但是，最好避免提供具有不安全密钥的调试证书的指纹，否则任何使用调试签名的应用程序都可能使用这个证书。

**Parent Topic:** [生成许可证](https://docs.qualcomm.com/doc/80-PV345-88SC/topic/Generate_license.html)

Last Published: Mar 22, 2023

[Previous Topic
QESDK 支持的功能](https://docs.qualcomm.com/bundle/publicresource/80-PV345-88SC/topics/Supported_QESDK_features.md) [Next Topic
将许可证添加到 Android 项目](https://docs.qualcomm.com/bundle/publicresource/80-PV345-88SC/topics/add_license_to_android_project.md)