Android 8.0 이상에서는 더 많은 모듈식 새 아키텍처를 채택하기 위해 하위 수준 레이어가 다시 작성됩니다. Android 8.0 이상을 실행하는 기기는 아래 나열된 몇 가지 예외를 제외하고 HIDL로 작성된 HAL을 지원해야 합니다. 이러한 HAL은 바인더화되거나 통과될 수 있습니다. Android 11에서는 AIDL로 작성된 HAL도 지원됩니다. 모든 AIDL HAL은 바인더화됩니다.
바인더화 HAL . HAL 인터페이스 정의 언어(HIDL) 또는 Android 인터페이스 정의 언어(AIDL)로 표현된 HAL입니다. 이러한 HAL은 이전 버전의 Android에서 사용된 기존 HAL과 레거시 HAL을 모두 대체합니다. 바인더화된 HAL에서 Android 프레임워크와 HAL은 바인더 IPC(프로세스 간 통신) 호출을 사용하여 서로 통신합니다. Android 8.0 이상으로 실행되는 모든 기기는 바인더화된 HAL만 지원해야 합니다.
패스스루 HAL . HIDL로 래핑된 일반 또는 레거시 HAL 이러한 HAL은 기존 HAL을 래핑하고 바인더화 및 동일 프로세스(통과) 모드에서 HAL을 제공할 수 있습니다. Android 8.0으로 업그레이드하는 기기는 패스스루 HAL을 사용할 수 있습니다.
HAL 모드 요구 사항
장치 | 지나가 다 | 결합제 |
---|---|---|
Android 8.0으로 실행 | 패스스루 HAL 에 나열된 HAL은 패스스루여야 합니다. | 다른 모든 HAL은 바인더화됩니다(공급업체 확장인 HAL 포함). |
안드로이드 8.0으로 업그레이드 | 패스스루 HAL 에 나열된 HAL은 패스스루여야 합니다. | 바인더화 HAL 에 나열된 HAL은 바인더화되어야 합니다. |
공급업체 이미지에서 제공하는 다른 모든 HAL은 패스스루 또는 바인더화 모드일 수 있습니다. 완전한 Treble 호환 장치에서는 이들 모두를 바인더화해야 합니다. |
바인더화된 HAL
Android에서는 실행 장치인지 업그레이드 장치인지에 관계없이 모든 Android 장치에서 다음 HALS를 바인더화해야 합니다.
-
android.hardware.biometrics.fingerprint@2.1
. 더 이상 Android 8.0에 없는fingerprintd
대체합니다. -
android.hardware.configstore@1.0
. 안드로이드 8.0의 새로운 기능. -
android.hardware.dumpstate@1.0
. 이 HAL에서 제공하는 원래 인터페이스는 shimmed할 수 없으며 변경되었습니다. 이 때문에dumpstate_board
지정된 기기에서 다시 구현해야 합니다(이는 선택적 HAL임). -
android.hardware.graphics.allocator@2.0
. 신뢰할 수 있는 프로세스와 신뢰할 수 없는 프로세스 간에 파일 설명자를 공유할 필요가 없도록 Android 8.0에서 바인더화해야 합니다. -
android.hardware.radio@1.0
. 자체 프로세스에 있는rild
에서 제공하는 인터페이스를 대체합니다. -
android.hardware.usb@1.0
. 안드로이드 8.0의 새로운 기능. -
android.hardware.wifi@1.0
. Android 8.0의 새로운 기능으로system_server
에 로드된 레거시 Wi-Fi HAL 라이브러리를 대체합니다. -
android.hardware.wifi.supplicant@1.0
. 기존wpa_supplicant
프로세스에 대한 HIDL 인터페이스.
통과 HAL
Android에서는 출시 기기인지 업그레이드 기기인지에 관계없이 모든 Android 기기에서 다음 HAL이 패스스루 모드에 있어야 합니다.
-
android.hardware.graphics.mapper@1.0
. 메모리가 상주하는 프로세스에 매핑합니다. -
android.hardware.renderscript@1.0
. 동일한 프로세스에서 항목을 전달합니다(openGL
과 동일).
위에 나열되지 않은 모든 HAL은 실행 기기용으로 바인더화되어야 합니다.
동일 프로세스 HAL
동일 프로세스 HAL(SP-HAL)은 항상 사용되는 동일한 프로세스에서 열립니다. 여기에는 HIDL로 표현되지 않은 모든 HAL과 바인더화되지 않은 일부 HAL이 포함됩니다. SP-HAL 집합의 멤버십은 예외 없이 Google에서만 제어합니다.
SP-HAL에는 다음이 포함됩니다.
-
openGL
-
Vulkan
-
android.hidl.memory@1.0
(Android 시스템에서 제공, 항상 통과) -
android.hardware.graphics.mapper@1.0
android.hardware.renderscript@1.0