使用受管理资料

“受管理资料”或“工作资料”是在管理方式和视觉外观方面具有额外特殊属性的 Android 用户

受管理资料的主要目的是为受管理的数据(如企业数据)创建一个隔离且安全的存储空间。资料管理员可以全权控制数据的范围、入口、出口及其有效期。这些政策可以赋予极高的权限,因此需由受管理资料(而非设备管理员)负责执行。

  • 创建:受管理资料可由主用户中的任何应用创建。用户在创建之前会收到受管理资料行为和政策执行的通知。
  • 管理:受管理资料由以编程方式调用 DevicePolicyManager 类中的 API 的应用管理,并且受管理资料的使用受到限制。这类应用称为“资料所有者”,在初始资料设置时定义。受管理资料独有的政策涉及应用限制、可更新性和 intent 行为。
  • 外观处理:受管理资料中的应用、通知和微件总是带有标记,并且通常内嵌在主用户的界面元素中。

数据隔离

受管理资料使用以下数据隔离规则。

应用

当同一应用同时存在于主用户和受管理资料中时,应用使用自己的隔离数据限定范围。通常,应用彼此独立地进行操作,并且彼此之间不能跨越资料-用户边界直接通信。

帐号

受管理资料中的帐号与主用户截然不同。这些帐号无法跨越资料-用户边界访问凭据。只有在各自环境中的应用才能访问其各自的帐号。

Intent

管理员可以控制是否在/不在受管理资料中解析 Intent。在默认情况下,受管理资料中的应用的范围被限定到受管理资料内,但 Device Policy API 除外。

设置

在通常情况下,设置的执行范围限定到受管理资料,但锁定屏幕和加密设置除外,它们的范围依然是整个设备且会在主用户和受管理资料之间共享。在其他情况下,资料所有者在受管理资料之外没有任何设备管理员权限。

受管理资料按以下原则被实现为一种新的次要用户:

uid = 100000 * userid + appid

与常规用户一样,它们具有独立的应用数据:

/data/user/<userid>

系统会使用 Binder.getCallingUid() 为所有系统请求计算 UserId,并且所有系统状态和响应都由 UserId 分隔。您可以考虑使用 Binder.getCallingUserHandle(而非 getCallingUid),以避免在 Uid 与 UserId 之间引起混淆。

AccountManagerService 为每个用户保留了一个单独的帐号列表。受管理资料与常规次要用户之间的主要区别如下:

  • 受管理资料与其父用户相关联,并在启动时与主用户一起启动。
  • 受管理资料的通知由 ActivityManagerService 启用,从而允许受管理资料与主用户共享活动堆栈。
  • 其他共享系统服务包括 IME、A11Y 服务、WLAN 和 NFC。
  • 借助新的 Launcher API,启动器可以在主要资料中的应用旁显示受管理资料中带有标记的应用和加入白名单的微件,而无需切换用户。

设备管理

Android 设备管理包括以下类型的企业设备管理员:

  • 资料所有者:专为自带设备 (BYOD) 环境而设计
  • 设备所有者:专为由企业负责的环境而设计

为 Android 5.0 添加的大多数新设备管理员 API 仅适用于资料或设备所有者。传统的设备管理员仍然保留,但适用于更简单的仅限消费者情况(例如,查找我的设备)。

资料所有者

Device Policy Client (DPC) 应用通常用作资料所有者。DPC 应用通常由企业移动管理 (EMM) 合作伙伴(如 Google Apps Device Policy)提供。

资料所有者应用通过发送 ACTION_PROVISION_MANAGED_PROFILE intent 在设备上创建受管理资料。此类资料因具有应用标记以及个性化外观而有别于其他资料。该标记或 Android 设备管理图标标识了哪些应用是工作应用。

EMM 仅对受管理资料(而非个人空间)进行控制,但有一些例外情况,例如执行锁定屏幕。

设备所有者

只能在未配置的设备中设置设备所有者:

  • 只能在初始设备设置时进行配置
  • 强制披露始终以快捷设置显示

设备所有者可以执行一些资料所有者无法执行的任务,如:

  • 擦除设备数据
  • 停用 WLAN/蓝牙
  • 控制 setGlobalSetting
  • setLockTaskPackages(能够将可将自己固定到前台的软件包加入白名单)
  • 设置 DISALLOW_MOUNT_PHYSICAL_MEDIA(默认为 FALSE)。如果为 TRUE,则便携式和可合并的物理媒体都无法装载。

DevicePolicyManager API

Android 5.0 及更高版本大幅改进了 DevicePolicyManager,其中包含数十个新的 API,可同时支持企业所有和自带设备 (BYOD) 的管理用例。示例包括应用限制、证书静默安装和跨资料共享 intent 访问控制。可以从示例 Device Policy Client (DPC) 应用 BasicManagedProfile.apk 着手使用。有关详情,请参阅构建工作政策控制器