Menerapkan Pencatatan Vendor Tercakup

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:

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 .