拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Android设备完整性检测实用手册:用 Play Integrity API Checker 给手机做次“体检“

Android设备完整性检测实用手册用 Play Integrity API Checker 给手机做次体检【免费下载链接】play-integrity-checker-appGet info about your Device Integrity through the Play Intergrity API项目地址: https://gitcode.com/gh_mirrors/pl/play-integrity-checker-app先讲一个真实到有点扎心的故事。有个独立开发者上线了一款记账 App用户量刚破万某天深夜突然发现后台数据不对劲——有人用脚本在短短两小时里刷出了几百万虚拟金币。他查了半天日志最后发现原因很简单这些请求来自一台被 Root 过的设备App 根本没有能力判断对面的手机是否可信。这件事让他第一次认真研究 Android 设备完整性检测也让他遇到了本文的主角——开源项目Play Integrity API Checker。设备完整性检测是什么先把它想成一次体检Google Play Integrity API 是 Google 官方提供的一套体检设备的服务。它能在后台默默检查你的手机系统有没有被篡改、有没有装过可疑框架、运行环境是不是模拟器然后把结论封装成一个加密的令牌返回给你。而 Play Integrity API Checker 这个开源应用做的事情特别纯粹把官方 API 包装成一个按钮。你点一下Check它就把这份体检报告摊开给你看。对新手来说它是理解设备完整性这个概念的最好教具对开发者来说它是一块用来验证自己思路的试验田。它不像那些动不动就几十个类的企业级框架整个主代码就两个文件逻辑一眼能看穿。这一点反而让它特别适合入门。体检单上那四项分别查什么App 界面上会列出四项检测结果每项对应一个图标绿勾通过、红叉不通过、问号未知。这就是 Google 官方的四层完整性判定MEETS_BASIC_INTEGRITY基本完整性相当于量血压看设备有没有明显带病运行比如被 Root、装了 Magisk 这类工具。MEETS_DEVICE_INTEGRITY设备完整性查系统签名判断手机是不是跑在官方认证的系统上。MEETS_STRONG_INTEGRITY强完整性最严格的一档依赖硬件级的安全校验专门揪那些深层的篡改行为。MEETS_VIRTUAL_INTEGRITY虚拟完整性识别模拟器和虚拟化环境游戏防作弊最看重这项。注意虚拟完整性这一项平时是隐藏的只有当服务器返回了相关字段时才会显示出来——这个细节说明作者考虑得很细。3分钟看懂它背后的工作流程很多人以为检测就是 App 本地扫一下其实不是。整个流程要绕一个圈很像拿体检单去医院但化验结果要送回给医生看App 生成一串 50 位的随机字符nonce相当于这次体检的编号。把编号交给 Play Integrity API换回一个加密令牌。令牌被发到你自己的服务器而不是 Google由服务器解密、验证再返回 JSON 结果。App 解析 JSON 里的deviceRecognitionVerdict字段把结果翻译成四个图标。核心解析代码只有一行逻辑看懂这个就理解了整个工具private Integer[] parseValues(String integrity) { return new Integer[]{ integrity.contains(MEETS_BASIC_INTEGRITY) ? 1 : 0, integrity.contains(MEETS_STRONG_INTEGRITY) ? 1 : 0 }; }简单吧检测项够不够、返回什么全看你的服务器怎么配。想让它在自己手机上跑起来需要这几样如果你动了心思想在自己手机上跑一份体检报告准备步骤比想象中少一个配套服务器项目需要搭配 Play Integrity Checker Server 使用App 只是前台真正的解密验证在服务器上完成。一行配置在local.properties里写上你的服务器地址格式如下API_URLhttps://my-awesome-server-url.comGoogle Cloud 项目在 Play Console 里把 Integrity API 关联到自己的云项目并打开基本完整性和强完整性两个开关。想直接体验的话可以 clone 仓库后构建安装仓库地址是https://gitcode.com/gh_mirrors/pl/play-integrity-checker-app在项目根目录执行./gradlew assembleDebug就能打出调试包。两个写在 README 里的重要提醒很多人会忽略这个项目的作者很实在把最关键的坑直接写在了文档开头这两条值得每一个想抄作业的人记住提醒一侧载会缺项。如果你不是从 Play Store 安装它很可能拿不到基本完整性和强完整性的结果。不是工具坏了而是 Google 只对正规渠道分发的应用给出这两项判定。提醒二生产环境别照抄这个设计。作者的原话是服务器不应该把整个 JSON 发给 App只该回一个是/否。因为令牌一旦到了客户端手里逆向工程就能把它玩出花。正确做法是把完整性校验和登录等关键操作绑在一起服务器先验令牌、再放行。这两条提醒恰恰是这个开源项目最有价值的地方——它不只是教你怎么调 API还告诉你为什么不能这么调。连报错都给你配了药方新手最怕什么报错看不懂。这个工具把 Play Integrity API 的 20 种错误码都做了中文般贴心的处理每种错误都给出了原因 解决方案。比如TOO_MANY_REQUESTS会提示请求太频繁稍后再试PLAY_STORE_NOT_FOUND会建议安装官方版 Play StoreAPP_UID_MISMATCH则会直白地提醒可能遭到了攻击。这种把官方文档翻译成可操作建议的做法等于给新手配了一份排错手册。下一步你可以做什么读到这里你已经知道设备完整性检测是什么、怎么跑起来、有哪些坑了。接下来挑一件做想快速上手clone 仓库https://gitcode.com/gh_mirrors/pl/play-integrity-checker-app配好服务器给手头设备出一份体检报告。想加深理解打开源码里的MainActivity.java从generateNonce()看到parseValues()整个流程不到 200 行读一遍比看十篇教程都管用。想真正用起来参考 README 里的生产环境警告试着在自己的服务器上实现只回是/否的校验逻辑。一个按钮、四个指标、一段 200 行的源码这就是 Android 设备完整性检测最接地气的打开方式。愿你的 App 永远不会在深夜被刷爆。【免费下载链接】play-integrity-checker-appGet info about your Device Integrity through the Play Intergrity API项目地址: https://gitcode.com/gh_mirrors/pl/play-integrity-checker-app创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门