Android 11 menambahkan HAL baru, IDumpstateDevice (versi 1.1). HAL ini mengekspos metode baru ke log vendor dengan cakupan yang lebih ketat yang disertakan dalam laporan bug standar, serta memungkinkan build pengguna untuk mengaktifkan dan menonaktifkan log vendor (default untuk build pengguna dinonaktifkan). Hal ini memberi OEM kontrol lebih besar atas apa yang disertakan dalam jenis laporan bug tertentu.
Fitur ini berdampak pada OEM jika mereka memilih untuk menerapkan HAL opsional ini. SoC mungkin terpengaruh, bergantung pada apa yang dipilih OEM untuk diekspos dengan HAL ini. Diperkirakan tidak ada dampak terhadap operator.
Apa yang Anda sertakan dalam laporan bug bergantung pada informasi mana yang Anda anggap relevan untuk proses debug, namun secara umum, lebih banyak penjelasan lebih baik.
Contoh dan sumber
Ada implementasi default dari IDumpstateDevice versi 1.0 (yang tidak digunakan lagi) yang menunjukkan contoh penggunaan pustaka util dumpstate: frameworks/native/cmds/dumpstate/DumpstateUtil.h
. Ada juga implementasi Sotong dari 1.1 HAL: device/google/cuttlefish/guest/monitoring/dumpstate_ext/*
.
Kode sumber terletak di sini:
- File HAL berada di bawah
hardware/interfaces/dumpstate/1.1/
. - Kode asli dumpstate yang mengontrol konten laporan bug berada di bawah
frameworks/native/cmds/dumpstate/
.
Penerapan
Untuk mengimplementasikan HAL ini, implementasikan antarmuka HAL android.hardware.dumpstate@1.1::IDumpstateDevice
. Ada banyak kemungkinan nilai DumpstateMode
, namun tidak semuanya kemungkinan didukung oleh satu perangkat (misalnya, WEAR untuk perangkat non-Wear OS).
Menerapkan HAL dumpstate bersifat opsional. Semua perangkat baru yang diluncurkan dengan Android 11 HARUS mengimplementasikan IDumpstateDevice 1.1 jika mengimplementasikan Dumpstate HAL. Perangkat yang telah menerapkan IDumpstateDevice 1.0 sebelum Android 11 seharusnya relatif mudah untuk ditingkatkan ke 1.1, dan hal ini sangat disarankan, karena akan sangat mengurangi jumlah informasi pribadi asing yang disertakan dalam laporan bug.
Fitur ini bergantung pada perubahan inti dumpstate yang juga disertakan dengan Android 11, yang terletak di frameworks/native/cmds/dumpstate
.
Penerapan HAL ini kemungkinan akan memerlukan beberapa perubahan SEPolicy pada properti sistem tertentu, file, dll. agar semuanya berfungsi sepenuhnya, dan akan memerlukan koordinasi dengan vendor untuk membuang semua informasi yang relevan ke dalam laporan bug.
Kustomisasi
Pengguna perangkat dapat mengaktifkan atau menonaktifkan log masuk vendor menggunakan pengaturan pengembang. Saat dimatikan, dumpstateBoard_1_1
mungkin masih menampilkan informasi penting minimal seperti yang ditentukan oleh OEM. Menonaktifkan log vendor membuat IDumpstateDevice::dumpstateBoard
hanya menambahkan informasi penting ke laporan bug, sementara mengaktifkannya mencakup informasi apa pun yang dipilih OEM.
Anda dapat memodifikasi dumpstate.cpp
(yang memanggil metode HAL IDumpstateDevice), misalnya, untuk menambah waktu tunggu yang diberikan untuk menyelesaikan dumpstateBoard
. Namun, logika inti dumpstate.cpp
tidak akan berubah.
Batas waktu dapat bernilai berapa pun, namun tidak akan menambah waktu penyelesaian laporan bug secara drastis. Secara khusus, DumpstateMode::CONNECTIVITY
sangat sensitif terhadap waktu dan perlu dijalankan secepat mungkin untuk mengumpulkan semua log modem/Wi-Fi/jaringan yang relevan.
Validasi
Ada tes VTS untuk implementasi IDumpstateDevice, dan ada tes unit fungsional untuk fungsionalitas BugreportManager
umum.
Kasus pengujian manual yang direkomendasikan adalah frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java
.