27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main yerine android-latest-release kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android 12 ile birlikte 5.4 sürümünden sonraki çekirdek sürümlerini kullanan cihazların GKI çekirdeğiyle birlikte gönderilmesi gerekir. İş ortaklarının GKI çekirdeğinde geliştirirken userdebug derlemelerinde DebugFS'e erişebilmesi için GKI defconfig'de çekirdek yapılandırması CONFIG_DEBUG_FS etkinleştirilir.
Android 12'de kullanıma sunulan cihazlar için DebugFS'i kullanıcı derlemelerine hiçbir zaman bağlamayın.
Userdebug derlemeleri, kullanıcı derlemelerine kıyasla daha iyi test kapsamına sahiptir ve geliştirme döngüsü boyunca yoğun şekilde test edilir. Aşağıdaki plan, DebugFS erişimi açısından iki derleme türü arasındaki farkı en aza indirir ve aşağıdaki avantajları sağlar:
userdebug derlemelerinin yeni işlevler için yanlışlıkla DebugFS'e bağımlı olmasını engeller
DebugFS eksikliğinden dolayı bozulan mevcut işlevlerin geliştirme döngüsünün erken aşamalarında bilinmesini sağlar
userdebug derlemelerinde Debugfs erişimleri aşağıdaki gibi sınıflandırılır:
Hata ayıklama veri toplamayı etkinleştirmek için DebugFS'teki bir dosyaya yazma erişimi gibi cihazın önyükleme sırasında DebugFS dosyası başlatma işlemleri.
Hata raporu oluşturma: dumpstate HAL, DumpstateBoard()dumpstate tarafından çağrıldığında DebugFS dosyalarını okur. Bu bilgiler, hata raporunun bir parçası olur.
Cihaza özgü test ve doğrulama.
Aşağıdaki tabloda bu üç kategorinin her birinin Android 12'de nasıl desteklendiği açıklanmaktadır. DebugFS, kullanıcı derlemelerinde monte edilemediğinden aşağıdakilerin yalnızca kullanıcı hata ayıklama derlemeleri için geçerli olduğunu unutmayın.
Kullanım alanı
Android 12 userdebug derlemesi
Başlangıç sırasında tek seferlik DebugFS dosyası ilk kullanıma hazırlama.
Bu erişim, önyükleme sırasında yalnızca bir kez gerçekleşir.
Dumpstate HAL, bunu HAL ilk başlatılırken gerçekleştirir. Aynısını etkinleştirmek için, init, HAL başlatılmadan önce userdebug derlemelerinde DebugFS'ü bağlar.
Init, cihazın önyüklemesi tamamlandığında DebugFS üzerinde umount()'i çağırır.
Hata raporu oluşturma: dumpstate HAL, hata raporunun bir parçası olan DebugFS dosyalarını okur.
dumpstate (DumpstateDevice.cpp) tarafından çağrıldığında DumpstateBoard() içinde dumpstate HAL tarafından yapılır.
dumpstate aracı (Android çerçevesinin bir parçasıdır), DebugFS
çağrı sırasında DebugFS monte edilmesini sağlar.
Cihaza özgü test ve doğrulama
Adb root ve kabuk. adb kabuğundan DebugFS dosyasını kök erişim1 ile bağlayın.
1adb shell'ten DebugFS'yi kök erişimiyle bağlamak için şu komutu kullanın:
adb shell mount -t debugfs debugfs /sys/kernel/debug.
Gerekli iş ortağı işlemleri
İş ortakları, Android 12 cihazlardaki bu değişikliklere göre aşağıdakileri uygulamalıdır:
DebugFS düğümlerinin tüm önyükleme zamanı ilklendirmelerinin, dumpstate HAL ilklendirmesi sırasında yapılmasını sağlayın. Bunun nasıl yapılacağına dair bir örnek için DNM:
DebugFS dosyalarının önyükleme sırasında başlatılması örneği başlıklı makaleyi inceleyin.
Çalışma zamanında DebugFS erişimine izin vermeyin. Aşağıdaki istisnalar geçerlidir:
Hata raporu oluşturma (dumpstate HAL'den gelir)
Test ve doğrulama (adb root ve shell ile erişilebilir. DebugFS'nin önce monte edildiğinden emin olun.)
Geliştiriciler, kullanıcı hata ayıklama ve mühendislik derlemelerinde DebugFs'ın yeniden başlatmalarda bağlı kalmasını sağlamak için persist.dbg.keep_debugfs_mounted hata ayıklama kalıcı mülkünü ayarlayabilir.
GTS uygunluk testleri, DebugFS dosya sisteminin kullanıcı derlemelerinde monte edilmemesini sağlar. Sepolicy neverallow ifadeleri, Android 12 veya sonraki sürümlerde kullanıma sunulan cihazlarda yetkisiz işlemlerin DebugFs'a erişemediğinden emin olur.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 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`."]]