# 了解 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 应用不可以直接操作“权限”,请不要误解。

TIP

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

# App Ops 的限制

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

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

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

# 应用仍可以获知没有权限

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