Serviço de câmera do Android

O Android Camera Service (ACS) compreende a pilha de câmeras usada em dispositivos automotivos, bem como em outros formatos, como smartphones, tablets e TVs. Para conferir a arquitetura geral da câmera, consulte Câmera. Esta página se concentra em tópicos específicos para dispositivos automotivos e no trabalho com a API Android Camera.

Ativar o Android Camera Service

Para ativar o Android Camera Service na plataforma automotiva, o makefile do produto precisa especificar ENABLE_CAMERA_SERVICE como true.

Características específicas da câmera automotiva

No contexto de dispositivos automotivos, o HAL da câmera precisa incluir duas características distintas específicas do formato automotivo:

Item Descrição
android.automotive.location Especifica o posicionamento das câmeras em relação à estrutura da carroceria do veículo.
android.automotive.lens.facing Indica a direção em que uma lente de câmera está voltada em relação à estrutura da carroceria do veículo e aos assentos dos passageiros.

Em situações em que as câmeras não se alinham precisamente com um local ou orientação de lente (indicada pela presença de *_OTHER nas android.automotive.location ou android.automotive.lens.facing características) ou quando várias câmeras compartilham o mesmo local e direção, o HAL da câmera precisa fornecer características adicionais para permitir que os apps determinem com precisão o local da câmera. Essas características incluem:

Conceder acesso ao usuário do sistema headless

Alguns apps do sistema e próprios (1P) podem acessar a câmera como o usuário do sistema headless, também conhecido como usuário 0. Isso ajuda a verificar se apps essenciais para a segurança, como a câmera traseira, podem continuar a transmissão da câmera sem interrupção, independentemente da troca de usuário em primeiro plano. Somente apps assinados pela plataforma e que têm a nova permissão android.permission.CAMERA_HEADLESS_SYSTEM_USER podem acessar a câmera como usuário 0.

Para apps que acessam câmeras como usuário 0, os dados da câmera PRECISAM ser consumidos localmente e NÃO PODEM ser transmitidos para fora do dispositivo, incluindo dados derivados dos dados da câmera. Esses apps exigem que a permissão android.permission.CAMERA seja pré-concedida e precisam aderir à política de permissão pré-concedida descrita em Design para dirigir para requisitos Google integrado.

Configurar uma lista de permissões de privacidade da câmera

Os fabricantes de equipamentos originais (OEMs, na sigla em inglês) agora podem configurar apps de câmera específicos para serem incluídos em uma lista de permissões que concede acesso à câmera, independentemente do status da chave de privacidade da câmera. Esse recurso permite que os usuários desativem o acesso à câmera para apps de entretenimento, como redes sociais e videoconferências, ao mesmo tempo em que permitem o acesso à câmera para determinados apps na lista de permissões.

Somente apps do sistema e com privilégios que receberam a permissão android.permission.CAMERA_PRIVACY_ALLOWLIST podem usar esse recurso. Os parceiros dos Serviços Automotivos do Google (GAS) precisam enviar os apps na lista de permissões para análise e obedecer à política de lista de permissões de privacidade. Para saber mais, consulte Android para carros.

Adicionar um app à lista de permissões

No diretório etc/sysconfig:

  1. Adicione o nome do pacote do app em um arquivo XML de configuração do 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. Adicione o URL da divulgação da Política de Privacidade do app ao AndroidManifest.xml. O nome do meta-data precisa ser privacy_policy.

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

Por padrão, a chave de privacidade da câmera para apps na lista de permissões ou apps obrigatórios fica oculta na interface Configurações de privacidade. No entanto, os OEMs podem substituir esse comportamento definindo a seguinte flag como true. Isso permite que os OEMs personalizem a visibilidade da chave de privacidade da câmera para os apps obrigatórios com base nas preferências deles.

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

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

Receber acesso antecipado à câmera

Apps específicos sensíveis ao tempo e orientados à segurança podem acessar a câmera antes que o processo de inicialização do Android seja concluído. No entanto, esse acesso é concedido exclusivamente a clientes privilegiados com o UID AID_AUTOMOTIVE_EVS. Para saber mais sobre como atribuir um UID específico a um app do sistema, consulte Controle de acesso discricionário (DAC). Esse acesso antecipado à câmera é limitado a câmeras do sistema posicionadas na parte externa da carroceria do veículo.