App Ops 权限设置了但应用行为没变怎么办
快速排查清单
按顺序检查,多数情况在前几步就能定位问题:
| 序号 | 检查项 | 快速操作 |
|---|---|---|
| 1 | 选对工作模式了吗? | App Ops 设置 → 工作模式,确认是 Shizuku |
| 2 | Shizuku 还在运行吗? | 打开 Shizuku 应用看状态 |
| 3 | Android 版本支持这个权限吗? | App Ops 设置 → 行为 → 全部权限查 |
| 4 | 是系统应用吗? | 系统应用需要 App Ops X 扩展 |
| 5 | 系统自动重置了吗? | 重新打开 App Ops 看权限状态 |
| 6 | 厂商 ROM 覆盖了吗? | 检查厂商的权限管理页面 |
逐项详细排查
检查 1:工作模式是否正确
App Ops 的工作模式决定了权限操作能力:
- Shizuku 模式(推荐):完整的 appops 操作
- DPM 模式:appops 可以,但 permission flags 不行
- 未选择:App Ops 只读,不能修改
进入 App Ops 设置 → 工作模式,确认你选的是正确的模式且状态是"已激活"。
检查 2:Shizuku 是否在运行
Shizuku 服务会在以下情况停止:
- 手机重启(ADB 激活)
- Shizuku 应用被系统杀掉
- Root 权限被 SuperSU/Magisk 撤销
打开 Shizuku 应用确认状态是"已运行"。如果没运行,按 重启后重新激活 操作。
检查 3:Android 系统是否支持该权限
App Ops 能修改的 appops 完全取决于你的 Android 系统版本:
- 某些 appops 只有特定系统版本才存在
- App Ops 列表里看不到的 appops 就是系统不支持的
- App Ops v5.0.0 会自动隐藏系统不支持的权限项
在 App Ops 设置 → 行为 → 全部权限里查该 appop 是否在列表中。如果不在,说明你的系统不支持。
检查 4:目标是系统应用吗
默认 App Ops 只能修改用户安装应用的 appops。如果目标是:
- Settings(系统设置)
- SystemUI
- Launcher
- Google Play Services
- 预装系统应用
默认 App Ops 改不了。需要安装 App Ops X 扩展(需要 Root 或 DPM)。
检查 5:系统自动重置了吗
Android 11+ 的自动重置机制可能把你的 appops 设置改回去了:
- 在 App Ops 权限详情页确认当前状态
- 如果发现被改回,参考 权限自动恢复问题
- Shizuku 模式 + FIXED 标志能缓解但不能 100% 阻止
检查 6:厂商 ROM 的额外限制
部分厂商定制 ROM 有额外的系统级权限管理,可能覆盖 App Ops 的设置:
| 厂商 | 额外权限管理 |
|---|---|
| 小米/红米 | MIUI 的权限管理、自启动管理 |
| OPPO/vivo | ColorOS/iQOO 的权限管理、后台冻结 |
| 华为/荣耀 | EMUI/HarmonyOS 的权限管理、后台管理 |
| 三星 | OneUI 的权限管理、后台限制 |
| 一加 | OxygenOS 的后台管理 |
解决:同时在厂商的权限管理页面做对应设置。比如 MIUI 的应用权限和 App Ops 可能需要两边都设为忽略。
特殊情况
特殊情况一:target API 版本过低
某些老旧应用 target API < 23(Android 6.0 以下)。这些应用的权限在系统层面有特殊处理:
- Android 10 以前系统拒绝时把 uid mode 设为 ignore(仅对 target 23 以下)
- 这种情况下 App Ops 的 package mode 可能被 uid mode 覆盖
特殊情况二:应用检测 appops 状态
极少数应用会主动检查 appops 的实际设置:
// 应用层面可以检查 appops 是否被 ignore
if (AppOpsManager.checkOpNoThrow(AppOpsManager.OPSTR_READ_CLIPBOARD, ...)
== AppOpsManager.MODE_IGNORED) {
// 知道被忽略了
}
绝大多数应用不会做这个检测。但如果遇到了,忽略模式就不"隐身"了。这种情况改"拒绝"模式,或者用 Root 级 hook 框架(如 LSPosed/Xposed)来拦截。
特殊情况三:应用通过 Google Play Services 绕过
某些应用不直接请求权限,而是通过 Google Play Services(GMS)间接访问。App Ops 对这类情况无法直接控制——需要 App Ops X 扩展才能修改 GMS 的 appops。
终极手段
如果以上全部排查完还是不生效:
- 确认用的是 Shizuku 模式 + Root 激活(能力最强)
- PRO 版用户尝试恢复备份,看恢复后是否生效
- 卸载重装 App Ops + Shizuku,重新激活后再试
- 考虑换用其他工具(Storage Isolation + Magisk 模块等组合)