Google Play Integrity API设备重启后返回UNEVALUATED问题求助
Google Play Integrity API重启后返回UNEVALUATED的问题排查
问题描述
我开发的应用已集成Google Play Integrity API,设备完整性检查通过时应用可正常运行,成功响应示例:
"deviceIntegrity": { "deviceRecognitionVerdict": ["MEETS_BASIC_INTEGRITY", "MEETS_DEVICE_INTEGRITY"] },
但部分用户反馈:安装时能通过完整性检查,重启设备后检查失败,调试获取到的重启后响应如下:
{ "requestDetails": { "requestPackageName": "com.my.package", "timestampMillis": "1674455009345", "nonce": "Y29tLm1hbnRyYS5yZHNlcnZpY2UyMDIzMDEyMzExNTIzMjajHDrnJ9vtl2AfC1fUdEDJmD_HfvFtcpc\u003d" }, "appIntegrity": { "appRecognitionVerdict": "UNEVALUATED" }, "deviceIntegrity": { }, "accountDetails": { "appLicensingVerdict": "UNEVALUATED" } }
官方对UNEVALUATED的说明:
Application integrity was not evaluated. A necessary requirement was missed, such as the device not being trustworthy enough.
该问题仅在安卓设备重启后出现,寻求解决方案。
可能的排查方向及解决方案
- 延迟Play服务初始化后的检查:重启后Google Play Services可能未完全就绪就触发了检查。建议等应用进入前台后再发起请求,或通过
GoogleApiAvailability确认Play服务状态正常后再调用API。 - 校验Nonce生成逻辑:确保Nonce每次请求动态生成,长度在16-500字节之间,避免依赖重启后未恢复的系统状态参数。如果Nonce生成异常,会导致请求无效触发
UNEVALUATED。 - 添加重试机制:部分设备重启后,SELinux、硬件安全模块等安全组件需要时间初始化,短时间内设备会被判定为不可信。可在检查失败后间隔3-5秒重试,最多重试2-3次。
- 确认应用签名一致性:重启后系统可能重新校验应用签名,确保发布到Play商店的签名与本地构建签名完全一致,避免签名校验失败导致评估跳过。
- 排查系统权限限制:部分定制ROM或安全软件会在重启后临时限制应用访问Play服务的权限。引导用户检查应用的联网权限、后台运行权限是否正常,必要时手动授予。
内容的提问来源于stack exchange,提问作者AMD
相关产品推荐
相关产品推荐

