appops 中文文档 下载 App

App Ops 多用户和工作资料夹权限隔离

Android 多用户架构

Android 从 4.2 起支持多用户(多个用户账号共用一台设备),包括:

每个用户有独立的 Linux uid 范围,这意味着:

App Ops 如何支持多用户

Shizuku 模式

Shizuku 模式完整支持多用户:

在 App Ops 应用列表中,不同用户的应用会被标注所属用户,或可以按用户分组查看。

托管设备管理员模式(DPM)

DPM 模式也支持多用户,但取决于底层 DPM 管理员应用的实现:

多用户场景下的 appops 独立性

这是一个关键理解点:

场景appops 是否共享说明
主用户和工作资料夹里的"同一个应用"不共享工作资料夹里的应用有独立的 uid,appops 独立
主用户和子账号里的"同一个应用"不共享同理,独立 uid = 独立 appops
主用户里 App Ops 的设置只影响主用户工作资料夹里的应用不受影响

这意味着你可以在主用户里把微信的定位权限设为忽略,但工作资料夹里的微信分身定位权限可以设为允许——两套独立设置互不干扰。

Shizuku 模式下的跨用户操作

使用 Shizuku 模式时,App Ops 可以跨用户操作:

  1. App Ops 应用列表里显示所有用户的已安装应用
  2. 点击工作资料夹里的某应用,进入它的 appops 详情
  3. 修改的是该用户下的 appops,不影响其他用户

多用户下的 ADB 激活

如果使用 ADB 激活 Shizuku:

这和 Shizuku 的 Binder 服务架构有关——它作为系统级服务,能被任意用户的 App Ops 调用。

多用户场景下的常见问题

问题:主用户改了权限,工作资料夹里没变化

正确。不同用户的 appops 独立,需要分别进入各用户的 App Ops 实例修改。

问题:工作资料夹里没装 App Ops

工作资料夹里的应用权限需要:

  1. 要么在主用户的 App Ops 里通过 Shizuku 跨用户修改(需要 App Ops 在主用户能看到工作资料夹的应用)
  2. 要么在工作资料夹里也装一个 App Ops,独立管理(更直观)

问题:重置手机时工作资料夹的设置丢失

工作资料夹的 appops 设置保存在 Android 系统数据库中(带 user 标识)。刷机或恢复出厂设置会清除所有用户的数据和 appops。用 App Ops 备份时注意:备份文件格式支持跨用户保存。

使用建议