Serviço de câmera do Android

O Serviço de câmera do Android (ACS, na sigla em inglês) inclui 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 Camera do Android.

Ativar o serviço de câmera do Android

Para ativar o serviço de câmera do Android 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, a 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á apontada 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 específica (indicado pela presença de *_OTHER nas características android.automotive.location ou android.automotive.lens.facing) ou quando várias câmeras compartilham o mesmo local e direção, a HAL da câmera precisa fornecer características adicionais para permitir que os apps determinem com precisão a localização 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 críticos para a segurança, como a câmera traseira, podem continuar o streaming de vídeo sem interrupção, independente da troca de usuários 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 deles. Esses apps exigem que a permissão android.permission.CAMERA seja concedida previamente e precisam obedecer à política de permissão de pré-concessão descrita em Design para direção para requisitos integrados do Google.

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

Agora, os fabricantes de equipamentos originais (OEMs) podem configurar apps de câmera específicos para serem incluídos em uma lista de permissões que concede acesso à câmera, independente do status da chave de privacidade da câmera. Com esse recurso, os usuários podem desativar o acesso à câmera para apps de entretenimento, como redes sociais e videoconferências, e permitir o acesso para determinados apps na lista de permissões.

Somente apps do sistema e privilegiados que receberam a permissão android.permission.CAMERA_PRIVACY_ALLOWLIST podem usar esse recurso. Os parceiros do Google Automotive Services (GAS) precisam enviar os apps para análise na lista de permissões 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 declaração de Política de Privacidade do app a 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 opção de ativar/desativar a privacidade da câmera para apps na lista de permissões ou obrigatórios fica oculta na interface das 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 necessá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>

Ter acesso antecipado à câmera

Alguns apps específicos que precisam de acesso imediato e focados em segurança podem acessar a câmera antes da conclusão do processo de inicialização do Android. 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 às câmeras do sistema posicionadas na parte externa da carroceria do veículo.