Perangkat yang diluncurkan dengan Android 12 menggunakan versi kernel yang lebih tinggi dari v5.4 harus dikirimkan bersama kernel GKI. Agar partner dapat mengakses DebugFS
di build userdebug saat mereka mengembangkan kernel GKI, konfigurasi kernel CONFIG_DEBUG_FS
diaktifkan di defconfig GKI. Jangan pernah memasang DebugFS
di build pengguna untuk perangkat yang diluncurkan pada 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 kedua 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 apa pun yang rusak karena kurangnya DebugFS diketahui di awal siklus pengembangan
Akses debugf dalam build userdebug dikategorikan sebagai berikut:
- Inisialisasi file
DebugFS
selama booting perangkat, seperti akses tulis ke file diDebugFS
untuk mengaktifkan pengumpulan data debug. - Pembuatan laporan bug: HAL dumpstate membaca file
DebugFS
ketikaDumpstateBoard()
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 tabel berikut hanya berlaku untuk build userdebug karena DebugFS
tidak dapat dipasang di build pengguna.
Kasus penggunaan | Pembuatan debug pengguna Android 12 |
---|---|
Inisialisasi file DebugFS satu kali, saat startup . Akses ini hanya terjadi satu kali selama waktu boot. | Dumpstate HAL melakukan ini selama inisialisasi HAL. Untuk mengaktifkan hal yang sama, init memasang DebugFS di build userdebug sebelum HAL diinisialisasi. Init memanggil umount() pada DebugFS ketika perangkat telah menyelesaikan booting. |
Pembuatan laporan bug : HAL dumpstate membaca file DebugFS , yang menjadi bagian dari laporan bug. | Dilakukan oleh dumpstate HAL dalam DumpstateBoard() saat dipanggil oleh dumpstate ( DumpstateDevice.cpp ). Alat dumpstate (bagian dari framework Android) memastikan bahwa DebugFS dipasang selama pemanggilan. |
Pengujian dan validasi khusus perangkat | Adb root dan shell. Pasang DebugFS dari adb shell 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 pada perangkat Android 12:
- Jadikan semua inisialisasi waktu booting node
DebugFS
terjadi selama inisialisasi HAL dumpstate. Untuk contoh cara melakukannya, lihat DNM: Contoh inisialisasi waktu booting fileDebugFS
. - Jangan izinkan akses
DebugFS
selama runtime. Pengecualian berikut berlaku:- Pembuatan laporan bug (berasal dari dumpstate HAL)
- Pengujian dan validasi (dapat diakses oleh
adb root
danshell
- pastikan DebugFS dipasang terlebih dahulu)
Pengembang dapat menyetel properti persisten debug persist.dbg.keep_debugfs_mounted
agar DebugFs
tetap terpasang saat reboot pada userdebug dan build eng.
Pengujian kepatuhan GTS memastikan bahwa sistem file DebugFS
tidak dipasang di build pengguna. Pernyataan sepolicy neverallow
memastikan bahwa pada perangkat yang diluncurkan pada Android 12 atau lebih tinggi, proses yang tidak sah tidak diberikan akses ke DebugFs
.