Servicio de cámara de Android

El servicio de cámara de Android (ACS) comprende la pila de la cámara que se usa en dispositivos automotrices, así como en otros factores de forma, como teléfonos celulares, tablets y TVs. Para ver la arquitectura general de la cámara, consulta Cámara. En esta página, se abordan temas específicos de los dispositivos para automóviles y el trabajo con la API de Android Camera.

Habilita el servicio de cámara de Android

Para habilitar el servicio de cámara de Android en la plataforma automotriz, el archivo makefile del producto debe especificar ENABLE_CAMERA_SERVICE como true.

Características de la cámara específicas para automóviles

En el contexto de los dispositivos para automóviles, la HAL de la cámara debe incluir dos características distintivas específicas del factor de forma automotriz:

Artículo Descripción
android.automotive.location Especifica la posición de las cámaras en relación con el marco de la carrocería del vehículo.
android.automotive.lens.facing Indica la dirección hacia la que apunta el objetivo de la cámara en relación con la estructura de la carrocería del vehículo y los asientos de los pasajeros.

En situaciones en las que las cámaras no se alinean con precisión con una ubicación o una orientación de lente específicas (indicado por la presencia de *_OTHER en las características de android.automotive.location o android.automotive.lens.facing), o cuando varias cámaras comparten la misma ubicación y dirección, el HAL de la cámara debe proporcionar características adicionales para permitir que las apps determinen con precisión la ubicación de la cámara. Estas características incluyen lo siguiente:

Otorga acceso al usuario del sistema sin interfaz gráfica

Ciertas apps del sistema y propias (1P) pueden acceder a la cámara como el usuario del sistema sin interfaz gráfica, también conocido como usuario 0. Esto ayuda a verificar que las apps críticas para la seguridad, como la cámara de visión trasera, puedan seguir transmitiendo video de la cámara sin interrupciones, independientemente del cambio de usuario en primer plano. Solo las apps que están firmadas por la plataforma y tienen el nuevo permiso android.permission.CAMERA_HEADLESS_SYSTEM_USER pueden acceder a la cámara como usuario 0.

En el caso de las apps que acceden a las cámaras como usuario 0, los datos de la cámara SE DEBEN consumir de forma local y NO se deben transmitir fuera del dispositivo, incluidos los datos derivados de los datos de la cámara. Estas apps requieren que el permiso android.permission.CAMERA se otorgue previamente y deben cumplir con la política de permisos previos que se describe en Diseño para la conducción para los requisitos integrados de Google.

Cómo configurar una lista de elementos permitidos de privacidad de la cámara

Ahora, los fabricantes de equipos originales (OEM) pueden configurar apps de cámara específicas para que se incluyan en una lista de entidades permitidas que otorga acceso a la cámara independientemente del estado del botón de activación de privacidad de la cámara. Esta función permite a los usuarios inhabilitar el acceso a la cámara para las apps de entretenimiento, como las de redes sociales y videoconferencias, y, al mismo tiempo, permitir el acceso a la cámara para ciertas apps de la lista de entidades permitidas.

Solo las apps del sistema y con privilegios que tengan el permiso android.permission.CAMERA_PRIVACY_ALLOWLIST pueden usar esta función. Los socios de Google Automotive Services (GAS) deben enviar sus apps a la lista de entidades permitidas para su revisión y satisfacer la política de la lista de entidades permitidas de privacidad. Para obtener más información, consulta Android para vehículos.

Agregar una app a la lista de aplicaciones permitidas

En el directorio etc/sysconfig, haz lo siguiente:

  1. Agrega el nombre del paquete de la app en un archivo XML de configuración del sistema:

    <!-- 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. Agrega la URL de la divulgación de la política de privacidad de la app a AndroidManifest.xml. El nombre del meta-data debe ser privacy_policy.

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

De forma predeterminada, el botón de activación de privacidad de la cámara para las apps en la lista de entidades permitidas o las apps obligatorias está oculto en la IU de Configuración de privacidad. Sin embargo, los OEM pueden anular este comportamiento configurando la siguiente marca en true. Esto permite que los OEM personalicen la visibilidad del botón de activación de privacidad de la cámara para las apps requeridas según sus preferencias.

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

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

Obtén acceso anticipado a la cámara

Las apps específicas que son sensibles al tiempo y están orientadas a la seguridad pueden acceder a la cámara antes de que finalice el proceso de arranque de Android. Sin embargo, este acceso se otorga exclusivamente a los clientes privilegiados con el UID AID_AUTOMOTIVE_EVS. Para obtener más información sobre cómo asignar un UID específico a una app del sistema, consulta Control de acceso discrecional (DAC). Este acceso anticipado a la cámara se limita a las cámaras del sistema ubicadas en el exterior de la carrocería del vehículo.