Google s'est engagé à promouvoir l'équité raciale pour les communautés noires. Regarde comment.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Types HAL

Dans Android 8.0 et supérieur, les couches de niveau inférieur sont réécrites pour adopter une nouvelle architecture plus modulaire. Les appareils exécutant Android 8.0 et versions ultérieures doivent prendre en charge les HAL écrits en HIDL, à quelques exceptions près répertoriées ci-dessous. Ces HAL peuvent être liés ou passthrough. Dans Android R, les HAL écrits en AIDL sont également pris en charge. Tous les HAL AIDL sont liés.

  • HAL liés. HAL exprimés en langage de définition d'interface HAL (HIDL) ou langage de définition d'interface Android (AIDL). Ces HAL remplacent les HAL conventionnels et hérités utilisés dans les versions antérieures d'Android. Dans un HAL Binderized, le framework Android et les HAL communiquent entre eux à l'aide d'appels IPC (Binder Inter-Process Communication). Tous les appareils lancés avec Android 8.0 ou version ultérieure doivent uniquement prendre en charge les HAL en liasse.
  • HAL de relais. Un HAL conventionnel ou hérité enveloppé de HIDL. Ces HAL enveloppent les HAL existants et peuvent servir le HAL en modes liant et de même processus (passthrough). Les appareils mettant à niveau vers Android 8.0 peuvent utiliser des HAL relais.

Exigences du mode HAL

Dispositif Traverser Lié
Lancer avec Android 8.0 Les HAL répertoriées dans les HAL Passthrough doivent être des HAL Passthrough. Tous les autres HAL sont regroupés (y compris les HAL qui sont des extensions de fournisseur).
Passer à Android 8.0 Les HAL répertoriées dans les HAL Passthrough doivent être des HAL Passthrough. Les HAL répertoriées dans les HAL liées doivent être liées.
Toutes les autres HAL fournies par l'image du fournisseur peuvent être en mode passthrough OU lié. Dans un appareil entièrement compatible Treble, tous ces éléments doivent être liés.

HAL liés

Android nécessite que les HALS suivants soient regroupés sur tous les appareils Android, qu'il s'agisse d'appareils de lancement ou d'appareils de mise à niveau:

  • android.hardware.biometrics.fingerprint@2.1 . Remplace fingerprintd qui n'est plus sous Android 8.0.
  • android.hardware.configstore@1.0 . Nouveau dans Android 8.0.
  • android.hardware.dumpstate@1.0 . L'interface d'origine fournie par cette HAL n'a pas pu être calée et a été modifiée. Pour cette raison, dumpstate_board doit être dumpstate_board sur un périphérique donné (il s'agit d'un HAL facultatif).
  • android.hardware.graphics.allocator@2.0 . Requis pour être regroupés dans Android 8.0 afin que les descripteurs de fichiers n'aient pas à être partagés entre les processus approuvés et non approuvés.
  • android.hardware.radio@1.0 . Remplace l'interface fournie par rild qui vit dans son propre processus.
  • android.hardware.usb@1.0 . Nouveau dans Android 8.0.
  • android.hardware.wifi@1.0 . Nouveau dans Android 8.0, remplace l'ancienne bibliothèque Wi-Fi HAL chargée dans le system_server .
  • android.hardware.wifi.supplicant@1.0 . Une interface HIDL sur le processus wpa_supplicant existant.

REMARQUE : Android fournit les interfaces HIDL suivantes qui seront toujours en mode binderized: android.frameworks.* , android.system.* Et android.hidl.* (Sauf pour android.hidl.memory@1.0 comme décrit ci-dessous).

HAL de relais

Android nécessite que les HAL suivantes soient en mode relais sur tous les appareils Android, qu'il s'agisse d'appareils de lancement ou d'appareils de mise à niveau:

  • android.hardware.graphics.mapper@1.0 . Mappe la mémoire dans le processus dans lequel elle vit.
  • android.hardware.renderscript@1.0 . Passe les éléments dans le même processus (équivalent à openGL ).

Tous les HAL non répertoriés ci-dessus doivent être regroupés pour les appareils de lancement.

HAL de même processus

Les HAL de même processus (SP-HAL) s'ouvrent toujours dans le même processus dans lequel ils sont utilisés. Ils comprennent tous les HAL non exprimés en HIDL ainsi que certains qui ne sont pas liés. L'adhésion à l'ensemble SP-HAL est contrôlée uniquement par Google, sans exception.

Les SP-HAL comprennent les éléments suivants:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (fourni par le système Android, toujours passthrough)
  • android.hardware.graphics.mapper@1.0 .
  • android.hardware.renderscript@1.0

HAL conventionnels et hérités

Les HAL conventionnels (obsolètes dans Android 8.0) sont des interfaces qui se conforment à une interface binaire d'application nommée et versionnée (ABI) spécifique. La majeure partie des interfaces système Android ( caméra , audio , capteurs , etc.) se présente sous la forme de HAL conventionnels, qui sont définis sous hardware / libhardware / include / hardware .

Les HAL hérités (également obsolètes dans Android 8.0) sont des interfaces antérieures aux HAL classiques. Quelques sous-systèmes importants (Wi-Fi, couche d'interface radio et Bluetooth) sont des HAL hérités. Bien qu'il n'y ait pas de manière uniforme ou standardisée de décrire un HAL hérité, tout ce qui est antérieur à Android 8.0 qui n'est pas un HAL conventionnel est un HAL hérité. Des parties de certaines HAL héritées sont contenues dans libhardware_legacy , tandis que d'autres parties sont intercalées dans la base de code.