Perangkat yang diluncurkan dengan Android 12 menggunakan kernel
versi yang lebih tinggi dari v5.4 diperlukan
untuk dikirimkan dengan {i>kernel<i} GKI. Agar
partner dapat mengakses DebugFS
di build userdebug saat mereka mengembangkan di GKI
{i>kernel<i}, konfigurasi {i>kernel<i} CONFIG_DEBUG_FS
diaktifkan di GKI defconfig.
Jangan pernah memasang DebugFS
di build pengguna untuk perangkat
diluncurkan di Android 12.
Build userdebug memiliki cakupan pengujian yang lebih baik daripada build pengguna dan mendapatkan banyak
diuji sepanjang siklus pengembangan. Rencana berikut meminimalkan
perbedaan antara kedua jenis build sehubungan dengan akses DebugFS
, dan
memberikan manfaat berikut:
- Mencegah build userdebug secara tidak sengaja bergantung pada
DebugFS
untuk fungsi baru - Memastikan bahwa fungsi yang ada rusak karena kurangnya DebugFS diketahui di awal siklus pengembangan
Akses debugf di build userdebug dikategorikan sebagai berikut ini:
DebugFS
inisialisasi file selama booting perangkat, seperti akses tulis ke file diDebugFS
untuk mengaktifkan pengumpulan data debug.- Pembuatan laporan bug: HAL dumpstate membaca file
DebugFS
saatDumpstateBoard()
dipanggil olehdumpstate
. Ini informasi tambahan menjadi bagian dari laporan {i>bug<i}. - Pengujian dan validasi khusus perangkat.
Tabel berikut menjelaskan bagaimana masing-masing dari ketiga kategori ini
didukung di Android 12. Perhatikan bahwa
berikut ini hanya berlaku untuk build userdebug karena DebugFS
tidak dapat
yang terpasang di 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 hal ini selama inisialisasi HAL. Untuk memperoleh
hal yang sama,
init memasang DebugFS dalam build userdebug sebelum HAL melakukan inisialisasi.
Init menelepon umount() di DebugFS saat
perangkat telah menyelesaikan {i>booting<i}.
|
Pembuatan laporan bug: HAL dumpstate membaca
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
terpasang selama pemanggilan.
|
Pengujian dan validasi khusus perangkat | {i>Root<i} dan {i>shell<i} Adb. Pasang DebugFS dari shell adb 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 memberlakukan hal berikut berdasarkan perubahan tersebut dalam Perangkat Android 12:
- Membuat semua inisialisasi waktu booting
DebugFS
node terjadi selama inisialisasi HAL dumpstate. Untuk contoh cara melakukannya, lihat DNM: Contoh inisialisasi waktu booting fileDebugFS
. - Jangan izinkan akses
DebugFS
selama runtime. Pengecualian berikut terapkan:- Pembuatan laporan bug (berasal dari HAL dumpstate)
- Pengujian dan validasi (dapat diakses oleh
adb root
danshell
- pastikan bahwa DebugFS dipasang terlebih dahulu)
Developer dapat menetapkan properti persisten debug
persist.dbg.keep_debugfs_mounted
agar DebugFs
tetap terpasang di
memulai ulang pada userdebug dan build ing.
Tes kepatuhan GTS memastikan bahwa
sistem file DebugFS
tidak
yang terpasang di build pengguna. Pernyataan neverallow
kebijakan memastikan bahwa di perangkat
diluncurkan di Android 12 atau yang lebih tinggi, proses yang tidak sah tidak disediakan
akses ke DebugFs
.