HALs de HIDL garantem que o sistema principal do Android (também conhecido como system.img ou framework) seja compatível com versões anteriores. Enquanto os testes do Conjunto de teste de fornecedor (VTS, na sigla em inglês) garantem que as HALs funcionem conforme o esperado (por exemplo, os testes HAL 1.1 são executados em todas as implementações 1.2), o teste de framework é necessário para garantir que, quando uma HAL com suporte (1.0, 1.1 ou 1.2) for fornecida, o framework funcione corretamente com essa HAL.
Para mais detalhes sobre a linguagem de definição da interface HAL (HIDL), consulte HIDL, Controle de versões de HIDL e Descontinuação de HIDL HAL.
Sobre os upgrades do HAL
Há dois tipos de upgrades da HAL: principal e secundária. A maioria dos sistemas inclui apenas uma implementação do HAL, mas há suporte para várias implementações. Exemplo:
android.hardware.teleport@1.0 # initial interface android.hardware.teleport@1.1 # minor version upgrade android.hardware.teleport@1.2 # another minor version upgrade ... android.hardware.teleport@2.0 # major version upgrade ...
A partição do sistema normalmente inclui um daemon de framework (como teleportd
) que gerencia a comunicação com um grupo específico de implementações de HAL. Como alternativa, os sistemas podem
incluir uma biblioteca do sistema (como
android.hardware.configstore-utils
) que implementa o comportamento
conveniente do cliente. No exemplo acima, teleportd
precisa funcionar independentemente da versão da HAL instalada no dispositivo.