You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取APK的ADMIN_SIGNATURE_CHECKSUM或ADMIN_PACKAGE_CHECKSUM?

问题:TestDPC二维码设备所有者注册的校验值获取异常

我正尝试通过Google的TestDPC示例,用二维码完成设备所有者注册。已从GitHub仓库下载APK并部署在Windows IIS服务器上,现在需要获取校验值填入如下二维码JSON中:

{"android.app.extra.PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME":"com.afwsamples.testdpc/com.afwsamples.testdpc.DeviceAdminReceiver","android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM":"MS4-Pz8gP0VDPy0-P2I-Pz4NClE-Pz80Pz8rPz9zfD8-DQo=","android.app.extra.PROVISIONING_DEVICE_ADMIN_PACKAGE_DOWNLOAD_LOCATION":"http://192.168.1.224/TestDPC_8001.apk"}

我尝试了网上的V2和V1签名校验值获取方案,但得到的PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM始终和GitHub仓库提供的不一致。请问如何提取准确的PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM?或者如何提取可替代它的PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM?


解决方法

一、获取PROVISIONING_DEVICE_ADMIN_PACKAGE_CHECKSUM的正确步骤

该校验值是APK文件的SHA-256哈希值经Base64编码,再替换特殊字符后的结果,Windows环境下可按以下步骤操作:

  1. 打开PowerShell,计算APK的SHA-256哈希值:
    Get-FileHash -Path "你的APK文件完整路径" -Algorithm SHA256 | Select-Object -ExpandProperty Hash
    
  2. 将十六进制哈希值转换为符合要求的校验格式:
    # 替换成上一步得到的哈希值
    $hashBytes = [System.Convert]::FromHexString("ABCDEF123456...")
    $base64Str = [System.Convert]::ToBase64String($hashBytes)
    # 替换Base64中的特殊字符
    $packageChecksum = $base64Str.Replace("+", "-").Replace("/", "_")
    # 输出最终结果
    Write-Output $packageChecksum
    
  3. 将输出的$packageChecksum值填入JSON对应的字段即可。

二、获取PROVISIONING_DEVICE_ADMIN_SIGNATURE_CHECKSUM的正确步骤

该值是APK签名证书的SHA-256哈希值经Base64编码并替换特殊字符后的结果,需借助Android SDK的apksigner工具:

  1. 找到Android SDK Build Tools中的apksigner.bat(路径通常为Android\Sdk\build-tools\[版本号]\apksigner.bat),打开命令提示符执行:
    apksigner verify --print-certs 你的APK文件完整路径 > certs.txt
    
  2. 打开生成的certs.txt,找到SHA-256对应的十六进制字符串,去掉其中的空格。
  3. 用PowerShell转换为目标格式:
    # 替换成提取的证书SHA256哈希值
    $certHashBytes = [System.Convert]::FromHexString("ABCDEF123456...")
    $certBase64Str = [System.Convert]::ToBase64String($certHashBytes)
    $signatureChecksum = $certBase64Str.Replace("+", "-").Replace("/", "_")
    Write-Output $signatureChecksum
    
  4. 注意:若使用GitHub官方下载的TestDPC APK,签名证书为Google测试证书,计算出的签名校验值必须与官方一致;若为自行编译的APK,则需使用自身签名证书计算,否则会导致校验失败。

内容的提问来源于stack exchange,提问作者Tedjoucif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:01:38