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

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

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

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

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

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

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

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

API Цель
CarDevicePolicyManager.createUser()

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

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

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

CarDevicePolicyManager.RemoveUser()

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

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

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

DevicePolicyManager.lockNow()

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

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

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

  • Фон , операция продолжается.
  • Передний план и автомобиль ПРИпаркован или, ХОЛОСТОЙ ход или ДВИЖЕНИЕ , он продолжается, если пользователь находится на переднем плане (независимо от состояния вождения), или игнорируется в противном случае. lockNow() не ограничен состоянием отвлечения UX.
DevicePolicyManager.resetPassword()

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

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

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

DevicePolicyManager.wipeData()

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

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

Независимо от состояния привода ( ПАРКОВКА , ХОЛОСТОЙ ДВИЖЕНИЕ или ДВИЖЕНИЕ ), операция продолжается. Система отправляет уведомление, информирующее водителя о необходимости восстановления заводских настроек.

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

Например:

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

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

Автомобиль ПРИпаркован

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

Водитель выбирает сброс

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

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

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

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

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

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

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

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

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

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

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

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

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