Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Descripción general de la capa de abstracción de hardware (HAL)

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En Android 8.0 y versiones posteriores, las capas de nivel inferior se reescriben para adoptar una nueva arquitectura más modular. Los dispositivos que ejecutan Android 8.0 y superior deben admitir HAL escritos en HIDL, con algunas excepciones que se enumeran a continuación. Estos HAL se pueden enlazar o transferir. En Android 11, también se admiten las HAL escritas en AIDL. Todos los HAL de AIDL están encuadernados.

  • HAL encuadernados . HAL expresados ​​en lenguaje de definición de interfaz HAL (HIDL) o lenguaje de definición de interfaz Android (AIDL). Estas HAL reemplazan tanto las HAL convencionales como las heredadas que se usaban en versiones anteriores de Android. En una HAL enlazada, el marco de trabajo de Android y las HAL se comunican entre sí mediante llamadas de comunicación entre procesos (IPC) del enlazador. Todos los dispositivos que se inicien con Android 8.0 o posterior deben admitir solo HAL encuadernados.

  • HAL de transferencia . Una HAL heredada o convencional envuelta en HIDL Estas HAL envuelven las HAL existentes y pueden servir a la HAL en modos enlazados y del mismo proceso (transferencia). Los dispositivos que se actualizan a Android 8.0 pueden usar HAL de transferencia.

Requisitos del modo HAL

Dispositivo Pasar por encuadernado
Lanzamiento con Android 8.0 Las HAL enumeradas en Passthrough HAL deben ser passthrough. Todas las demás HAL están enlazadas (incluidas las HAL que son extensiones de proveedores).
Actualizar a Android 8.0 Las HAL enumeradas en Passthrough HAL deben ser passthrough. Los HAL enumerados en HAL encuadernados deben estar encuadernados.
Todas las demás HAL proporcionadas por la imagen del proveedor pueden estar en modo passthrough O binderized. En un dispositivo totalmente compatible con Treble, todos estos deben estar encuadernados.

HAL encuadernados

Android requiere que las siguientes HALS se vinculen en todos los dispositivos Android, independientemente de si son dispositivos de lanzamiento o dispositivos de actualización:

  • android.hardware.biometrics.fingerprint@2.1 . Reemplaza `fingerprintd que ya no está en Android 8.0.
  • android.hardware.configstore@1.0 . Nuevo en Android 8.0.
  • android.hardware.dumpstate@1.0 . La interfaz original proporcionada por este HAL no se pudo corregir y se cambió. Debido a esto, dumpstate_board debe volver a implementarse en un dispositivo determinado (esta es una HAL opcional).
  • android.hardware.graphics.allocator@2.0 . Se requiere vincular en Android 8.0 para que los descriptores de archivos no tengan que compartirse entre procesos confiables y no confiables.
  • android.hardware.radio@1.0 . Reemplaza la interfaz provista por rild que vive en su propio proceso.
  • android.hardware.usb@1.0 . Nuevo en Android 8.0.
  • android.hardware.wifi@1.0 . Nuevo en Android 8.0, reemplaza la biblioteca HAL de Wi-Fi heredada que se cargó en system_server
  • android.hardware.wifi.supplicant@1.0 . Una interfaz HIDL sobre el proceso wpa_supplicant existente.

HAL de transferencia

Android requiere que las siguientes HAL estén en modo de transferencia en todos los dispositivos Android, independientemente de si son dispositivos de lanzamiento o dispositivos de actualización:

  • android.hardware.graphics.mapper@1.0 . Mapea la memoria en el proceso en el que vive.
  • android.hardware.renderscript@1.0 . Pasa elementos en el mismo proceso (equivalente a openGL ).

Todos los HAL que no se enumeran anteriormente deben estar encuadernados para los dispositivos de lanzamiento.

HAL del mismo proceso

Las HAL del mismo proceso (SP-HAL) siempre se abren en el mismo proceso en el que se utilizan. Incluyen todos los HAL no expresados ​​en HIDL, así como algunos que no están enlazados. La membresía en el conjunto SP-HAL está controlada únicamente por Google, sin excepciones.

Los SP-HAL incluyen lo siguiente:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (proporcionado por el sistema Android, siempre de paso)
  • android.hardware.graphics.mapper@1.0</code>
  • android.hardware.renderscript@1.0