Android 11 menambahkan HAL baru, IDumpstateDevice (versi 1.1). HAL ini memaparkan 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). Ini memberi OEM lebih banyak kontrol atas apa yang disertakan dalam jenis laporan bug tertentu.
Fitur ini memengaruhi OEM jika mereka memilih untuk menerapkan HAL opsional ini. SoC mungkin terpengaruh, tergantung pada apa yang dipilih OEM untuk diekspos dengan HAL ini. Tidak ada dampak yang diharapkan untuk operator.
Apa yang Anda sertakan dalam laporan bug bergantung pada informasi mana yang menurut Anda relevan untuk debugging, tetapi umumnya lebih bertele-tele lebih baik.
Contoh dan sumber
Ada implementasi default dari IDumpstateDevice versi 1.0 (usang) yang menunjukkan contoh penggunaan pustaka utilitas 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
, tetapi tidak semua kemungkinan didukung oleh satu perangkat (misalnya, WEAR untuk perangkat non-Wear OS).
Menerapkan HAL dumpstate adalah opsional. Semua perangkat baru yang diluncurkan dengan Android 11 HARUS mengimplementasikan IDumpstateDevice 1.1 jika mereka mengimplementasikan Dumpstate HAL. Perangkat yang telah mengimplementasikan IDumpstateDevice 1.0 sebelum Android 11 seharusnya relatif mudah diupgrade ke 1.1, dan sangat disarankan untuk melakukannya, karena sangat mengurangi jumlah informasi pribadi asing yang disertakan dalam laporan bug.
Fitur ini bergantung pada perubahan status dump inti yang juga disertakan dengan Android 11, yang terletak di bawah frameworks/native/cmds/dumpstate
.
Menerapkan 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. Mematikan log vendor membuat IDumpstateDevice::dumpstateBoard
hanya menambahkan informasi penting ke laporan bug, sementara mengaktifkannya menyertakan informasi apa pun yang dipilih OEM.
Anda dapat memodifikasi dumpstate.cpp
(yang memanggil metode HAL IDumpstateDevice), misalnya, untuk meningkatkan batas waktu yang diberikan agar dumpstateBoard
selesai. Namun, logika inti dumpstate.cpp
harus tetap tidak berubah.
Batas waktu dapat berupa nilai apa pun, tetapi tidak akan secara dramatis meningkatkan waktu yang diperlukan untuk menyelesaikan laporan bug. 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 uji manual yang direkomendasikan adalah frameworks/base/core/tests/bugreports/src/android/server/bugreports/BugreportManagerTest.java
.