Kernel-Anforderungen

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