appops 中文文档 下载 App

App Ops 在不同 Android 版本上的行为差异总览

核心结论

App Ops 能修改的 appops 权限范围完全取决于你的 Android 系统版本。 版本越高,App Ops 能控制的权限越多,行为也越复杂。别问"为什么 App Ops 里找不到某某权限"——先看你的系统版本支持不支持。

各版本关键差异

Android 6 - Android 9

特点:appops 行为相对简单,uid mode 和 package mode 概念已存在但 App Ops 早期版本没正确处理。

Android 10

关键变化:引入 foreground 状态(仅在使用期间允许),系统面板出现三档权限选择。

Android 11

关键变化:系统引入"每次都询问"选项,并会在特定时机自动重置 appops。

Android 12+

关键变化:权限模型进一步细化。

系统会重置 appops 的场景

Android 11+ 下以下场景会触发系统 appops 重置:

  1. 应用安装后:系统把新安装应用的 appops 重置为默认值
  2. 运行时权限状态变化后:如果你在系统设置里改了运行时权限,系统可能重设对应的 appops
  3. 厂商定制 ROM:部分厂商(如 MIUI)在系统更新、清理等操作后会重置 appops

这就是为什么 App Ops 里改好的权限过一段时间自己变回去了——不是 App Ops 的 bug,是 Android 系统设计使然。

版本升级带来的问题

从低版本 Android 升级到高版本时:

App Ops v5.0.0 为什么必须重写

旧版本 App Ops 只改 package mode,完全没考虑 uid mode 和 permission flags。v5.0.0 起同时管理三者,才能正确跟随 Android 系统的实际行为。这也是为什么 v5.0.0 同时移除了纯 root 模式——因为 root 只有 uid 0 的 shell,没有修改 permission flags 的能力。

查系统支持的 appops 范围

App Ops 应用内:设置 → 行为 → 全部权限,可查看当前系统支持的所有 appops。如果某权限你想控制但找不到,说明系统不支持,App Ops 也无能为力。