Dieser Leitfaden enthält eine detaillierte Anleitung zum Herunterladen, Zusammenstellen
einen benutzerdefinierten Pixel-Kernel für die Entwicklung flashen. Dank GKI ist es jetzt möglich,
Aktualisieren Sie den Kernel unabhängig vom Android-Plattform-Build. Diese Schritte sind
gilt nur für Pixel 6 und neuere Modelle. Das liegt daran, dass Pixel 5 und
Bei früheren Geräten müssen die Kernelmodule der Partition vendor
aktualisiert werden.
Dies ist abhängig vom
Android-Plattform-Build für diese Geräte. Das GKI
Die Tabelle mit den unterstützten Pixel-Kernel-Zweigen enthält die
Manifest-Branch des Kernel-Repositorys für jedes von GKI unterstützte Pixel-Gerät. Weitere Informationen finden Sie unter
im Abschnitt Ältere Pixel-Kernels für Pixel 5 und
früheren Kernel-Manifest-Zweigen.
Von GKI unterstützte Pixel-Kernel-Zweige
Gerät | Binärpfad im AOSP-Baum | Repository-Zweige | GKI-Kernel |
---|---|---|---|
Google Pixel 9 Pro Fold (comet) | device/google/comet-kernel | android-gs-comet-6.1-android14-qpr3-d1 | android14–6.1 |
Pixel 9 (Tokay)
Pixel 9 Pro (Kaiman)
Pixel 9 Pro XL (Komodo) | device/google/caimito-kernel | android-gs-caimito-6.1-android14-qpr3-d1 | android14–6.1
Google Pixel 8a (Akita) | device/google/akita-kernel | android-gs-akita-5.15-android14-qpr3 | android14–5.15
Pixel 8 (Shiba)
Pixel 8 Pro (Husky) | device/google/shusky-kernel | android-gs-shusky-5.15-android14-qpr3 | android14–5.15
Google Pixel Fold (Felix) | device/google/felix-kernel | android-gs-felix-5.10-android14-qpr3 | android13–5.10
Pixel Tablet (tangorpro) | device/google/tangorpro-kernel | android-gs-tangorpro-5.10-android14-qpr3 | android13–5.10
Google Pixel 7a (lynx) | device/google/lynx-kernel | android-gs-lynx-5.10-android14-qpr3 | android13–5.10
Pixel 7 (Panther)
Pixel 7 Pro (Gepard) | device/google/pantah-kernel | android-gs-pantah-5.10-android14-qpr3 | android13–5.10
Pixel 6a (bluejay) | device/google/bluejay-kernel | android-gs-bluejay-5.10-android14-qpr3 | android13–5.10
Pixel 6 (Oriole)
Pixel 6 Pro (Rabe) | device/google/raviole-kernel | android-gs-raviole-5.10-android14-qpr3 | android13–5.10
Zusätzlich zu den werkseitig unterstützten Kerneln sind die Pixel 6- und 6 Pro-Geräte Wird nur für GKI-Entwicklungszwecke im Android Common-Kernel unterstützt in der unterstützten Android-Plattform für Pixel 6/6 Pro und im Kernel enthalten Tabelle „Kombinationen“. Aufgrund von Unterschieden bei der UAPI des Anbieters zwischen den HALs der Android-Plattform und den Pixel-Kernel-Treibern enthält, enthält die Tabelle den unterstützten Build-Kombinationen.
Unterstützte Kombinationen aus Android-Plattform und -Kernel auf Pixel 6/6 Pro
Pixel-Kernel-Manifest-Zweig | GKI-Zweig | Android-Plattform-Build | aosp-main -Support? |
---|---|---|---|
gs-android-gs-raviole-mainline | android-mainline (Version 6.8) | AP1A.240505.004 (11583682) | Ja |
android14-gs-pixel-6.1 | android14-6.1 | AP1A.240505.004 (11583682) | Ja |
gs-android13-gs-raviole-5.15 | android13–5.15 | TQ1A.230205.002 (9471150) | Nein |
Pixel-Gerät vorbereiten
Im folgenden Flussdiagramm wird der Vorgang zum Aktualisieren des Kernels auf Pixel beschrieben. Geräte mit Version 6 und höher:
Gerät über flash.android.com flashen
- Rufen Sie flash.android.com auf.
- Android-Build basierend auf der unterstützten Android-Plattform und Kernel auswählen Kombinationen.
- Wählen Sie die folgenden Optionen aus:
<ph type="x-smartling-placeholder">
- </ph>
- Gerätedaten löschen
- Flash für alle Partitionen erzwingen
- Bestätigung deaktivieren
- Klicken Sie auf Install build (Build installieren), um das Gerät zu flashen.
Kernel herunterladen und kompilieren
Kernel-Repository synchronisieren
Führen Sie die folgenden Befehle aus, um den Kernel-Quellcode herunterzuladen. Weitere Informationen finden Sie in der Unterstützte Android-Plattform und Kernel auf Pixel 6/6 Pro Tabelle mit Kombinationen für Pixel KERNEL_MANIFEST_BRANCH
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
Anbieter-RAMdisk aktualisieren
Aktualisieren Sie die Datei vendor_ramdisk-DEVICE.img
im
Kernel-Repository entsprechend dem Android-Plattform-Build, der auf der
. Dafür gibt es mehrere Möglichkeiten.
Option 1: Extrahieren Sie das Ramdisk-Image des Anbieters aus dem Pixel-Factory Image.
Laden Sie das unterstützte Factory Image für Ihr Gerät herunter: https://developers.google.com/android/images auf.
Extrahieren Sie
vendor_boot.img
:- Mit den folgenden Befehlen wird das Pixel 6 Pro verwendet AP1A.240505.004. Ersetzen Sie die ZIP-Datei-Name durch den Dateinamen des heruntergeladenen Factory-Images.
unzip raven-ap1a.240505.004-factory-9d783215.zip
cd raven-ap1a.240505.004
unzip image-raven-ap1a.240505.004.zip vendor_boot.img
Entpacken Sie das
vendor_boot.img
, um die Anbieter-RAMdisk abzurufen.KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \ --out vendor_boot_out
Kopieren Sie die extrahierte Datei
vendor-ramdisk-by-name/ramdisk_
in das Pixel-Kernel-Repository.Gerät DEVICE_RAMDISK_PATH Pixel 6 (Oriole)
Pixel 6 Pro (Rabe)vorkonfigurierte/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img Pixel 6a (bluejay) private/devices/google/bluejay/vendor_ramdisk-bluejay.img cp vendor_boot_out/vendor-ramdisk-by-name/ramdisk_ \ KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH
Option 2: vendor_ramdisk
aus einem lokal erstellten Android-Plattform-Repository kopieren
Gerät | DEVICE_RAMDISK_PATH |
---|---|
Pixel 6 (Oriole) Pixel 6 Pro (Rabe) |
vorkonfigurierte/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img |
Pixel 6a (bluejay) | private/devices/google/bluejay/vendor_ramdisk-bluejay.img |
cp ANDROID_ROOT/out/target/product/DEVICE/vendor_ramdisk-debug.img \
KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH/vendor_ramdisk-DEVICE.img
Kompilieren Sie den Kernel (Kleaf)
In Android 13 wurde das Skript build.sh
durch ein neues Kernel-Build-System ersetzt
mit dem Namen Kleaf. Bei Geräten mit android13-5.15
und höher:
sollte mit Kleaf erstellt werden.
Führen Sie für Pixel 6 und 6 Pro mit android14
und neueren Kerneln den Kleaf-Build aus.
Befehl:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
Führen Sie für Pixel 6 und 6 Pro mit android13-5.15
-Kerneln den Kleaf-Build aus.
Befehl:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
Führen Sie für alle anderen Pixel-Kernel das Skript build_DEVICE.sh
aus, das sich unter KERNEL_REPO_ROOT befindet. Für
um den Kernel für Pixel 6 auf dem Zweig
android-gs-raviole-5.10-android14
, würden Sie folgenden Befehl ausführen:
build_slider.sh
Standardmäßig verwenden die build_DEVICE.sh
-Skripts die Methode
GKI-Kernel zur Beschleunigung des Build-Prozesses. Wenn Sie den Parameter
Core-Kernels aktivieren möchten, und legen Sie dann die Umgebungsvariable BUILD_AOSP_KERNEL=1
fest,
den Kernel aus den lokalen Quellen.
Weitere Informationen zum Kernel-Build-System und zur Anpassung des Builds Weitere Informationen finden Sie unter Kleaf – Building Android Kernels with Base.
Kernel-Images blinken
<ph type="x-smartling-placeholder"></ph> <ph type="x-smartling-placeholder"></ph> Hinweis:Wenn Sie die Bestätigung nicht deaktiviert haben, müssen Sie das jetzt nachholen. bevor der benutzerdefinierte Kernel geflasht wird. Dazu verwenden Sie folgenden Befehl:<ph type="x-smartling-placeholder">fastboot oem disable-verification
</ph> <ph type="x-smartling-placeholder"></ph> WARNUNG: Wenn Sie einen benutzerdefinierten Kernel auf Plattform-Build ist, müssen Sie möglicherweise die Daten auf Ihrem Gerät löschen, Patch-Level-Downgrade (SPL) für den neuen Kernel. Dabei werden alle deine persönlichen Daten gelöscht. Daten sichern bevor die Daten gelöscht werden.fastboot -w
Führen Sie zum Flashen der Kernel-Images den Befehl fastboot flash
für jeden Kernel aus
Partition für Ihr Gerät aufgeführt. Bei dynamischen Partitionen müssen Sie einen Neustart durchführen
vor dem Blinken in den fastbootd
-Modus.
Gerät | Kernelpartitionen |
---|---|
Google Pixel 6
(oriole) Pixel 6 Pro (Rabe) Pixel 6a (Blauhäher) |
boot dtbo vendor_boot vendor_dlkm (dynamische Partition) |
Pixel 8 (Shiba) Pixel 8 Pro (Husky) Pixel Fold (Felix) Pixel Tablets (Tangorpro) Pixel 7a (lynx) Pixel 7 (Panther) Pixel 7 Pro (Gepard) |
boot dtbo vendor_kernel_boot vendor_dlkm (dynamische Partition) system_dlkm (dynamische Partition) |
Hier sind die blinkenden Befehle für Pixel 6 unter android-mainline
:
fastboot flash boot out/slider/dist/boot.img
fastboot flash dtbo out/slider/dist/dtbo.img
fastboot flash vendor_boot out/slider/dist/vendor_boot.img
fastboot reboot fastboot
fastboot flash vendor_dlkm out/slider/dist/vendor_dlkm.img
Die Kernel-Images finden Sie unter DIST_DIR.
Kernel-Branch | DIST_DIR |
---|---|
Version 5.10 | out/mixed/dist |
v5.15 und höher | out/DEVICE/dist |
</ph> <ph type="x-smartling-placeholder"></ph> Hinweis:Wenn Sie einen seriellen Dongle haben und serielle Dongle aktivieren möchten, loggen, lautet der Befehl:Beispielbefehl zum Herstellen einer Verbindung vom Host aus:fastboot oem uart enable
fastboot oem uart config 3000000
.screen -fn /dev/ttyUSB* 3000000
Factory Images wiederherstellen
Wenn Sie Ihr Gerät auf die werkseitigen Images zurücksetzen möchten, verwenden Sie flash.android.com auf.
Alte Pixel-Kernel
Zur Erinnerung: Die Legacy-Pixel-Kernel-Zweige Die Tabelle enthält die Kernel-Repository-Zweige für Pixel 5 und ältere Geräte. Dies sind nicht von GKI unterstützte Geräte.
Legacy-Pixel-Kernel-Zweige
Gerät | Binärpfad im AOSP-Baum | Repository-Zweige |
---|---|---|
Pixel 5a (Barbet) Pixel 4a (5G) (Bramble) Pixel 5 (redfin) |
Gerät/google/redbull-kernel | android-msm-redbull-4.19-android14-qpr3 |
Pixel 4a (Sunfish) | Gerät/google/sunfish-kernel | android-msm-sunfish-4.14-android13-qpr3 |
Pixel 4 (Flame) Pixel 4 XL (Koralle) |
device/google/coral-kernel | android-msm-coral-4.14-android13 |
Pixel 3a (Sargo) Pixel 3a XL (bonito) |
device/google/bonito-kernel | android-msm-bonito-4.9-android12L |
Pixel 3 (blueline) Pixel 3 XL (Kreuzschraffur) |
device/google/crosshatch-kernel | android-msm-crosshatch-4.9-android12 |
Pixel 2 (Wandauge) Pixel 2 XL (Taimen) |
Gerät/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3 |
Pixel (Sailfish) Pixel XL (Marlin) |
Gerät/google/marlin-kernel | android-msm-marlin-3.18-pie-qpr2 |