Служба камеры Android

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

Включите службу камеры Android.

Для включения службы камеры Android на автомобильной платформе в файле makefile продукта необходимо указать значение ENABLE_CAMERA_SERVICE равным true .

Характеристики камер, специфичные для автомобилей

В контексте автомобильных устройств HAL-модуль камеры должен включать две отличительные характеристики, специфичные для автомобильного форм-фактора:

Элемент Описание
android.automotive.location Определяет расположение камер относительно рамы кузова автомобиля.
android.automotive.lens.facing Указывает направление, в котором направлен объектив камеры относительно кузова автомобиля и пассажирских сидений.

В ситуациях, когда камеры не точно совпадают с определенным местоположением или ориентацией объектива (на что указывает наличие *_OTHER в характеристиках android.automotive.location или android.automotive.lens.facing ), или когда несколько камер находятся в одном и том же месте и направлены в одном и том же направлении, HAL камеры должен предоставлять дополнительные характеристики, позволяющие приложениям точно определять местоположение камеры. Эти характеристики включают в себя:

Предоставить доступ пользователю безголовой системы.

Некоторые системные и собственные (1P) приложения могут получать доступ к камере от имени пользователя системы без графического интерфейса, также известного как Пользователь 0. Это помогает убедиться в том, что критически важные для безопасности приложения, такие как камера заднего вида, могут продолжать потоковую передачу с камеры без прерывания, независимо от переключения пользователя на передний план. Только приложения, имеющие цифровую подпись платформы и обладающие новым разрешением android.permission.CAMERA_HEADLESS_SYSTEM_USER , могут получать доступ к камере от имени Пользователя 0.

Для приложений, обращающихся к камерам от имени пользователя 0, данные с камеры ДОЛЖНЫ использоваться локально и НЕ ДОЛЖНЫ передаваться за пределы устройства, включая любые данные, полученные с камеры. Для таких приложений требуется предварительное предоставление разрешения android.permission.CAMERA , и они должны соответствовать политике предварительного предоставления разрешений, изложенной в разделе «Дизайн для вождения» для встроенных требований Google.

Настройте список разрешенных объектов для обеспечения конфиденциальности камеры.

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

Использовать эту функцию могут только системные и привилегированные приложения, которым предоставлено разрешение android.permission.CAMERA_PRIVACY_ALLOWLIST . Партнеры Google Automotive Services (GAS) должны отправить свои приложения в список разрешенных для проверки и соблюдать политику списка разрешенных приложений в отношении конфиденциальности. Для получения дополнительной информации см. Android для автомобилей .

Добавить приложение в список разрешенных приложений

В каталоге etc/sysconfig :

  1. Добавьте имя пакета приложения в XML-файл конфигурации системы:

    <!-- In an xml file under etc/sysconfig ->
    
    <!--
    Allowlisted packages for the camera privacy toggle. Users can't turn on
    privacy for these packages as OEM requires camera access for these packages
    to preserve user safety.
    -->
    
    <config>
        <camera-privacy-allowlisted-app package="package_name" />
    </config>
    
  2. Добавьте URL-адрес политики конфиденциальности приложения в файл AndroidManifest.xml . Название meta-data должно быть privacy_policy .

    <meta-data android:name="privacy_policy" android:value= privacy policy URL/>
    

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

<!-- Whether to show the toggle to turn on the camera privacy for required apps -->

<bool name="config_show_camera_required_apps_toggle">false</bool>

Получите ранний доступ к камерам.

Некоторые приложения, критически важные по времени и ориентированные на безопасность, могут получить доступ к камере до завершения процесса загрузки Android. Однако этот доступ предоставляется исключительно привилегированным клиентам с UID AID_AUTOMOTIVE_EVS . Подробнее о назначении определенного UID системному приложению см. в разделе «Управление доступом по усмотрению (DAC)» . Этот ранний доступ к камере ограничен системными камерами, расположенными снаружи кузова автомобиля.