Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Urządzenia, które będą uruchamiane z Androidem 12 i używają jądra w wersji 5.4 lub nowszej, muszą być dostarczane z jądrem GKI. Aby partnerzy mogli korzystać z DebugFS w kompilacji userdebug podczas tworzenia wersji jądra GKI, konfiguracja jądra CONFIG_DEBUG_FS jest włączona w defconfig GKI.
Nigdy nie montuj DebugFS w kompilacji użytkownika na urządzeniach z Androidem 12.
Wersje Userdebug mają lepsze pokrycie testów niż wersje dla użytkowników i są intensywnie testowane w trakcie całego cyklu programowania. Ten plan minimalizuje różnice między tymi 2 typami wersji pod względem dostępu DebugFS i zapewnia te korzyści:
Zapobieganie przypadkowemu uzależnieniu wersji kompilowanych przez użytkowników od DebugFS w przypadku nowych funkcji
zapewnia, że wszelkie istniejące funkcje, które nie działają z powodu braku DebugFS, są znane na wczesnym etapie cyklu rozwojowego;
Dostępy debugfs w kompilacji userdebug są podzielone na następujące kategorie:
Inicjowania pliku DebugFS podczas uruchamiania urządzenia, na przykład dostępu do pliku w katalogu DebugFS w celu włączenia zbierania danych debugowania.
Generowanie raportu o błędzie: interfejs HAL dumpstate odczytuje pliki DebugFS, gdy DumpstateBoard() zostanie wywołany przez dumpstate. Te informacje są częścią raportu o błędzie.
testowanie i weryfikacja na konkretnym urządzeniu.
W tabeli poniżej opisano, jak te 3 kategorie są obsługiwane w Androidzie 12. Pamiętaj, że te informacje dotyczą tylko wersji w userdebug, ponieważ DebugFS nie można zamontować w wersjach dla użytkowników.
Przypadek użycia
kompilacja userdebug Androida 12,
Jednorazowe inicjowanie plików DebugFS podczas uruchamiania.
Ten dostęp następuje tylko raz podczas uruchamiania.
Robi to interfejs Dumpstate HAL podczas inicjalizacji. Aby włączyć tę funkcję, przed zainicjowaniem HAL należy użyć init mounts DebugFS w kompilacji userdebug.
Init wywołuje umount() na DebugFS po zakończeniu uruchamiania urządzenia.
Generowanie raportu o błędzie: HAL dumpstate odczytuje pliki DebugFS, które staną się częścią raportu o błędzie.
Wykonywane przez moduł HAL dumpstate w ramach DumpstateBoard(), gdy zostanie wywołane przez dumpstate (DumpstateDevice.cpp).
Narzędzie dumpstate (element platformy Android) zapewnia, że DebugFS
zostanie zamontowany podczas wywołania.
Testowanie i weryfikowanie na konkretnych urządzeniach
Adb root i shell. Zamontuj DebugFS w powłoce adb z dostępem roota1.
1 Aby zamontować DebugFS z adb shell z dostępem roota, użyj tego polecenia:
adb shell mount -t debugfs debugfs /sys/kernel/debug.
Wymagane działania partnera
W związku z tymi zmianami partnerzy muszą wprowadzić na urządzeniach z Androidem 12 następujące zmiany:
Nie zezwalaj aplikacji DebugFS na dostęp podczas działania. Obowiązują te wyjątki:
Generowanie raportu o błędzie (pochodzi z dumpstate HAL)
Testowanie i weryfikacja (dostęp do nich mają adb root i shell – upewnij się, że najpierw zamontowano DebugFS).
Deweloperzy mogą ustawić trwałą właściwość debugowania persist.dbg.keep_debugfs_mounted, aby DebugFs była dostępna po ponownym uruchomieniu w przypadku kompilacji userdebug i eng.
Testy zgodności GTS sprawdzają, czy system plików DebugFS nie jest zamontowany w kompilacji użytkownika. Instrukcje Sepolicy neverallow zapewniają, że na urządzeniach z Androidem 12 lub nowszym nieautoryzowane procesy nie mają dostępu do DebugFs.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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`."]]