O que é o 'GSI' nos aparelhos Android?
Uma imagem genérica do sistema (GSI) é uma imagem do sistema com configurações ajustadas para dispositivos Android. It's considerado uma implementação pura do Android com código não modificado do Android Open Source Project (AOSP) que qualquer dispositivo Android rodando Android 8.1 ou superior pode rodar com sucesso.
GSIs são usados para rodar testes VTS e CTS-on-GSI. A imagem do sistema de um dispositivo Android é substituída por um GSI e, em seguida, testada com o Vendor Test Suite (VTS) e o Compatibility Test Suite (CTS) para garantir que o dispositivo implemente as interfaces de fornecedor corretamente com a versão mais recente do Android.
Para começar a usar GSIs, revise as seções a seguir para obter detalhes sobre as configurações do GSI (e desvios permitidos), tipos (Android GSI e Legacy GSI) e binários do fornecedor e dependências do VNDK. Quando você'estiver pronto para usar um GSI, baixe e construa o GSI para o alvo do seu dispositivo e, em seguida, flasheie o GSI para um dispositivo Android.
configuração e variações do GSI
O projeto atual do Android GSI tem a seguinte configuração:
>ul>Treble. O GSI inclui suporte completo para as alterações arquitetônicas baseadas em HIDL (também conhecidas como Treble) introduzidas no Android 8.0, incluindo suporte para interfaces HIDL. Você pode usar o GSI em qualquer dispositivo Android que use interfaces de fornecedores HIDL. (Para mais detalhes, veja Recursos de arquitetura.)li>Verify Boot. O GSI doesn't inclui uma solução de verificação de boot (vboot 1.0, AVB, etc.). Para flashear o GSI para um dispositivo Android, o dispositivo deve ter um método para desabilitar a verificação de boot.Build variant. O GSI sempre usa uma variante de compilação do userdebug para habilitar a execução do VTS e do CTS. Depois de substituir a imagem do sistema com o GSI, você pode root o dispositivo e então testar com uma imagem do fornecedor user-build e uma imagem do sistema userdebug-build.File system and image format. The GSI uses an ext4 file system with a sparse image format.The current Android GSI project includes the following major variances:
- Version. Support for Android 8.0, Android 8.1, and Android 9.
- CPU architecture. Support for different CPU instructions (ARM, x86, etc.) and CPU bitness (32 bit or 64 bit).
- Partition layout. Can use system-as-root or non-system-as-root partition layout.
- Support for binder interface bitness.
GSI types
The GSI used for compliance testing is determined by the Android version that the device launches with. Android 9 supports the following GSIs.
GSI name
Description
Product name
Android GSI
For devices launching with Android 9. This GSI can run only on devices running Android 9 and higher.
aosp_
Legacy GSI
For devices launching with Android 8.0 or Android 8.1. Este GSI pode rodar somente em dispositivos rodando Android 8.x.
aosp_(b)
Todos os GSIs são construídos a partir da base de código do Android 9, e cada arquitetura cpu tem um binário GSI correspondente (veja a lista de alvos de construção no Building GSIs).
Android 9 GSIs muda
Dispositivos que lançam com o Android 9 devem usar o Android 9 GSIs para testes de conformidade, que incluem as seguintes grandes mudanças em relação aos GSIs anteriores:
>ul>>li>Merges GSI e emulador. Os GSIs são construídos a partir das imagens de sistema dos produtos emuladores, por exemplo, aosp_arm64 e aosp_x86.System-as-root. Nas versões anteriores do Android, os dispositivos que não suportavam't suportavam atualizações A/B podiam montar a imagem do sistema sob o diretório /system. No Android 9, a raiz da imagem do sistema é montada como a raiz do dispositivo.64-bit binder interface. No Android 8.x, os GSIs de 32 bits usaram a interface de 32 bits do binder. O Android 9 doesn't suporta a interface de 32-bit binder, portanto tanto os GSIs de 32-bit como os GSIs de 64-bit utilizam a interface de 64-bit binder.VNDK enforcement. No Android 8.1, o VNDK era opcional. No Android 9, o VNDK é obrigatório, o que significa que oBOARD_VNDK_RUNTIME_DISABLE não deve ser definido (BOARD_VNDK_RUNTIME_DISABLE := # não deve ser definido).Compatível propriedade do sistema. O Android 9 permite a verificação de acesso para uma propriedade compatível do sistema (PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true).