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ş 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. HIDL ile sarılmış geleneksel veya 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||Geçişli HAL'lerde listelenen HAL'ler geçişli olmalıdır.||Diğer tüm HAL'ler ciltlenir (satıcı uzantıları olan HAL'ler dahil).|
|Android 8.0'a yükseltin||Geçişli HAL'lerde listelenen HAL'ler geçişli olmalıdır.||Bağlanmış HAL'lerde listelenen HAL'ler ciltlenmiş olmalıdır.|
|Satıcı görüntüsü tarafından sağlanan diğer tüm HAL'ler geçişli VEYA birleştirilmiş 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:
-
firstname.lastname@example.org. Artık Android 8.0'da olmayan
fingerprintddeğiştirir.
-
email@example.com. Android 8.0'da yeni.
-
firstname.lastname@example.org. Bu HAL tarafından sağlanan orijinal arayüz düzeltilemedi ve değiştirildi. Bu nedenle,
dumpstate_boardbelirli bir aygıtta yeniden uygulanmalıdır (bu isteğe bağlı bir HAL'dir).
-
email@example.com. 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.
-
firstname.lastname@example.org. Kendi sürecinde yaşayan
rildtarafından sağlanan arayüzün yerini alır.
-
email@example.com. Android 8.0'da yeni.
-
firstname.lastname@example.org. Android 8.0'daki yenilik,
system_serveryüklenen eski Wi-Fi HAL kitaplığının yerini alır.
-
email@example.com. Mevcut
wpa_supplicantişlemi üzerinde bir HIDL arayüzü.
NOT : Android, her zaman ciltleştirilmiş modda olacak şu HIDL arabirimlerini sağlar:
android.frameworks.* ,
android.system.* ve
android.hidl.* (aşağıda açıklandığı gibi
firstname.lastname@example.org hariç).
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:
-
email@example.com. Belleği, içinde yaşadığı süreçle eşler.
-
firstname.lastname@example.org. Öğeleri aynı süreçte geçirir (
openGLeşdeğerdir).
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. HIDL'de ifade edilmeyen tüm HAL'leri ve ayrıca bağlayıcı olmayan bazı HAL'leri 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
-
email@example.com(Android sistemi tarafından sağlanır, her zaman geçiş)
-
firstname.lastname@example.org.
-
email@example.com
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üzlerinin çoğu ( kamera , ses , sensörler , vb.), donanım/libdonanım/içerme/donanım altında tanımlanan geleneksel HAL'ler biçimindedir.
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, Android 8.0'dan önceki ve geleneksel bir HAL olmayan her şey eski bir HAL'dir. Bazı eski HAL'lerin bölümleri libhardware_legacy içinde bulunurken, diğer bölümler kod tabanı boyunca serpiştirilmiştir.