多用户管理:创建、切换、启动与删除
什么是 Android 多用户
Android 从 4.2 开始支持多用户——一台设备上可以有多个独立的用户账号,每个用户有独立的应用数据、设置、壁纸、锁屏密码。切换用户就像切换一台新手机,但物理硬件共用。
典型的多用户场景:
- 受限用户:给孩子开一个,权限比主用户低
- 工作/生活隔离:个人空间和工作空间分开(这是 Work Profile 的定位)
- 访客模式:别人临时用你的手机,用完了访客用户可以删除
- 多个家庭成员:一台平板全家共用
Device Owner 的多用户管理能力
普通用户只能在 Android 设置里手动添加/删除用户。Device Owner 可以通过 DevicePolicyManager API 做程序化管理:
- createUser() —— 创建新用户(受限用户 / 完整用户 / 头部用户)
- startUser() —— 启动指定用户
- switchUser() —— 切换到指定用户
- stopUser() —— 停止指定用户(保留数据但后台不运行)
- removeUser() —— 删除指定用户(数据被清除,不可逆)
- getUserInfo() —— 查询所有用户的状态
- setUserIcon() —— 设置用户头像
OwnDroid 的多用户界面
OwnDroid → 用户区域会列出设备上所有用户。可以:
- 创建新用户(选择类型:受限/完整)
- 对每个用户:启动 / 停止 / 删除 / 修改头像 / 设置锁定密码
创建受限用户 vs 完整用户
| 特性 | 受限用户 | 完整用户 |
|---|---|---|
| 能安装应用 | ✅ | ✅ |
| 有独立数据空间 | ✅ | ✅ |
| 能打电话/发短信 | ❌ | ✅ |
| 能访问主用户数据 | ❌ | ❌ |
| 适合场景 | 孩子、访客 | 家庭成员 |
Device Owner + 用户限制 = 完美家长控制
给孩子创建一个受限用户,然后在 OwnDroid 里对该用户设置:
- 禁止安装应用(
no_install_apps)——不让孩子装新 App - 禁止卸载应用(
no_uninstall_apps)——不让孩子删管控工具 - 禁止拨出电话(
no_outgoing_calls)——防止意外/恶意电话 - 禁止发短信(
no_sms)——防止收费短信 - 禁止位置共享(
no_location_sharing)——隐私保护
主用户随时可以切换到孩子的受限用户检查 App 列表和数据。
多用户与 Device Owner 的冲突
系统在设置 Device Owner 时会自动添加 no_add_managed_profile、no_add_user、no_add_private_profile 限制——这意味着默认情况下 Device Owner 设备上无法创建新用户或工作资料。
解决方案(有 Root):在 adb shell 里执行以下命令解除:
pm set-user-restriction no_add_user 0
pm set-user-restriction no_add_managed_profile 0
pm set-user-restriction no_add_private_profile 0
pm set-user-restriction no_add_clone_profile 0
警告:
- Device Owner 和 Work Profile 的 Profile Owner 不能是同一个应用,否则重启后 Device Owner 会丢失特权
- 绕过这些限制可能导致系统在重启时自动删除你创建的用户——这是系统级保护机制,OwnDroid 控制不了
- 某些 ROM(Samsung)完全锁定了多用户创建,暂无绕过方案