了解 App Ops

简而言之,App Ops 是一个修改 Android 系统中的 "appops" 设置 的应用。

什么是 Android 系统中的 "appops"

在 Android 系统中存在一个叫做 "appops" 的系统服务,该服务定义了一系列的“应用操作”(application operation, op)。其中部分“应用操作”与“权限”对应(如 OP_CAMERA 与“相机权限”),其余则对应单独的功能(如 OP_READ_CLIPBOARD 与读取剪贴板,但并不存在“读取剪贴板权限”)。

原生 Android 系统使用 appops 来追踪权限使用,appops 也部分被用于权限控制。每个应用都有自己的 "appops" 设置,当应用需要执行某些操作时,系统在检查权限的同时也会检查 "appops" 设置。如果没有授予权限,应用在执行操作时将会收到错误。但不同的是,如果 "appops" 设为忽略〔1〕,应用不会收到错误只会收到空白数据〔2〕

但是原生 Android 系统并没有提供修改 "appops" 设置的用户界面。

〔1〕 App Ops 应用中实际将“忽略”显示为“拒绝”
〔2〕 实际行为取决于系统,应用也可检查 "appops" 是否被拒绝

什么是 App Ops 应用

App Ops 应用的核心功能是修改系统 "appops" 设置,可以在某种意义上实现权限管理。App Ops 应用还做出很多努力简化许多技术细节,让使用更加简单。

用语声明

“权限”

App Ops 实际修改的是“应用操作”而非“权限”,但为了降低难度将其称为“权限”。App Ops 应用不可以直接操作“权限”,请不要误解。

提示

帮助中的其他地方仍称其为“权限”。

App Ops 的限制

可以修改的权限取决于系统

App Ops 所能修改的权限只取决于你的系统,所以别再问“为什么没有 XXX 权限”了。

通常,系统版本越高,能修改的内容越多(厂商或自定义 ROM 可能会添加自己的权限)。所有你的系统支持的权限可以在 设置 - 行为 - 全部权限 中看到。

应用仍可以获知没有权限

应用可以检查返回数据是否为空白,或是直接检查 "appops" 是否被允许。只是很少有应用这么做。