Mengimplementasikan penonaktifan dinamis melibatkan penyambungan alur data dan menjalankan proses dinamis seperti yang dijelaskan di bagian berikut.
Perubahan pada definisi HAL
Penonaktifan dinamis memerlukan informasi tentang proses yang melayani antarmuka HAL apa (informasi ini juga dapat berguna nanti dalam konteks lain) serta tidak memulai proses saat booting dan tidak memulai ulang proses tersebut (hingga diminta lagi) saat keluar.
# some init.rc script associated with the HAL service vendor.some-service-name /vendor/bin/hw/some-binary-service # init language extension, provides information of what service is served # if multiple interfaces are served, they can be specified one on each line interface android.hardware.light@2.0::ILight default # restarted if hwservicemanager dies # would also cause the hal to start early during boot if disabled wasn't set class hal # will not be restarted if it exits until it is requested to be restarted oneshot # will only be started when requested disabled # ... other properties
Perubahan pada init dan hwservicemanager
Penonaktifan dinamis juga mengharuskan hwservicemanager memberi tahu
  init untuk memulai layanan yang diminta. Di Android 9,
  init menyertakan tiga pesan kontrol tambahan (misalnya
  ctl.start): ctl.interface_start,
  ctl.interface_stop, dan ctl.interface_restart.
  Pesan ini dapat digunakan untuk memberi sinyal init untuk menampilkan dan menyembunyikan
  antarmuka hardware tertentu. Saat layanan diminta dan tidak
  terdaftar, hwservicemanager meminta agar layanan
  dimulai. Namun, HAL dinamis tidak memerlukan penggunaan salah satu dari hal ini.
Menentukan keluar HAL
Di Android 9, keluar HAL harus ditentukan secara manual. Untuk Android 10 dan yang lebih tinggi, hal ini juga dapat ditentukan dengan siklus proses otomatis.
Penonaktifan dinamis memerlukan beberapa kebijakan untuk menentukan kapan harus memulai
  HAL dan kapan harus menonaktifkan HAL. Jika HAL memutuskan untuk keluar karena alasan apa pun, HAL
  akan otomatis dimulai ulang saat diperlukan lagi menggunakan informasi
  yang diberikan dalam definisi HAL dan infrastruktur yang disediakan oleh perubahan pada
  init dan hwservicemanager. Hal ini dapat melibatkan beberapa strategi yang berbeda, termasuk:
- HAL dapat memilih untuk memanggil exit pada dirinya sendiri jika seseorang memanggil API tutup atau serupa di dalamnya. Perilaku ini harus ditentukan di antarmuka HAL yang sesuai.
 - HAL dapat dinonaktifkan saat tugasnya selesai (didokumentasikan dalam file HAL).
 
Siklus proses otomatis
Android 10 menambahkan lebih banyak dukungan ke kernel dan
  hwservicemanager, yang memungkinkan HAL dinonaktifkan secara otomatis
  setiap kali tidak memiliki klien. Untuk menggunakan fitur ini, lakukan semua langkah dalam
  Perubahan pada definisi HAL serta:
  
- Daftarkan layanan di C++ dengan 
LazyServiceRegistrar, bukan fungsi anggota,registerAsService, misalnya:// only one instance of LazyServiceRegistrar per process LazyServiceRegistrar registrar; registrar.registerAsService(myHidlService /* , "default" */);
 - Pastikan klien HAL menyimpan referensi ke HAL tingkat atas (antarmuka
    yang terdaftar dengan 
hwservicemanager) hanya saat digunakan. Untuk menghindari penundaan jika referensi ini dihapus di thread hwbinder yang terus dieksekusi, klien juga harus memanggilIPCThreadState::self()->flushCommands()setelah menghapus referensi untuk memastikan bahwa driver binder diberi tahu tentang perubahan jumlah referensi terkait.