Häufig gestellte Fragen zum Android-Kernel

Dieses Dokument enthält häufig gestellte Fragen zum Android-Kernel, auch als Generic Kernel Image (GKI) bezeichnet. Wenn Sie nicht mit GKI- und GKI-Kernel-Terminologie, siehe Kernel-Übersicht

Können KMI-Symbollisten (Kernel Module Interface) in einem stabilen Kernel geändert werden?

Änderungen, die sich nicht auf die vorhandene KMI auswirken, können Kerneln hinzugefügt werden, eingefroren. Zu diesen Änderungen gehören neue exportierte Funktionen und Einträge in der Symbolliste. Weitere Informationen finden Sie unter Symbollisten verwalten.

Kann ich Strukturen ändern, die von Anbietermodulen in einem stabilen Kernel verwendet werden?

Strukturen, die Teil einer KMI-Schnittstelle sind, können in Kerneln nicht mit einem eingefrorenen KMI. Vor dem Einfrieren von KMI können diese Strukturen geändert werden.

Kann ich den Kernel ändern, solange die Binär- oder Quellkompatibilität nicht beeinträchtigt wird?

Änderungen, die sich nicht auf die KMI auswirken, können wie unter Android-spezifische Patches.

Wie handhabt GKI die Kernel-Konfiguration?

Informationen zur Kernel-Konfiguration finden Sie in der Änderungen an gki_defconfig

Wie handhabe ich Upstream-Fehlerkorrekturen für Überschreibungen vorhandener GKI-Module?

Wenn Sie ein Anbietermodul auf Basis eines Treibers in Android Common Kernel (ACK) Sie müssen dafür sorgen, dass vorgelagerte Fehlerkorrekturen und ACK weitergegeben werden. zu Ihrem Modul. Generell ist es in Ihrem eigenen Interesse, den GKI-Kernel zu verwenden und GKI-Module unverändert, sodass diese Updates konsistent bereitgestellt werden von Google.

Gibt es GKI-spezifische Tests?

Mit Tests der Vendor Test Suite (VTS) Ein zertifizierter GKI-Build ist installiert und auch, um GKI pro Release zu erzwingen Anforderungen. Es gibt z. B. Android 12-VTS-Tests für Bootheader v3. und um zu prüfen, ob erforderliche Partitionen auf einem Gerät mit Version 5.10 vorhanden sind. Kernel.

Wie erstelle ich die Project defconfig-Fragmentdatei für Geräte-Builds?

Viele GKI-kompatible Geräte verwenden ein Konfigurationsfragment zur Beschreibung der Konfiguration. Optionen, die zusätzlich zu gki_defconfig erforderlich sind, um die Anbietermodule zu erstellen. Beispiele für die ACK-Codebasis sind Cuttlefish und DB845c. Eine manuelle Prüfung der Konfigurationsoptionen lässt sich nicht vermeiden um das Fragment zu optimieren, aber scripts/diffconfig aus den Kernel-Quellen ist nützlich, um die Ergebnisse von gki_defconfig und gki_defconfig+device.fragment

Gibt es eine Behelfslösung, damit modprobe - und _ als äquivalent behandelt?

Die Modprobe-Manpage enthält die Beschreibung: "modprobe fügt oder entfernt ein Modul aus dem Linux-Kernel. Der Einfachheit halber kein Unterschied zwischen _ und - in Modulnamen (automatische ausgeführt wird).“ Das GKI-Team hält sich an die vorgelagerte Standardkonvention, Anbietertools oder Modulnamenskonventionen müssen dies berücksichtigen.

Wie aktiviere ich debugfs für die interne Verwendung?

Weitere Informationen zum Aktivieren von „debugfs“ finden Sie unter Eindringliche Downstream-Fehlerbehebung Funktionen.

Wie kann ich nicht übereinstimmende ABIs im GKI-Kernel beheben, wenn eine bestimmte Modulkonfiguration aktiviert ist?

Nicht übereinstimmende ABIs zwischen dem GKI-Kernel und der Modulkonfiguration stellen ein implizite Abhängigkeit von Modulkonfiguration, bei der das Aktivieren eines Moduls zu einer Konfiguration, die in das resultierende Kernel-Image eingebunden werden soll. Android-Nutzer kontaktieren Kernel-Team (kernel-team@android.com), um einen Pfad zu bestimmen weiter. Nachdem die Liste der Symbole festgelegt ist, erstellen Sie einen Fehler im Problemverfolgung und Upload eine Änderung an der Symbolliste.

Ich habe GKI 1.0-konforme Geräte mit dem 5.4-Kernel, der mit Android 11 und 12 eingeführt wurde. Welche Optionen für Kernel-Upgrades sind verfügbar und wie kann ich diese Geräte beim Upgrade auf Android 12 und 13 testen?

Weitere Informationen finden Sie im Abschnitt Kompatibilität Matrix finden Sie eine Liste der unterstützten Kernel-Versionen für Start- und Upgrade-Versionen. Hier sind zwei Beispiele für die Umstellung:

Beispiel 1:Ein Nutzer mit einem Gerät, das mit Android 11 gestartet wird, mit dem android11-5.4-Kernel (GKI 1.0) kann bei einem Upgrade auf Android 12 eine der folgenden Optionen auswählen:

  • Führen Sie ein Upgrade auf den GKI 2.0-Kernel von android12-5.10 durch (dringend empfohlen).

  • Behalten Sie den Kernel android11-5.4 bei.

  • Führen Sie ein Upgrade auf den android12-5.4-Kernel durch.

Beispiel 2:Ein Nutzer mit einem Gerät, das mit Android 12 gestartet wird, Der Kernel android12-5.4 oder android12-5.10 kann eine dieser Optionen auswählen wenn du ein Upgrade auf Android 13 durchführst:

Speziell für Treble-Compliance-Tests empfehlen wir, eine der Folgendes:

  • Ersetzen Sie den Partner-Kernel durch die zertifizierte GKI. 1,0 Kernel (android11-5.4 oder android12-5.4)

  • Versand mit dem zertifizierten GKI 2,0 Kernel (android12-5.10, android13-5.10 oder android13-5.15), je nach für Ihre Auswahl.

Sie können GKI 2.0-Builds aus dem Release Generic Kernel Image (GKI) herunterladen Builds.