找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

6097

积分

0

好友

738

主题
发表于 前天 20:40 | 查看: 0| 回复: 0

谷歌在 Android 17 中已经禁止普通应用读取开发者选项和 USB 调试状态。现在应用尝试读取这些状态时,系统会直接返回 0,也就是“关闭”。此前,不少应用会通过 API 读取这些字段,把它们当作设备环境检测的条件,典型例子就是银行类应用,一旦检测到用户开启了 USB 调试,就直接禁止登录。谷歌的判断很明确:普通应用读取这类信息完全没必要,因此干脆让返回值恒定为零,从源头堵住这个口子。

实际上,很多应用在安装或启动阶段都会探测系统是否开启开发者选项或 USB 调试模式。至于这些应用为什么要读取这些信息,外界并不完全清楚。但谷歌的态度很坚决:普通应用没有理由碰这些数据。所以在 Android 17 中,任何尝试读取的操作都会得到相同的答案,始终返回 0。

Android 17开发者选项与USB调试状态检测示意图

谷歌官方确认已经禁止读取状态信息

过去,应用可以通过读取系统字段来判断 USB ADB 调试是否已开启,以及开发者模式是否启用。返回值 0 代表关闭,返回 1 代表启用。

谷歌在代码提交说明中给出的理由相当直接:这类信息对普通应用来说并不重要。因此,合并到 AOSP 的变更会让应用读取这些字段时始终得到 0。这项更改已经在 2026 年 3 月合并进 AOSP 代码仓库。

这种做法和直接禁止访问不同。现有应用通常不需要因为 API 消失而修改代码,但如果此前依赖返回 1 来判断开发者模式或 USB 调试状态,那么在新系统上,这套检测逻辑会直接失效。

银行类应用无法再逼迫用户关闭开发者模式

长期以来,应用程序可以直接读取这些选项状态,因此部分应用将开发者选项和 USB 调试作为设备环境检测条件。比如,一些银行类应用检测到 USB 调试或开发者模式开启后,会以安全隐患为由直接禁止登录。

现在状态修改后,银行类应用无法再通过返回值直接判断。当然,这类应用还会结合 root 状态、设备完整性验证、系统属性或自身反篡改机制来做环境判断。但至少,它们没法再强迫用户关闭 USB 调试和开发者选项了。

Android 17 正式版已经在 2026 年 6 月发布,谷歌也已更新开发者文档来反映这些变化。想深入了解的开发者可以直接查阅 Android 最新开发者文档。

消息来源:互联网

关于这类系统变更的更多讨论,欢迎前往 云栈社区 开发者广场参与交流。




上一篇:支付超时不是失败:PSP 重试、切换、降级与补单设计
下一篇:GPT-6发布一周热度为何不减?OpenAI传播节奏与策略复盘
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-9-13 18:08 , Processed in 1.278969 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表