Requisitos do sistema convidado (imagem da VM)

Os requisitos nesta página se aplicam ao sistema convidado.

Memória

O sistema tem os seguintes requisitos mínimos de memória:

  • 1 GB de memória para um sistema com pacotes de serviços mínimos
  • 2 GB de memória por VM (recomendado)

CPU

A CPU tem os seguintes requisitos:

  • Suporte para x86_64 ou arm64-v8a ou versões mais recentes com extensões de virtualização
  • Mínimo de 2,3 DMIPS/MHz, sendo recomendado 7 DMIPS/MHz

Kernel

O kernel tem os seguintes requisitos:

  • O sistema PRECISA usar um kernel GKI.
  • O SDV é compatível com as versões 6.6 e 6.12 do GKI.

Armazenamento

O sistema tem os seguintes requisitos de armazenamento:

  • O sistema precisa oferecer pelo menos 3 GB de capacidade de armazenamento de arquivos.
  • O dispositivo PRECISA criptografar os dados particulares do app:
    • A criptografia de armazenamento de dados PRECISA estar ativada por padrão.
    • O dispositivo PRECISA implementar esse requisito de criptografia de armazenamento de dados com um dos seguintes métodos de criptografia:
      • Criptografia baseada em arquivos (FBE) (documentos da FBE) e criptografia de metadados
      • Criptografia no nível de bloco por usuário
  • O dispositivo PRECISA ser compatível com pelo menos Compatibilidade com o modelo de segurança do Android 14: 9.12 Exclusão de dados.

Gerenciamento de energia

O sistema tem os seguintes requisitos de gerenciamento de energia:

  • É ALTAMENTE RECOMENDADO que o sistema tenha suporte para suspensão para RAM e suspensão para disco.
  • O sistema PRECISA reagir aos sinais de ativação do sistema host.

Segurança

O sistema tem os seguintes requisitos de segurança:

Interface binária

O sistema tem os seguintes requisitos de interface binária:

  • Ser compatível com uma ou mais ABIs do Android NDK definidas.
  • Informe um subconjunto das seguintes ABIs e NÃO informe nenhuma ABI que não esteja na lista.
  • Disponibilize as seguintes bibliotecas, que fornecem APIs nativas, para apps que incluem código integrado:
    • libc (biblioteca C)
    • libdl (vinculador dinâmico)
    • libicui18n.so
    • libicuuc.so
    • liblog (geração de registros do Android)
    • libm (biblioteca de matemática)
    • libstdc++ (compatibilidade mínima com C++)
    • libz (compactação zlib)

Rede

O sistema:

  • PRECISA usar Ethernet para oferecer suporte a TCP e UDP.
  • Precisa oferecer suporte à comunicação de vsock do visitante com o host.
  • DEVE oferecer suporte à comunicação entre hóspedes vsock.

UID e isolamento de processos

As implementações de dispositivos PRECISAM oferecer suporte a:

  • Modelo de sandbox de apps Android, em que cada app é executado como um UID exclusivo no estilo Unix e em um processo separado. Consulte o CDD do Android correspondente.
  • Execução de vários apps como o mesmo ID de usuário do Linux, desde que os apps sejam assinados e construídos corretamente, conforme definido na referência de segurança e permissões. Consulte o respectivo CDD do Android.
  • Modelo de permissões de acesso a arquivos do Android, conforme definido na referência de segurança e permissões. Consulte o CDD do Android correspondente.

Software atualizável

Sistema host (hipervisor)

Os requisitos nas seções a seguir se aplicam ao sistema host e ao ambiente de hipervisor.

Conectividade

O sistema host tem os seguintes requisitos de conectividade:

  • O dispositivo PRECISA ser compatível com pelo menos uma conexão Ethernet.
  • O sistema PRECISA fornecer um dispositivo Ethernet virtual ao convidado ou mapear um dispositivo existente para ele.

Virtualização

O sistema host tem os seguintes requisitos de virtualização:

  • É ALTAMENTE RECOMENDADO usar o VirtIO para implementar dispositivos virtuais. O sistema PRECISA oferecer suporte a estes dispositivos VirtIO:
    • virtio-blk: para dispositivos de bloco virtual (armazenamento)
    • virtio-console: para console serial virtual
    • virtio-net: para interfaces de rede virtuais
    • virtio-pci: para descobrir dispositivos virtio em um barramento PCI virtual
    • virtio-rng: para um gerador de números aleatórios de hardware virtual
    • virtio-vsock: para comunicação entre host e convidado
  • O convidado e o organizador PRECISAM se comunicar com vsock.
  • O organizador PRECISA ativar a comunicação entre convidados usando vsock ou Ethernet.

Sincronização de tempo

O sistema host tem os seguintes requisitos de sincronização de tempo:

  • O sistema host precisa fornecer uma fonte de tempo estável e consistente para todas as VMs convidadas, o que ajuda na depuração e rastreabilidade.
  • Para mostrar o horário do organizador aos convidados, recomendamos usar virtio-rtc.

Software atualizável

  • O sistema host PRECISA ser atualizável over the air (OTA). O mecanismo de atualização PRECISA ser resistente a perda de energia.

Segurança

O sistema host tem os seguintes requisitos de segurança:

  • O sistema host PRECISA oferecer suporte à cadeia OpenDICE usando o perfil SDV para DICE, que é uma extensão do perfil Android para DICE.
  • O sistema host PRECISA fornecer isolamento seguro das chaves do KeyMint entre diferentes convidados.

Modos de energia

O sistema host tem os seguintes requisitos de modo de energia:

  • O sistema precisa oferecer suporte à suspensão para RAM.
  • O sistema host PRECISA iniciar a ativação após o modo de espera (RAM ou disco).

Inicialização e desligamento

O sistema host tem os seguintes requisitos de inicialização e desligamento:

  • O sistema host precisa ser projetado para tempos de inicialização rápidos e atender aos requisitos de usabilidade automotiva (por exemplo, disponibilidade da câmera traseira). Isso significa 100 ms ou menos para a inicialização do sistema host.
  • O host PRECISA ativar um encerramento simples das VMs convidadas em eventos de desligamento.

CPU

O dispositivo PRECISA declarar a ABI de 64 bits:

O dispositivo PRECISA ser compatível com extensões de virtualização.