Donanım soyutlama katmanına genel bakış,Donanım soyutlama katmanına genel bakış,Donanım soyutlama katmanına genel bakış

Android 8.0 ve sonraki sürümlerde, alt düzey katmanlar yeni, daha modüler bir mimariyi benimsemek için yeniden yazılır. Android 8.0 ve üzerini ç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'de yazılan HAL'ler de desteklenir. Tüm AIDL HAL'leri ciltlenir.

  • Bağlanmış HAL'ler . HAL arayüz tanımlama dilinde (HIDL) veya Android arayüz 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. Binderized HAL'de, Android çerçevesi ve HAL'ler, ciltleyici süreçler arası iletişim (IPC) çağrılarını kullanarak birbirleriyle iletişim kurar. Android 8.0 veya sonraki sürümleriyle başlatılan tüm cihazlar, yalnızca bağlayıcı hale getirilmiş HAL'leri desteklemelidir.

  • Geçişli HAL'ler . A HIDL sarmalı geleneksel veya Eski HAL'ler Bu HAL'ler, mevcut HAL'leri sarar ve HAL'a bağlayıcı ve aynı işlem (geçiş) modlarında hizmet edebilir. Android 8.0'a yükseltme yapan cihazlar, düz geçişli HAL'leri kullanabilir.

HAL modu gereksinimleri

Cihaz geçiş Bağlanmış
Android 8.0 ile başlatın Düz Geçiş HAL'lerinde listelenen HAL'ler geçiş olmalıdır. Diğer tüm HAL'ler ciltlenir (satıcı uzantıları olan HAL'ler dahil).
Android 8.0'a yükseltin Düz Geçiş HAL'lerinde listelenen HAL'ler geçiş olmalıdır. Bağlanmış HAL'lerde listelenen HAL'ler bağlayıcı hale getirilmelidir.
Satıcı görüntüsü tarafından sağlanan diğer tüm HAL'ler, doğrudan geçiş VEYA ciltleme modunda olabilir. Tamamen Tiz uyumlu bir cihazda, bunların tümü ciltlenmelidir.

Bağlanmış HAL'ler

Android, başlatma cihazları veya yükseltme cihazları olmalarından bağımsız olarak tüm Android cihazlarında aşağıdaki HALS'lerin ciltlenmesini gerektirir:

  • android.hardware.biometrics.fingerprint@2.1 . Artık Android 8.0'da olmayan fingerprintd yerini alır.
  • android.hardware.configstore@1.0 . Android 8.0'da yeni.
  • android.hardware.dumpstate@1.0 . Bu HAL tarafından sağlanan orijinal arabirim, şimlenemedi ve değiştirildi. Bu nedenle, dumpstate_board belirli bir cihazda yeniden uygulanmalıdır (bu, isteğe bağlı bir HAL'dir).
  • android.hardware.graphics.allocator@2.0 . Android 8.0'da ciltlenmesi gerekir, böylece dosya tanımlayıcılarının güvenilir ve güvenilmeyen işlemler arasında paylaşılması gerekmez.
  • android.hardware.radio@1.0 . Kendi sürecinde yaşayan rild tarafından sağlanan arayüzü değiştirir.
  • android.hardware.usb@1.0 . Android 8.0'da yeni.
  • android.hardware.wifi@1.0 . Android 8.0'daki yenilikler, system_server yüklenen eski Wi-Fi HAL kitaplığının yerini alır
  • android.hardware.wifi.supplicant@1.0 . Mevcut wpa_supplicant işlemi üzerinde bir HIDL arabirimi.

Geçişli HAL'ler

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

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

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

Aynı İşlem HAL'leri

Aynı İşlem HAL'leri (SP-HAL'ler) her zaman kullanıldıkları aynı işlemde açılır. HIDL'de ifade edilmeyen tüm HAL'leri ve bağlayıcı olmayan bazılarını içerir. SP-HAL setindeki üyelik istisnasız yalnızca Google tarafından kontrol edilir.

SP-HAL'ler aşağıdakileri içerir:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (Android sistemi tarafından sağlanır, her zaman geçişlidir)
  • android.hardware.graphics.mapper@1.0
  • android.hardware.renderscript@1.0