Objeto de interface do fornecedor

Este documento descreve o design do objeto de interface do fornecedor (objeto VINTF), que agrega informações relevantes sobre um dispositivo e disponibiliza essas informações por meio de uma API que pode ser consultada.

Projeto de objetos VINTF

Um objeto VINTF reúne algumas das informações necessárias diretamente do dispositivo. Outros aspectos, como os manifestos, são descritos estaticamente em XML.

Figura 1. Manifestos, matrizes de compatibilidade e informações que podem ser coletadas em tempo de execução

O design de objetos VINTF fornece o seguinte para componentes de dispositivo e estrutura:

Para o dispositivo Para o quadro
  • Define um esquema para o componente estático (o arquivo de manifesto do dispositivo ).
  • Adiciona suporte de tempo de compilação para definir o arquivo de manifesto do dispositivo para um determinado dispositivo.
  • Define a API que pode ser consultada em tempo de execução que recupera o arquivo de manifesto do dispositivo (junto com outras informações que podem ser coletadas em tempo de execução) e os empacota no resultado da consulta.

O objeto VINTF deve ser confiável e fornecer as mesmas informações completas, independentemente de quando o objeto é solicitado (consulte Advertências ).

Manifestos e matrizes

A partir do Android 8.0, uma API de tempo de execução consulta o que está no dispositivo e envia essas informações para o servidor de atualização Over-the-Air (OTA) e outras partes interessadas (como CTS DeviceInfo ). Algumas informações são recuperadas em tempo de execução e outras são definidas estaticamente.

  • O manifesto do dispositivo descreve o componente estático do que o dispositivo pode fornecer à estrutura.
  • A matriz de compatibilidade da estrutura descreve o que a estrutura do Android espera de um determinado dispositivo. A matriz é uma entidade estática cuja composição é determinada manualmente durante o desenvolvimento da próxima versão do framework Android.
  • O manifesto da estrutura descreve os serviços de alto nível que a estrutura pode fornecer ao dispositivo.
  • A matriz de compatibilidade do dispositivo descreve os serviços que a imagem do fornecedor exige da estrutura. Sua composição é determinada manualmente durante o desenvolvimento do dispositivo.

Esses dois pares de manifestos e matrizes devem ser reconciliados no momento da OTA para garantir que um dispositivo possa obter atualizações de estrutura compatíveis com os recursos do dispositivo. Em geral, um manifesto descreve o que é fornecido e uma matriz de compatibilidade descreve o que é necessário.

Esta seção inclui os seguintes detalhes sobre manifestos e matrizes:

  • Manifests define o manifesto do dispositivo, o manifesto da estrutura e o esquema do arquivo de manifesto.
  • Compatibility Matrixes define o esquema para a matriz de compatibilidade.
  • O ciclo de vida do FCM detalha como HIDL HALs são preteridos e removidos e como os arquivos FCM são modificados para refletir o status da versão HAL.
  • O DM Development descreve como os fornecedores podem definir e declarar a versão do FCM de destino no manifesto do dispositivo para novos dispositivos ou implementar novas versões de HAL e incrementar a versão do FCM de destino ao atualizar a imagem do fornecedor para dispositivos antigos.
  • As regras de correspondência definem as regras para uma correspondência bem-sucedida entre uma matriz de compatibilidade e um manifesto.