Geräte, die mit Android 12 mit Kernel gestartet werden
Versionen, die älter als Version 5.4 sind, müssen mit dem GKI-Kernel ausgeliefert werden. Damit
Partner können in UserDebug-Builds auf DebugFS
zugreifen, während sie auf der GKI entwickeln
Kernel-Konfiguration CONFIG_DEBUG_FS
ist in der GKI defconfig aktiviert.
Stellen Sie DebugFS
niemals in Nutzer-Builds für Geräte bereit.
die mit Android 12 auf den Markt kommt.
Fehlerbehebungs-Builds haben eine bessere Testabdeckung als Nutzer-Builds und werden
während des Entwicklungszyklus getestet werden. Der folgende Plan minimiert die
Unterschied zwischen den beiden Build-Typen in Bezug auf den DebugFS
-Zugriff und
bietet folgende Vorteile:
- Verhindert, dass benutzerdefinierte Fehlerbehebungs-Builds versehentlich von
DebugFS
abhängen für neue Funktionen - Stellt sicher, dass alle vorhandenen Funktionen, die durch das Fehlen von DebugFS fehlerhaft sind, fehlerhaft sind zu Beginn des Entwicklungszyklus bekannt ist,
Debugfs-Zugriffe in NutzerDebug-Builds werden so kategorisiert: folgt:
DebugFS
-Dateiinitialisierungen während des Gerätestarts, z. B. Schreibzugriff auf eine Datei inDebugFS
, um die Datenerhebung zur Fehlerbehebung zu aktivieren.- Fehlerbericht erstellen: Der Dumpstate-HAL liest
DebugFS
-Dateien, wennDumpstateBoard()
wird vondumpstate
aufgerufen. Dieses werden in den Fehlerbericht aufgenommen. - Gerätespezifische Tests und Validierungen.
In der folgenden Tabelle wird beschrieben, wie jede dieser drei Kategorien
die in Android 12 unterstützt werden. Das Feld
gilt nur für Fehlerbehebungs-Builds, da DebugFS
nicht
die in Nutzer-Builds bereitgestellt werden.
Anwendungsfall | Android 12-Nutzer-Debug-Build |
---|---|
Einmalige Initialisierung von DebugFS -Dateien beim Start.
Dieser Zugriff wird nur einmal während des Bootvorgangs durchgeführt.
|
Der Dumpstate HAL führt dies während der HAL-Initialisierung durch. Um sie zu aktivieren,
init stellt DebugFS in UserDebug-Builds bereit, bevor der HAL initialisiert wird.
Init ruft umount() am DebugFS auf, wenn
der Start des Geräts abgeschlossen ist.
|
Fehlerberichterstellung: Der Dumpstate-HAL liest
DebugFS -Dateien, die in den Fehlerbericht aufgenommen werden.
|
Wird durch Dumpstate-HAL in DumpstateBoard() ausgeführt, wenn durch Dumpstate aufgerufen wird
(DumpstateDevice.cpp)
Das Dumpstate-Tool (Teil des Android-Frameworks) sorgt dafür, dass DebugFS
Bereitstellungen während des Aufrufs an.
|
Gerätespezifische Tests und Validierungen | ADB-Stamm und -Shell. Stellen Sie DebugFS aus der ADB-Shell bereit mit
Root-Zugriff1.
|
1So stellen Sie DebugFS
aus adb shell
bereit mit
Root-Zugriff haben, verwenden Sie diesen Befehl:
adb shell mount -t debugfs debugfs /sys/kernel/debug
.
Erforderliche Partneraktionen
Partner müssen auf Grundlage dieser Änderungen in Geräte mit Android 12:
- Alle Initialisierungen beim Booten von
DebugFS
Knoten ausführen während der Dumpstate-HAL-Initialisierung. Ein Beispiel dafür finden Sie unter DNM: Beispiel für die Initialisierung beim Booten vonDebugFS
-Dateien. - Lassen Sie den
DebugFS
-Zugriff während der Laufzeit nicht zu. Folgende Ausnahmen anwenden: <ph type="x-smartling-placeholder">- </ph>
- Fehlerberichterstellung (aus dem Dumpstate-HAL)
- Tests und Validierung (zugänglich für
adb root
undshell
) - Stellen Sie sicher, dass DebugFS zuerst bereitgestellt wird.)
Entwickler können die Eigenschaft „Dauerhaftes Debugging“ festlegen
persist.dbg.keep_debugfs_mounted
, um DebugFs
im Querformat zu fixieren
wird bei „userdebug“- und „eng“-Builds neu gestartet.
GTS-Compliance-Tests sorgen dafür, dass das DebugFS
-Dateisystem
die in Nutzer-Builds bereitgestellt werden. Mit Sepolicy-neverallow
-Anweisungen wird sichergestellt, dass auf Geräten
bei der Veröffentlichung unter Android 12 oder höher, werden keine nicht autorisierten Prozesse bereitgestellt.
Zugriff auf DebugFs