Os 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. Embora os testes do Vendor Test Suite (VTS) garantam que as HALs funcionem como esperado (por exemplo, os testes da HAL 1.1 são executados em todas as implementações 1.2), é necessário fazer testes de framework para garantir que, quando uma HAL compatível (1.0, 1.1 ou 1.2) é fornecida, o framework funcione corretamente com essa HAL.
Para detalhes sobre a linguagem de definição de interface HAL (HIDL), consulte HIDL, Controle de versões da HIDL e Suspensão de uso da HIDL HAL.
Sobre upgrades da HAL
Há dois tipos de upgrades de HAL: principal e secundário. A maioria dos sistemas inclui apenas uma implementação de HAL, mas várias implementações são aceitas. 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 um comportamento conveniente do cliente. No exemplo acima, teleportd
precisa funcionar, não importa qual versão da HAL esteja instalada no dispositivo.