适用于 Automotive 的设备管理

通过设备管理,您可以远程管理搭载 Android Automotive OS (AAOS) 的车辆。例如,车辆所有者可能希望远程将信息娱乐设备恢复出厂设置。

在 Automotive 中,我们提供以下两类设备管理:

  • 个人设备。归消费者所有的车辆。车辆所有者远程管理汽车。例如,所有者使用车辆的移动应用来远程将信息娱乐设备恢复出厂设置。
  • 企业设备。归企业或组织所有的车辆。 管理员远程管理汽车。

个人设备

在个人设备场景中,远程管理车辆需要考虑汽车的驾驶状态。例如,如果车辆所有者远程触发恢复出厂设置,那么当汽车正由他人驾驶时,则不应恢复出厂设置。

因此,我们设置了一组与驾驶状态限制集成的设备管理 API。任何具有正确权限的系统应用(系统分区中的预安装应用)都可以调用这些 API。

个人设备管理 API

API 用途
CarDevicePolicyManager.createUser()

在设备后台创建新用户。

它如何与驾驶状态交互?

无论驾驶状态如何,系统都会在后台创建新用户。

CarDevicePolicyManager.RemoveUser()

移除设备上的现有用户。

它如何与驾驶状态交互?

如果目标用户:

  • 在后台,操作会继续。
  • 前台且汽车处于 PARKEDIDLING 状态,操作会继续。
  • 前台且汽车处于 MOVING 状态,系统会抛出异常代码。
DevicePolicyManager.lockNow()

锁定设备上的现有用户。如果用户已有锁屏凭据(例如 PIN 码或图案),显示屏将保持开启状态。

它如何与驾驶状态交互?

如果目标用户:

  • 后台,操作会继续。
  • 前台且汽车处于 PARKEDIDLINGMOVING 状态,那么当用户位于前台时,操作会继续(无论驾驶状态为何),否则会被忽略。lockNow() 不受防止分心的用户体验状态的限制。
DevicePolicyManager.resetPassword()

通过设置锁屏凭据来锁定设备上的现有用户,前提是该用户还没有凭据。显示屏将保持开启状态。

它如何与驾驶状态交互?

如果目标用户:

  • 后台,操作会继续。
  • 前台且汽车处于 PARKEDIDLING 状态,操作会继续。
  • 前台且汽车处于 MOVING 状态,系统会抛出异常代码。
DevicePolicyManager.wipeData()

在设备上触发恢复出厂设置。

它如何与驾驶状态交互?

无论驾驶状态为何(PARKEDIDLINGMOVING),操作都会继续。系统会发布通知,通知驾驶员需要恢复出厂设置。

车辆处于 PARKED 状态时,驾驶员可以与通知交互,以便选择立即或以后再(下次启动汽车时)重置设备。

例如:

恢复出厂设置通知

图 1. 触发恢复出厂设置后系统发布的通知。

车辆处于 PARKED 状态

图 2. 车辆处于 PARKED 状态时,驾驶员可以与通知交互,以便选择立即或以后再(下次启动汽车时)重置设备。

驾驶员选择了重置

图 3. 如果驾驶员选择以后再重置,系统会显示消息框消息,指明设备将在下次汽车启动时恢复出厂设置。

企业设备

搭载 Android 13 及更高版本的 Android Automotive OS 设备可以声明支持 android.software.device_admin 功能,以启用企业 Device Management API(如需了解详情,请参阅 DevicePolicyManager)。然后,组织可以使用设备政策控制器 (DPC) 应用控制设备上的本地设备政策和系统应用。

Automotive 不支持工作资料,这意味着唯一受支持的管理解决方案是全托管式设备,它适用于组织拥有完全管理控制权的公司自有设备。

远程管理车辆的企业还必须考虑汽车的驾驶状态。因此,特定的远程操作也与车辆的驾驶状态集成。例如,DevicePolicyManager.setFactoryResetProtectionPolicy() 中的恢复出厂设置流程也适用于支持企业的车辆。

DevicePolicyManagercode> 中的任何 API 都可能会抛出异常(例如,车辆正在行驶中)。下面提供了 DevicePolicyManagercode> API 的部分列表。如需了解详情,请参阅设备管理概览

  • DevicePolicyManager.removeActiveAdmin()
  • DevicePolicyManager.setFactoryResetProtectionPolicy()
  • DevicePolicyManager.installCaCert()
  • DevicePolicyManager.uninstallCaCert()
  • DevicePolicyManager.installKeyPair()
  • DevicePolicyManager.removeKeyPair()

适用于多个用户的企业设备管理

适用于 Automotive 的设备管理可与多用户支持搭配使用。这意味着多名驾驶员可以使用同一辆公司自有车辆,但使用他们自己的用户保护数据隐私,避免将数据暴露给其他驾驶员。

管理员可以使用设备政策控制器 (DPC) 应用(如构建设备政策控制器中所述)来控制设备级政策或针对特定用户的政策。

Automotive build 通常使用无头系统用户模式,在这种情况下,系统会将设备政策控制器 (DPC) 设置为系统用户的设备所有者 (DO) 和所有其他用户的资料所有者 (PO)。远程管理员应与 PO 用户建立关联,因为某些 API(如 requestBugreport())只有在所有用户都建立关联后才可用。然后,远程管理员应选择适当的 DPC 以执行操作。如果操作与设备相关联(例如通过 wipeData() 恢复出厂设置),则应使用 DO DPC。如果与用户关联(如 addUserRestriction()),则应使用 PO DPC。

DPC 应用需要 DO 和 PO 之间的 IPC。我们建议使用关联的工作应用和个人应用中所述的 Connect Apps API。

如需详细了解 DPC 应用如何管理多个用户,请参阅关联的用户