Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release, bukan aosp-main, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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 di DebugFS untuk mengaktifkan pengumpulan data debug.
Pembuatan bugreport: HAL dumpstate membaca file DebugFS saat
DumpstateBoard() dipanggil oleh dumpstate. 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:
Jangan izinkan akses DebugFS selama runtime. Pengecualian berikut
berlaku:
Pembuatan laporan bug (berasal dari HAL dumpstate)
Pengujian dan validasi (dapat diakses oleh adb root dan shell
- 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.
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-27 UTC."],[],[],null,["# Use DebugFS in Android 12\n\nDevices that launch with Android 12 using kernel\nversions higher than v5.4 are required to ship with the GKI kernel. So that\npartners can access `DebugFS` in userdebug builds while they develop on the GKI\nkernel, the kernel config `CONFIG_DEBUG_FS` is enabled in the GKI defconfig.\n**Never mount `DebugFS` in user builds** for devices\nlaunching on Android 12.\n\n\nUserdebug builds have better test coverage than user builds and get heavily\ntested throughout the development cycle. The following plan minimizes the\ndifference between the two build types with respect to `DebugFS` access, and\nprovides these benefits:\n\n- Prevents userdebug builds from accidentally depending on `DebugFS` for new functionality\n- Ensures that any existing functionality that's broken by the lack of DebugFS is known early in the development cycle\n\n\nDebugfs accesses **in userdebug builds** are categorized as\nfollows:\n\n1. `DebugFS` file initializations during device boot, such as a write access to a file in `DebugFS` to turn on debug data collection.\n2. Bugreport generation: The dumpstate HAL reads `DebugFS` files when `DumpstateBoard()` is invoked by `dumpstate`. This information becomes part of the bug report.\n3. Device-specific testing and validation.\n\nThe following table describes how each of these three categories is\nsupported in Android 12. Note that the\nfollowing only applies to userdebug builds since `DebugFS` can't be\nmounted in user builds.\n\n| Use case | Android 12 userdebug build |\n|-------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **One-time `DebugFS` files initialization, during startup** . This access **happens only once** during boot time. | Dumpstate HAL performs this during HAL initialization. To enable the same, init mounts `DebugFS` in userdebug builds before the HAL initializes. `Init` calls `umount()` on `DebugFS` when the device has completed booting. |\n| **Bugreport generation** : The dumpstate HAL reads `DebugFS` files, which become part of the bug report. | Done by dumpstate HAL within `DumpstateBoard()` when invoked by dumpstate ([DumpstateDevice.cpp](https://cs.android.com/android/platform/superproject/+/android-latest-release:device/google/trout/hal/dumpstate/1.1/DumpstateDevice.cpp)). The dumpstate tool (part of the Android framework) ensures that `DebugFS` mounts during the invocation. |\n| **Device-specific testing and validation** | Adb root and shell. Mount `DebugFS` from the adb shell with root access^1^. |\n\n\n^1^To mount `DebugFS` from `adb shell` with\nroot access, use this command:\n\n`adb shell mount -t debugfs debugfs /sys/kernel/debug`.\n| **Note:**\n|\n| - **Android 12: There aren't any new APIs for accessing the\n| dumpstate HAL**.\n| - **Android 12: New clients don't have access** to the dumpstate HAL.\n| - Only the dumpstate HAL process and vendor-modprobe tool can access `DebugFS` for Android 12 launching devices, since the kernel modules it loads might create `DebugFS` files.\n\nRequired partner actions\n------------------------\n\n\nPartners must enact the following based on these changes in\nAndroid 12 devices:\n\n- Make all boot time initializations of `DebugFS` nodes happen during the dumpstate HAL initialization. For an example of how to do this, see [DNM:\n Example for boot time initialization of `DebugFS` files](https://android-review.googlesource.com/c/platform/hardware/interfaces/+/1426054).\n- **Don't allow `DebugFS` access during runtime. The following exceptions\n apply:**\n - Bugreport generation (comes from the dumpstate HAL)\n - Testing and validation (accessible by `adb root` and `shell` - ensure that DebugFS is mounted first)\n\nDevelopers can set the debug persistent property\n`persist.dbg.keep_debugfs_mounted` to keep `DebugFs` mounted across\nreboots on userdebug and eng builds.\n\nGTS compliance tests ensure that the `DebugFS` filesystem isn't\nmounted in user builds. Sepolicy `neverallow` statements ensure that in devices\nlaunching on Android 12 or higher, unauthorized processes aren't provided\naccess to `DebugFs`."]]