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
dalam build userdebug saat mereka mengembangkan kernel
GKI, konfigurasi kernel CONFIG_DEBUG_FS
diaktifkan di defconfig GKI.
Jangan pernah memasang DebugFS
dalam build pengguna untuk perangkat
yang diluncurkan di Android 12.
Build userdebug memiliki cakupan pengujian yang lebih baik daripada build pengguna dan diuji
secara intensif selama siklus pengembangan. Rencana berikut meminimalkan
perbedaan antara kedua jenis build sehubungan dengan akses DebugFS
, dan
memberikan manfaat berikut:
- Mencegah build userdebug agar tidak sengaja bergantung pada
DebugFS
untuk fungsi baru - Memastikan bahwa fungsi yang ada yang rusak karena tidak adanya DebugFS diketahui sejak awal siklus pengembangan
Akses debugfs dalam build userdebug dikategorikan sebagai berikut:
- Inisialisasi file
DebugFS
selama booting perangkat, seperti akses tulis ke file diDebugFS
untuk mengaktifkan pengumpulan data debug. - Pembuatan bugreport: HAL dumpstate membaca file
DebugFS
saatDumpstateBoard()
dipanggil olehdumpstate
. Informasi ini menjadi bagian dari laporan bug. - Pengujian dan validasi khusus perangkat.
Tabel berikut menjelaskan cara setiap kategori ini
didukung di Android 12. Perhatikan bahwa
hal berikut hanya berlaku untuk build userdebug karena DebugFS
tidak dapat
dipasang dalam build pengguna.
Kasus penggunaan | Build userdebug Android 12 |
---|---|
Inisialisasi file DebugFS satu kali, selama startup.
Akses ini hanya terjadi sekali selama waktu booting.
|
Dumpstate HAL melakukan ini selama inisialisasi HAL. Untuk mengaktifkan hal yang sama,
init akan memasang DebugFS dalam build userdebug sebelum HAL melakukan inisialisasi.
Init memanggil umount() di DebugFS saat
perangkat telah selesai melakukan 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
di-mount selama pemanggilan.
|
Pengujian dan validasi khusus perangkat | Root dan shell adb. Pasang DebugFS dari adb shell dengan
akses root1.
|
1Untuk memasang DebugFS
dari adb shell
dengan
akses root, gunakan perintah ini:
adb shell mount -t debugfs debugfs /sys/kernel/debug
.
Tindakan partner yang diperlukan
Partner harus menerapkan hal berikut berdasarkan perubahan ini di perangkat Android 12:
- Buat semua inisialisasi waktu booting 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 dipasang terlebih dahulu)
Developer dapat menetapkan properti persisten debug
persist.dbg.keep_debugfs_mounted
agar DebugFs
tetap terpasang di seluruh
mulai ulang pada build userdebug dan eng.
Pengujian kepatuhan GTS memastikan bahwa sistem file DebugFS
tidak
dipasang dalam build pengguna. Pernyataan neverallow
sepolicy memastikan bahwa di perangkat
yang diluncurkan di Android 12 atau yang lebih tinggi, proses yang tidak sah tidak diberikan
akses ke DebugFs
.