Perangkat yang diluncurkan dengan Android 12 menggunakan versi kernel yang lebih tinggi dari v5.4 harus dikirimkan dengan kernel GKI. Agar partner dapat mengakses DebugFS
di build userdebug saat mereka mengembangkan di kernel GKI, konfigurasi kernel CONFIG_DEBUG_FS
diaktifkan di defconfig GKI. Jangan pernah memasang DebugFS
di build pengguna untuk perangkat yang diluncurkan di Android 12.
Build Userdebug memiliki cakupan pengujian yang lebih baik daripada build pengguna dan diuji secara intensif sepanjang siklus pengembangan. Paket berikut meminimalkan perbedaan antara dua tipe build sehubungan dengan akses DebugFS
, dan memberikan manfaat berikut:
- Mencegah build userdebug secara tidak sengaja bergantung pada
DebugFS
untuk fungsionalitas baru - Memastikan bahwa fungsionalitas yang ada yang rusak karena kurangnya DebugFS diketahui di awal siklus pengembangan
Akses debugfs di build userdebug dikategorikan sebagai berikut:
- Inisialisasi file
DebugFS
selama boot perangkat, seperti akses tulis ke file diDebugFS
untuk mengaktifkan pengumpulan data debug. - Pembuatan laporan bug: HAL
DebugFS
membaca file DebugFS saatDumpstateBoard()
dipanggil olehdumpstate
. Informasi ini menjadi bagian dari laporan bug. - Pengujian dan validasi khusus perangkat.
Tabel berikut menjelaskan bagaimana masing-masing dari ketiga kategori ini didukung di Android 12. Perhatikan bahwa hal berikut ini hanya berlaku untuk build userdebug karena DebugFS
tidak dapat dipasang di build pengguna.
Gunakan kasus | Build debug pengguna Android 12 |
---|---|
Inisialisasi file DebugFS satu kali, selama startup . Akses ini hanya terjadi sekali selama waktu boot. | Dumpstate HAL melakukan ini selama inisialisasi HAL. Untuk mengaktifkannya, init me-mount DebugFS di build userdebug sebelum HAL diinisialisasi. Init memanggil umount() pada DebugFS ketika perangkat telah menyelesaikan booting. |
Pembuatan laporan bug : HAL DebugFS , yang menjadi bagian dari laporan bug. | Dilakukan oleh dumpstate HAL dalam DumpstateBoard() saat dipanggil oleh dumpstate ( DumpstateDevice.cpp ). Alat dumpstate (bagian dari kerangka kerja Android) memastikan bahwa DebugFS dipasang selama pemanggilan. |
Pengujian dan validasi khusus perangkat | Akar dan cangkang adb. Pasang DebugFS dari shell adb dengan akses root 1 . |
1 Untuk memasang DebugFS
dari adb shell
dengan akses root, gunakan perintah ini:
adb shell mount -t debugfs debugfs /sys/kernel/debug
.
Tindakan Mitra yang Diperlukan
Mitra harus menerapkan hal berikut berdasarkan perubahan ini di perangkat Android 12:
- Jadikan semua inisialisasi waktu boot dari node
DebugFS
terjadi selama inisialisasi HAL dumpstate. Untuk contoh cara melakukannya, lihat DNM: Contoh untuk inisialisasi waktu booting fileDebugFS
. - Jangan izinkan akses
DebugFS
selama runtime. Pengecualian berikut berlaku:- Pembuatan laporan bug (berasal dari HAL dumpstate)
- Pengujian dan validasi (dapat diakses oleh
adb root
danshell
- pastikan DebugFS di-mount terlebih dahulu)
Pengembang dapat menyetel properti persisten debug persistent.dbg.keep_debugfs_mounted agar persist.dbg.keep_debugfs_mounted
DebugFs
terpasang di seluruh reboot pada userdebug dan eng build.
Tes kepatuhan GTS memastikan bahwa sistem file DebugFS
tidak dipasang di build pengguna. Pernyataan kebijakan tidak pernah mengizinkan memastikan bahwa di perangkat yang diluncurkan di Android 12 atau lebih tinggi, proses tidak DebugFs
neverallow