Android 11 menambahkan HAL baru, IDumpstateDevice (versi 1.1). HAL ini mengekspos metode baru untuk mencakup log vendor yang disertakan dalam laporan bug standar secara lebih ketat, serta untuk mengizinkan build pengguna mengaktifkan dan menonaktifkan logging vendor (default untuk build pengguna adalah nonaktif). Hal ini memberi OEM kontrol lebih besar atas apa yang disertakan dalam jenis laporan bug tertentu.
Fitur ini memengaruhi OEM jika mereka memilih untuk menerapkan HAL opsional ini. SoC mungkin terpengaruh, bergantung pada apa yang dipilih OEM untuk diekspos dengan HAL ini. Operator tidak akan terpengaruh.
Informasi yang Anda sertakan dalam laporan bug bergantung pada informasi yang Anda anggap relevan untuk proses debug, tetapi umumnya semakin banyak informasi yang disertakan semakin baik.
Contoh dan sumber
Ada implementasi default versi 1.0 (tidak digunakan lagi) dari
IDumpstateDevice yang menunjukkan contoh penggunaan library util dumpstate:
frameworks/native/cmds/dumpstate/DumpstateUtil.h
. Ada juga implementasi HAL 1.1 Cuttlefish:
device/google/cuttlefish/guest/monitoring/dumpstate_ext/*
.
Kode sumber terletak di sini:
- File HAL berada di
hardware/interfaces/dumpstate/1.1/
. - Kode native dumpstate yang mengontrol konten laporan bug berada di bawah
frameworks/native/cmds/dumpstate/
.
Implementasi
Untuk menerapkan HAL ini, terapkan antarmuka HAL
android.hardware.dumpstate@1.1::IDumpstateDevice
. Ada banyak kemungkinan nilai DumpstateMode
, tetapi tidak semuanya mungkin didukung oleh satu perangkat (misalnya, WEAR untuk perangkat non-Wear OS).
Penerapan HAL dumpstate bersifat opsional. Semua perangkat baru yang diluncurkan dengan Android 11 HARUS menerapkan IDumpstateDevice 1.1 jika menerapkan HAL Dumpstate. Perangkat yang telah menerapkan IDumpstateDevice 1.0 sebelum Android 11 akan relatif mudah diupgrade ke 1.1, dan sangat disarankan untuk melakukannya, karena hal ini akan sangat mengurangi jumlah informasi pribadi yang tidak relevan yang disertakan dalam laporan bug.
Fitur ini bergantung pada perubahan dumpstate inti yang juga disertakan dengan Android 11, yang terletak di bagian frameworks/native/cmds/dumpstate
.
Penerapan HAL ini kemungkinan akan memerlukan beberapa perubahan SEPolicy pada properti sistem, file, dll. tertentu agar berfungsi sepenuhnya, dan akan memerlukan koordinasi dengan vendor untuk mencadangkan semua informasi yang relevan ke dalam laporan bug.
Penyesuaian
Pengguna perangkat dapat mengaktifkan atau menonaktifkan logging vendor menggunakan setelan developer.
Jika dinonaktifkan, dumpstateBoard_1_1
mungkin masih menampilkan informasi penting
minimal sebagaimana ditentukan oleh OEM. Menonaktifkan pencatatan aktivitas vendor akan membuat
IDumpstateDevice::dumpstateBoard
hanya menambahkan informasi penting ke laporan
bug, sedangkan mengaktifkannya akan menyertakan informasi apa pun yang dipilih OEM.
Anda dapat mengubah dumpstate.cpp
(yang memanggil metode HAL IDumpstateDevice),
misalnya, untuk memperpanjang waktu tunggu yang diberikan untuk menyelesaikan dumpstateBoard
.
Namun, logika inti dumpstate.cpp
tidak boleh berubah.
Waktu tunggu dapat berupa nilai apa pun, tetapi tidak boleh meningkatkan waktu
yang diperlukan untuk menyelesaikan laporan bug secara signifikan. Khususnya,
DumpstateMode::CONNECTIVITY
sangat sensitif terhadap waktu dan perlu dijalankan secepat
mungkin untuk mengumpulkan semua log modem/Wi-Fi/jaringan yang relevan.
Validasi
Ada pengujian VTS untuk penerapan IDumpstateDevice, dan ada pengujian unit fungsional untuk fungsi BugreportManager
umum.
Kasus pengujian manual yang direkomendasikan adalah
frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java
.