Android 8.0 und höher erfordern eine Mindestkernelversion und Kernelkonfiguration, die durch die Vendor Test Suite (VTS) und Over-the-Air-Updates (OTA) überprüft werden. Android-Gerätekerne müssen die Kernel- .config
Unterstützung und die Option zum Lesen der Kernel-Konfiguration zur Laufzeit über das procfs
Dateisystem aktivieren.
Kernel-.config-Unterstützung
Alle Gerätekerne müssen die gesamte android-base.cfg aktivieren, die die folgenden Kernel-Konfigurationsoptionen (oder deren Kernel-Versionsäquivalent) enthalten muss:
CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y
Kernelversion
Für Android 9 sind die Mindestanforderungen an die Long Term Support (LTS)-Kernelversion 4.4.107, 4.9.84 und 4.14.42.
- Alle im Jahr 2018 produzierten SoCs müssen mit Kernel 4.9.84 oder höher starten.
- Alle anderen SoCs, die Android-Geräte mit Android 9 starten, müssen Kernel 4.4.107 oder höher verwenden.
- Auf 4.14 basierende Gerätekerne müssen die LTS-Version 4.14.42 oder höher enthalten.
- Unabhängig vom Startdatum unterliegen alle SoCs mit Gerätestarts auf Android 8.0 und höher weiterhin den Kernel-Änderungen, die zur Aktivierung von Treble erforderlich sind.
- Ältere Android-Geräte, die auf Android 8.0 oder höher aktualisieren, können weiterhin ihre ursprüngliche Basiskernelversion verwenden.
Einzelheiten zu LTS-Kerneln finden Sie unter Langzeitstabile Kernel und Android Common Kernels
Devicetree-Unterstützung
Wenn die Plattform die ACPI-Spezifikation (Advanced Configuration and Power Interface) nicht unterstützt, muss die Devicetree-Unterstützung im Kernel aktiviert sein und Bootloader müssen die Hardwarebeschreibung in Form eines Devicetree an den Kernel übergeben. Der Gerätebaum muss auch für Android lesbar sein und hersteller- und ODM-spezifische Parameter an Android übergeben können. CONFIG_OF
ist zusammen mit allen anderen geräte- und subsystemspezifischen Kernel-Konfigurationsoptionen CONFIG_OF_*
obligatorisch.
Verwenden von DebugFS
Die Implementierung der Herstellerschnittstelle kann sich beim Zugriff auf Debuginformationen nicht auf das DebugFS
Dateisystem verlassen. Das liegt daran, dass DebugFS
in Android 7.0–10 aktiviert werden kann , VTS-Tests jedoch möglicherweise mit nicht gemountetem DebugFS
durchgeführt werden.
In Android 11 kann DebugFS
nicht auf Produktionsgeräten zugegriffen oder es gemountet werden, daher müssen Gerätehersteller es entfernen. Vor Android 11 hat dumpstate
über DebugFS
auf Binder-Statistiken zugegriffen. Da Benutzer-Builds, die mit Android 11 oder höher gestartet werden, nicht DebugFS
zugreifen können, greift dumpstate
über binderfs
auf Binder-Statistiken zu. Um Binderfs
zu aktivieren, aktivieren Sie die Kernel-Konfiguration CONFIG_ANDROID_BINDERFS
.
In Android 11 erzwingt VTS diese beiden Anforderungen:
-
CONFIG_DEBUG_FS
ist in der Kernelkonfiguration des Geräts nicht aktiviert. -
DebugFS
ist nicht unter/proc/filesystems
aufgeführt.
DebugFS in Android 11
In der folgenden Tabelle wird beschrieben, wie jede dieser drei Kategorien in Android 11 unterstützt wird. Beachten Sie, dass das Folgende nur für Userdebug-Builds gilt, da DebugFS
nicht in Benutzerbuilds gemountet werden kann. Mounten Sie DebugFS
niemals in Benutzer-Builds für Geräte, die unter Android 11 starten.
Anwendungsfall | Android 11 Userdebug-Build |
---|---|
Einmalige Initialisierung der DebugFS Dateien während des Startvorgangs . Dieser Zugriff erfolgt nur einmal während des Bootvorgangs. | Vendor Init erledigt dies. |
Generierung von Fehlerberichten : Die Dumpstate-HAL liest DebugFS Dateien, die Teil des Fehlerberichts werden. | Wird von dumpstate HAL in DumpstateBoard() durchgeführt, wenn es vom dumpstate-Tool aufgerufen wird. |
Gerätespezifische Prüfung und Validierung | ADB-Root und Shell |