Управление устройствами для автомобилей

Управление устройством позволяет удаленно управлять автомобилем под управлением Android Automotive OS (AAOS). Например, владелец транспортного средства может захотеть удаленно восстановить заводские настройки информационно-развлекательного блока.

В Automotive мы предлагаем две категории управления устройствами:

  • Личное устройство. Транспортное средство принадлежит потребителю. Владелец транспортного средства удаленно управляет автомобилем. Например, владелец использует мобильное приложение автомобиля для удаленного сброса настроек информационно-развлекательного блока до заводских.
  • Устройство предприятия. Транспортное средство находится в собственности предприятия или организации. Администратор удаленно управляет автомобилем.

Персональные устройства

В сценарии с персональным устройством удаленное управление транспортным средством требует учета состояния движения автомобиля. Например, если владелец автомобиля удаленно запускает сброс настроек, автомобиль не должен сбрасываться до заводских настроек, если автомобилем активно управляет другой человек.

Таким образом, у нас есть набор API-интерфейсов управления устройствами, интегрированных с ограничениями состояния диска. Эти API могут вызываться любым системным приложением (предустановленными приложениями в системном разделе) с правильными разрешениями.

API управления персональными устройствами

API Цель
CarDevicePolicyManager.createUser()

Создает нового пользователя на устройстве в фоновом режиме.

Как это взаимодействует с состоянием диска?

Новый пользователь создается в фоновом режиме, независимо от состояния диска.

CarDevicePolicyManager.RemoveUser()

Удаляет существующего пользователя на устройстве.

Как это взаимодействует с состоянием диска?

Если целевой пользователь находится в:

  • Фон, операция продолжается.
  • Передний план и автомобиль ЗАПАРКОВАН или НАХОДИТСЯ на холостом ходу, операция продолжается.
  • Передний план и машина ДВИГАЕТСЯ , выдается код исключения.
DevicePolicyManager.lockNow()

Блокирует существующего пользователя на устройстве. Если у пользователя есть существующие учетные данные блокировки экрана (например, PIN-код или графический ключ), дисплей остается включенным.

Как это взаимодействует с состоянием диска?

Если целевой пользователь находится в:

  • Фон , операция продолжается.
  • Передний план и автомобиль находится в состоянии PARKED или IDLING , или MOVING , он будет продолжаться, если пользователь находится на переднем плане (независимо от состояния вождения) или игнорируется в противном случае. lockNow() не ограничивается состоянием отвлечения UX.
DevicePolicyManager.resetPassword()

Блокирует существующего пользователя на устройстве, устанавливая учетные данные блокировки экрана, если у пользователя нет существующих учетных данных. Дисплей остается включенным.

Как это взаимодействует с состоянием диска?

Если целевой пользователь находится в:

DevicePolicyManager.wipeData()

Запускает сброс настроек на устройстве.

Как это взаимодействует с состоянием диска?

Независимо от состояния привода ( PARKED , IDLING или MOVING ) операция продолжается. Система отправляет уведомление, чтобы сообщить водителю, что требуется сброс настроек.

Когда автомобиль припаркован, водитель может взаимодействовать с уведомлением, чтобы сбросить настройки устройства сейчас или позже (при следующем запуске автомобиля).

Например:

Уведомление о сбросе настроек

Рис. 1. Система отправляет уведомление при запуске сброса настроек.

Автомобиль ЗАПАРКОВАН

Рис. 2. Когда автомобиль припаркован, водитель может взаимодействовать с уведомлением, чтобы сбросить настройки устройства сейчас или позже (при следующем запуске автомобиля).

Драйвер выбирает сброс

Рис. 3. Если водитель выберет «Сброс настроек позже», появится всплывающее сообщение, указывающее, что устройство будет сброшено до заводских настроек при следующем запуске автомобиля.

Корпоративные устройства

Устройства с ОС Android Automotive под управлением Android T (экспериментальная версия AOSP) SC V2 и более поздних версий могут заявить о поддержке функции android.software.device_admin для включения корпоративных API-интерфейсов управления устройствами (дополнительные сведения см. в разделе DevicePolicyManager ). Затем организация может использовать приложение Device Policy Controller (DPC) для управления локальными политиками устройства и системными приложениями на устройстве.

Automotive не поддерживает рабочие профили , а это означает, что единственным поддерживаемым решением для управления является полностью управляемое устройство , которое предназначено для корпоративных устройств, над которыми организация имеет полный контроль.

Предприятия, дистанционно управляющие транспортным средством, также должны учитывать состояние движения автомобиля. Следовательно, конкретные дистанционные действия также интегрированы с состоянием движения транспортного средства. Например, процесс сброса к заводским настройкам в DevicePolicyManager.setFactoryResetProtectionPolicy() также применим к корпоративным автомобилям.

Любой API из кода DevicePolicyManager > может выдать исключение (например, если транспортное средство движется). Частичный список API-интерфейсов DevicePolicyManager code> приведен ниже. Дополнительные сведения см. в разделе Обзор администрирования устройств .

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

Управление корпоративными устройствами для нескольких пользователей

Управление устройствами для автомобилей работает с многопользовательской поддержкой . Это означает, что несколько водителей могут использовать один и тот же автомобиль, принадлежащий компании, но сохраняя и предотвращая раскрытие конфиденциальности своих данных другим водителям с помощью своих собственных пользователей.

Администратор может использовать приложение контроллера политик устройств (DPC), как описано в разделе Создание контроллера политик устройств для управления политиками для всего устройства или для конкретных пользователей.

В автомобильных сборках обычно используется пользовательский режим автономной системы, и в этом случае контроллер политики устройства (DPC) будет установлен как владелец устройства (DO) системного пользователя и владелец профиля (PO) каждого другого пользователя. Удаленный администратор должен аффилировать пользователей PO, так как некоторые API (например requestBugreport() ) доступны только в том случае, если все пользователи аффилированы. Затем удаленный администратор должен выбрать правильный DPC для выполнения действий. Если действие связано с устройством (например, сброс к заводским настройкам через wipeData() ), оно должно использовать DO DPC. Если он связан с пользователем (например addUserRestriction() ), он должен использовать PO DPC.

Приложению DPC требуется IPC между DO и PO. Мы предлагаем API Connect Apps, описанный в разделе Подключенные рабочие и личные приложения .

Дополнительные сведения о том, как приложение DPC управляет несколькими пользователями, см. в разделе Аффилированные пользователи .