Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Jenis HAL

Di Android 8.0 dan lebih tinggi, lapisan tingkat bawah ditulis ulang untuk mengadopsi arsitektur baru yang lebih modular. Perangkat yang menjalankan Android 8.0 dan yang lebih tinggi harus mendukung HAL yang ditulis dalam HIDL, dengan beberapa pengecualian yang tercantum di bawah ini. HAL ini dapat diikat atau dilewati. Di Android 11, HAL yang ditulis dalam AIDL juga didukung. Semua AIDL HALs diikat.

  • HAL yang diikat. HAL diekspresikan dalam bahasa definisi antarmuka HAL (HIDL) atau bahasa definisi antarmuka Android (AIDL). HAL ini menggantikan HAL konvensional dan lama yang digunakan di Android versi sebelumnya. Dalam HAL Terikat, kerangka kerja Android dan HAL berkomunikasi satu sama lain menggunakan panggilan komunikasi antar proses (IPC) pengikat. Semua perangkat yang diluncurkan dengan Android 8.0 atau yang lebih baru harus mendukung HAL yang dibinder saja.
  • Passthrough HAL. Sebuah HIDL dibungkus konvensional atau HAL warisan . HAL ini membungkus HAL yang ada dan dapat melayani HAL dalam mode binderized dan proses yang sama (passthrough). Peningkatan perangkat ke Android 8.0 dapat menggunakan HAL passthrough.

Persyaratan mode HAL

Perangkat Melewati Diikat
Luncurkan dengan Android 8.0 HAL yang tercantum dalam HAL passthrough harus passthrough. Semua HAL lainnya diikat (termasuk HAL yang merupakan ekstensi vendor).
Tingkatkan ke Android 8.0 HAL yang tercantum dalam HAL passthrough harus passthrough. HAL yang tercantum dalam HAL Binderized harus binderized.
Semua HAL lain yang disediakan oleh gambar vendor dapat dalam mode passthrough ATAU binderized. Dalam perangkat yang sepenuhnya mendukung Treble, semua ini harus di-binder.

HAL yang terikat

Android memerlukan HALS berikut untuk diikat pada semua perangkat Android terlepas dari apakah itu perangkat peluncuran atau perangkat pemutakhiran:

  • android.hardware.biometrics.fingerprint@2.1 . Menggantikan fingerprintd yang tidak lagi di Android 8.0.
  • android.hardware.configstore@1.0 . Baru di Android 8.0.
  • android.hardware.dumpstate@1.0 . Antarmuka asli yang disediakan oleh HAL ini tidak dapat diubah dan diubah. Karena itu, dumpstate_board harus kembali diimplementasikan pada perangkat tertentu (ini adalah HAL opsional).
  • android.hardware.graphics.allocator@2.0 . Diperlukan untuk di-binder di Android 8.0 sehingga deskriptor file tidak harus dibagi antara proses tepercaya dan tidak tepercaya.
  • android.hardware.radio@1.0 . Menggantikan antarmuka yang disediakan oleh rild yang hidup dalam prosesnya sendiri.
  • android.hardware.usb@1.0 . Baru di Android 8.0.
  • android.hardware.wifi@1.0 . Baru di Android 8.0, menggantikan warisan Wi-Fi HAL perpustakaan yang dimuat ke system_server .
  • android.hardware.wifi.supplicant@1.0 . Sebuah antarmuka HIDL selama ada wpa_supplicant proses.

CATATAN: Android menyediakan antarmuka HIDL berikut yang akan selalu berada dalam mode binderized: android.frameworks.* , android.system.* , Dan android.hidl.* (Kecuali untuk android.hidl.memory@1.0 seperti yang dijelaskan di bawah ini).

Passthrough HAL

Android memerlukan HAL berikut untuk berada dalam mode passthrough di semua perangkat Android terlepas dari apakah itu perangkat peluncuran atau perangkat pemutakhiran:

  • android.hardware.graphics.mapper@1.0 . Memetakan memori ke dalam proses yang dijalaninya.
  • android.hardware.renderscript@1.0 . Passes item dalam proses yang sama (setara dengan openGL ).

Semua HAL yang tidak tercantum di atas harus di-binder untuk perangkat peluncuran.

HAL Proses Sama

Same-Process HALs (SP-HALs) selalu terbuka dalam proses yang sama di mana mereka digunakan. Mereka mencakup semua HAL tidak dinyatakan dalam HIDL serta beberapa yang tidak binderized. Keanggotaan dalam set SP-HAL hanya dikendalikan oleh Google, tanpa pengecualian.

SP-HAL mencakup hal-hal berikut:

  • openGL
  • Vulkan
  • android.hidl.memory@1.0 (disediakan oleh sistem Android, selalu passthrough)
  • android.hardware.graphics.mapper@1.0 .
  • android.hardware.renderscript@1.0

HAL konvensional & warisan

HAL konvensional (tidak digunakan lagi di Android 8.0) adalah antarmuka yang sesuai dengan antarmuka biner aplikasi (ABI) bernama dan berversi tertentu. Sebagian besar antarmuka sistem Android ( kamera , audio yang , sensor , dll) dalam bentuk HAL konvensional, yang didefinisikan dalam perangkat keras / libhardware / include / hardware .

HAL lawas (juga tidak digunakan lagi di Android 8.0) adalah antarmuka yang mendahului HAL konvensional. Beberapa subsistem penting (Wi-Fi, Radio Interface Layer, dan Bluetooth) adalah HAL lama. Meskipun tidak ada cara seragam atau standar untuk menggambarkan HAL lawas, apa pun yang mendahului Android 8.0 yang bukan HAL konvensional adalah HAL lawas. Bagian dari beberapa HAL warisan yang terkandung dalam libhardware_legacy , sementara bagian lain diselingi seluruh basis kode.