Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.
此页面由 Cloud Translation API 翻译。
Switch to English

Jenis HAL

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

  • HAL Terikat. HAL diekspresikan dalam bahasa definisi antarmuka HAL (HIDL) atau bahasa definisi antarmuka Android (AIDL). HAL ini menggantikan HAL konvensional dan lawas yang digunakan di versi Android sebelumnya. Dalam Binderized HAL, kerangka kerja Android dan HAL saling berkomunikasi menggunakan panggilan komunikasi antar proses (IPC) binder. Semua perangkat yang diluncurkan dengan Android 8.0 atau lebih baru harus mendukung HAL terikat saja.
  • Passthrough HALs. HAL konvensional atau lama yang dibungkus HIDL. HAL ini membungkus HAL yang ada dan dapat melayani HAL dalam mode binder dan proses yang sama (passthrough). Perangkat yang mengupgrade ke Android 8.0 dapat menggunakan passthrough HAL.

Persyaratan mode HAL

Alat Melewati Terikat
Luncurkan dengan Android 8.0 HAL yang terdaftar di Passthrough HAL harus di-passthrough. Semua HAL lainnya diikat (termasuk HAL yang merupakan ekstensi vendor).
Tingkatkan ke Android 8.0 HAL yang terdaftar di Passthrough HAL harus di-passthrough. HAL yang terdaftar di Binderized HAL harus diikat.
Semua HAL lain yang disediakan oleh gambar vendor bisa dalam mode passthrough ATAU binderized. Dalam perangkat yang sepenuhnya kompatibel dengan Treble, semua ini harus diikat.

HAL Terikat

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

  • android.hardware.biometrics.fingerprint@2.1 . Mengganti fingerprintd yang tidak lagi ada 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 digeser dan diubah. Karenanya, dumpstate_board harus diimplementasikan kembali pada perangkat tertentu (ini adalah HAL opsional).
  • android.hardware.graphics.allocator@2.0 . Diperlukan untuk diikat di Android 8.0 sehingga deskriptor file tidak harus dibagikan antara proses tepercaya dan tidak.
  • android.hardware.radio@1.0 . Mengganti 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 . Yang baru di Android 8.0, menggantikan pustaka HAL Wi-Fi lama yang dimuat ke system_server .
  • android.hardware.wifi.supplicant@1.0 . Antarmuka HIDL di atas proses wpa_supplicant ada.

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

Passthrough HALs

Android mengharuskan HAL berikut berada dalam mode passthrough di semua perangkat Android terlepas dari apakah itu perangkat peluncuran atau perangkat upgrade:

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

Semua HAL yang tidak terdaftar di atas harus diikat untuk perangkat peluncuran.

HAL dengan Proses yang Sama

Same-Process HALs (SP-HALs) selalu terbuka dalam proses yang sama di mana mereka digunakan. Mereka menyertakan semua HAL yang tidak diekspresikan dalam HIDL serta beberapa yang tidak terikat. Keanggotaan dalam kumpulan SP-HAL hanya dikontrol oleh Google, tanpa pengecualian.

SP-HAL meliputi:

  • 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 & lama

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

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