HAL Çeşitleri

Android 8.0 ve sonraki sürümlerde, alt düzey katmanlar yeni, daha modüler bir mimariyi benimsemek için yeniden yazılmıştır. Android 8.0 ve sonraki sürümleri çalıştıran cihazlar, aşağıda listelenen birkaç istisna dışında HIDL'de yazılmış HAL'leri desteklemelidir. Bu HAL'ler ciltlenebilir veya geçişli olabilir. Android 11'de AIDL ile yazılmış HAL'ler de desteklenmektedir. Tüm AIDL HAL'leri bağlayıcıdır.

  • Bağlanmış HAL'ler. HAL arabirim tanımlama dilinde (HIDL) veya Android arabirim tanımlama dilinde (AIDL) ifade edilen HAL'ler. Bu HAL'ler, Android'in önceki sürümlerinde kullanılan hem geleneksel hem de eski HAL'lerin yerini alır. Bir Binderized HAL'de, Android çerçevesi ve HAL'ler, bağlayıcı süreçler arası iletişim (IPC) çağrılarını kullanarak birbirleriyle iletişim kurar. Android 8.0 veya sonraki sürümlerle başlatılan tüm cihazlar yalnızca ciltlenmiş HAL'leri desteklemelidir.
  • Geçiş HAL'leri. Geleneksel bir veya HIDL sarılmış eski HAL . Bu HAL'ler mevcut HAL'leri sarar ve HAL'a ciltlenmiş ve aynı işlem (geçiş) modlarında hizmet verebilir. Android 8.0'a yükseltme yapan cihazlar, geçiş HAL'lerini kullanabilir.

HAL modu gereksinimleri

Cihaz geçiş ciltlenmiş
Android 8.0 ile başlatın Listelenen HAL'lere Passthrough HAL'lere passthrough olmalıdır. Diğer tüm HAL'ler ciltlenir (satıcı uzantıları olan HAL'ler dahil).
Android 8.0'a yükseltin Listelenen HAL'lere Passthrough HAL'lere passthrough olmalıdır. Listelenen HAL'lere Binderized HAL'lere binderized edilmelidir.
Satıcı görüntüsü tarafından sağlanan diğer tüm HAL'ler geçişli VEYA ciltlenmiş modda olabilir. Tamamen Tiz uyumlu bir cihazda bunların hepsinin ciltlenmesi gerekir.

Bağlanmış HAL'ler

Android, başlatma cihazları veya yükseltme cihazları olmalarına bakılmaksızın aşağıdaki HALS'lerin tüm Android cihazlarda ciltlenmesini gerektirir:

  • android.hardware.biometrics.fingerprint@2.1 . Yerini fingerprintd artık Android'de 8.0 olan.
  • android.hardware.configstore@1.0 . Android 8.0'da yeni.
  • android.hardware.dumpstate@1.0 . Bu HAL tarafından sağlanan orijinal arayüz düzeltilemedi ve değiştirildi. Bu nedenle, dumpstate_board (bu, isteğe bağlı bir HAL olan), belirli bir cihazda yeniden uygulanması gerekmektedir.
  • android.hardware.graphics.allocator@2.0 . Dosya tanımlayıcılarının güvenilir ve güvenilmeyen işlemler arasında paylaşılmasına gerek kalmaması için Android 8.0'da ciltlenmesi gerekir.
  • android.hardware.radio@1.0 . Tarafından sağlanan arayüz değiştirir rild kendi süreçte yaşıyor.
  • android.hardware.usb@1.0 . Android 8.0'da yeni.
  • android.hardware.wifi@1.0 . Yeni Android 8.0, içine yüklendi eski Wi-Fi HAL kütüphanesi yerini system_server .
  • android.hardware.wifi.supplicant@1.0 . Varolan üzerinde bir HIDL arayüzü wpa_supplicant süreç.

NOT: Android her zaman binderized modunda olacaktır aşağıdaki HIDL arabirimleri sağlar android.frameworks.* , android.system.* , Ve android.hidl.* (Hariç android.hidl.memory@1.0 aşağıda açıklandığı gibi).

Geçiş HAL'leri

Android, başlatma cihazları veya yükseltme cihazları olmalarına bakılmaksızın aşağıdaki HAL'lerin tüm Android cihazlarda geçiş modunda olmasını gerektirir:

  • android.hardware.graphics.mapper@1.0 . Belleği, içinde yaşadığı süreçle eşler.
  • android.hardware.renderscript@1.0 . (Eşdeğer aynı süreçte öğeleri geçirir openGL ).

Yukarıda listelenmeyen tüm HAL'ler, başlatma aygıtları için ciltlenmelidir.

Aynı İşlem HAL'leri

Aynı İşlem HAL'leri (SP-HAL'ler) her zaman kullanıldıkları işlemde açılır. Hepsi HIDL ifade edilmeyen HAL'lerin yanı sıra binderized olmadığını bazılarını içerir. SP-HAL kümesindeki üyelik, istisna olmaksızın yalnızca Google tarafından kontrol edilir.

SP-HAL'ler şunları içerir:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (Android sistemi tarafından sağlanan her zaman passthrough)
  • android.hardware.graphics.mapper@1.0 .
  • android.hardware.renderscript@1.0

Geleneksel ve eski HAL'ler

Geleneksel HAL'ler (Android 8.0'da kullanımdan kaldırılmıştır), belirli bir adlandırılmış ve sürümlendirilmiş uygulama ikili arabirimine (ABI) uyan arabirimlerdir. Android sistem arayüzleri (kütle kamera , ses , sensörler , vs.) için tarif edildiği geleneksel HAL'lere, şeklinde olan donanım / libhardware / bulunmaktadır / donanım .

Eski HAL'ler (Android 8.0'da da kullanımdan kaldırılmıştır), geleneksel HAL'lerden önce gelen arabirimlerdir. Birkaç önemli alt sistem (Wi-Fi, Radyo Arabirim Katmanı ve Bluetooth) eski HAL'lerdir. Eski bir HAL'ı tanımlamanın tek tip veya standart bir yolu olmasa da, geleneksel bir HAL olmayan Android 8.0'dan önceki her şey eski bir HAL'dir. Bazı eski HAL'lere Parçaları içerdiği libhardware_legacy diğer bölümleri kod temeli boyunca serpiştirilmiş edilirken,.