Ten przewodnik zawiera szczegółowe instrukcje pobierania, kompilowania
w celu opracowania niestandardowego jądra Pixela. Dzięki GKI można teraz
jest aktualizowana niezależnie od kompilacji platformy Androida. Te kroki są następujące
dotyczy tylko Pixela 6 i nowszych. Dzieje się tak, ponieważ Pixel 5
wcześniejsze urządzenia wymagają zaktualizowania modułów jądra na partycji vendor
,
w zależności od kompilacji platformy Androida. GKI
Tabela obsługiwanych gałęzi jądra Pixela zawiera
Gałąź manifestu repozytorium jądra dla każdego urządzenia Pixel obsługiwanego przez GKI. Więcej informacji:
sekcję dotyczącą starszej wersji rdzeni Pixela dla telefonów Pixel 5 oraz
we wcześniejszych gałęziach pliku manifestu.
Gałęzie jądra Pixela obsługiwane przez GKI
Urządzenie | Ścieżka pliku binarnego w drzewie AOSP | Gałęzie repozytorium | Jądro GKI |
---|---|---|---|
Pixel 9 Pro Fold (kometa) | device/google/comet-kernel, | android-gs-comet-6.1-android14-qpr3-d1 | Android 14–6.1 |
Pixel 9 (tokay)
Pixel 9 Pro (caiman)
Pixel 9 Pro XL (komodo) | device/google/caimito-kernel | android-gs-caimito-6.1-android14-qpr3-d1 | Android 14–6.1
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
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
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 (oryginalny)
Pixel 6 Pro (kruk) | device/google/raviole-kernel | android-gs-raviole-5.10-android14-qpr3 | Android13–5.10
Oprócz jądra wspieranych przez fabrykę urządzenia Pixel 6 i 6 Pro są obsługiwane do celów programistycznych GKI tylko w systemie Android Common. gałęzie w obsługiwanej platformie Androida i jądrze Pixela 6/6 Pro Kombinacje. Ze względu na różnice między interfejsami UAPI dostawców między HAL platformy Androida a sterownikami jądra systemu Pixel z obsługiwanych kombinacji kompilacji.
Obsługiwane kombinacje platformy Androida i jądra systemu Pixel 6 lub 6 Pro
Gałąź pliku manifestu jądra Pixela | Gałąź GKI | Kompilacja platformy Androida | Pomoc aosp-main ? |
---|---|---|---|
gs-android-gs-raviole-mainline | android-mainline (wersja 6.8) | AP1A.240505.004 (11583682) | Tak |
android14-gs-pixel-6.1 | android 14 w wersji 6.1 | AP1A.240505.004 (11583682) | Tak |
gs-android13-gs-raviole-5.15 | android 13–5.15 | TQ1A.230205.002 (9471150) | Nie |
Przygotuj urządzenie Pixel
Ten schemat blokowy opisuje proces aktualizowania jądra na Pixelu Urządzenia w wersji 6 i nowszych:
Przeprowadź flashowanie urządzenia, korzystając z flash.android.com
.- Wejdź na flash.android.com.
- Wybierz kompilację Androida na podstawie obsługiwanej platformy Androida i jądra systemu operacyjnego kombinacje.
- Wybierz te opcje:
- Wyczyść pamięć urządzenia
- Wymuś użycie partycji we wszystkich partycjach
- Wyłącz weryfikację
- Naciśnij przycisk Zainstaluj kompilację, aby uruchomić urządzenie.
Pobieranie i skompilowanie jądra
Synchronizacja repozytorium jądra
Uruchom następujące polecenia, aby pobrać kod źródłowy jądra. Zapoznaj się z Obsługiwane platformy i jądro Androida w telefonach Pixel 6/6 Pro Tabela kombinacji dla Pixela. KERNEL_MANIFEST_BRANCH
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
Aktualizowanie dysku ramdisk dostawcy
Zaktualizuj plik vendor_ramdisk-DEVICE.img
w
repozytorium jądra systemu, aby pasowało do kompilacji platformy Androida wyświetlanej
urządzenia. Masz do wyboru kilka opcji.
Opcja 1. Wyodrębnij obraz Ramdisk dostawcy z fabrycznego obrazu Pixela.
Pobierz obsługiwany obraz fabryczny urządzenia ze strony https://developers.google.com/android/images
Rozpakuj
vendor_boot.img
:- Te polecenia używają telefonu Pixel 6 Pro AP1A.240505.004. Zastąp zipfile nazwa pobranego obrazu fabrycznego.
unzip raven-ap1a.240505.004-factory-9d783215.zip
cd raven-ap1a.240505.004
unzip image-raven-ap1a.240505.004.zip vendor_boot.img
Rozpakuj pakiet
vendor_boot.img
, aby uzyskać plik pamięci RAM dostawcy.KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \ --out vendor_boot_out
Skopiuj wyodrębniony plik
vendor-ramdisk-by-name/ramdisk_
do repozytorium jądra Pixela.Urządzenie DEVICE_RAMDISK_PATH Pixel 6 (oryginalny)
Pixel 6 Pro (kruk)kompilowane/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
Opcja 2. Skopiuj vendor_ramdisk
z lokalnego repozytorium platformy Androida.
Urządzenie | DEVICE_RAMDISK_PATH |
---|---|
Pixel 6 (oryginalny) Pixel 6 Pro (kruk) |
kompilowane/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
Kompilowanie jądra (Kleaf)
W Androidzie 13 skrypt build.sh
został zastąpiony nowym systemem kompilacji jądra.
o nazwie Kleaf. W przypadku urządzeń korzystających z wersji android13-5.15
i nowszych parametr
jądro należy utworzyć w systemie Kleaf.
W przypadku Pixela 6 i 6 Pro z jądrem android14
i nowszym uruchom kompilację Kleaf
polecenie:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
W przypadku telefonów Pixel 6 i 6 Pro z jądrem android13-5.15
uruchom kompilację Kleaf
polecenie:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
W przypadku pozostałych jąder systemu Pixel uruchom skrypt build_DEVICE.sh
znajdujący się w lokalizacji KERNEL_REPO_ROOT. Dla:
aby zbudować jądro Pixela 6 w gałęzi
android-gs-raviole-5.10-android14
, uruchom polecenie:
build_slider.sh
Domyślnie skrypty build_DEVICE.sh
używają parametru
gotowego jądra GKI przyspieszającego proces kompilacji. Jeśli chcesz zmienić parametr
jądro, a potem ustaw zmienną środowiskową BUILD_AOSP_KERNEL=1
do utworzenia
ze źródeł lokalnych.
Więcej informacji na temat systemu kompilacji jądra i dostosowywania kompilacji znajdziesz w artykule Kleaf – Build Android Kernels with Bazel.
Wgrywanie obrazów jądra systemu
Uwaga: jeśli weryfikacja nie została wyłączona, musisz ją wyłączyć przed zainstalowaniem niestandardowego jądra. Oto polecenie, które pozwala to zrobić:fastboot oem disable-verification
. OSTRZEŻENIE: jeśli instalujesz niestandardowe jądro platformy, to jeśli funkcja zabezpieczeń jest wyłączona, może być konieczne wyczyszczenie pamięci urządzenia niższy poziom poprawek (SPL) powiązany z nowym jądrem. Ten proces spowoduje usunięcie wszystkich Twoich danych osobistych. Pamiętaj, aby utworzyć kopię zapasową przed wymazaniem.fastboot -w
Aby zainstalować obrazy jądra, dla każdego jądra uruchom polecenie fastboot flash
partycji na urządzeniu. W przypadku partycji dynamicznych musisz zrestartować
w trybie fastbootd
przed rozpoczęciem lampy.
Urządzenie | Partycje jądra systemu |
---|---|
Pixel 6
(oryginalny) Pixel 6 Pro (kruk) Pixel 6a (bluejay) |
uruchamianie dtbo vendor_boot vendor_dlkm (partycja dynamiczna) |
Pixel 8 (shiba) Pixel 8 Pro (husky) Pixel Fold (felix) Pixel Tablety (tangorpro) Pixel 7a (rysi) Pixel 7 (Panther) Pixel 7 Pro (gepard) |
uruchamianie dtbo vendor_kernel_boot vendor_dlkm (partycja dynamiczna) system_dlkm (partycja dynamiczna) |
Oto polecenia dotyczące migania na Pixelu 6 na urządzeniu 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
Obrazy jądra znajdziesz w: DIST_DIR.
Gałąź jądra | DIST_DIR |
---|---|
wersja 5.10 | out/mixed/dist |
wersja 5.15 i nowsze | out/DEVICE/dist |
Uwaga: jeśli masz wtyczkę szeregową i chcesz ją włączyć dzienniki, polecenie będzie wyglądać tak:Przykładowe polecenie łączenia się z hosta:fastboot oem uart enable
fastboot oem uart config 3000000
screen -fn /dev/ttyUSB* 3000000
Przywróć obrazy fabryczne
Aby przywrócić obraz fabryczny urządzenia, możesz użyć: flash.android.com.
Starsze jądra systemu Pixel
W celach informacyjnych: starsze gałęzie jądra Pixela tabela zawiera gałęzie repozytorium jądra urządzeń Pixel 5 i starszych. Urządzenia nie obsługują interfejsu GKI.
Gałęzie jądra starszej wersji Pixela
Urządzenie | Ścieżka pliku binarnego w drzewie AOSP | Gałęzie repozytorium |
---|---|---|
Pixel 5a (barbet) Pixel 4a (5G) (bramble) Pixel 5 (czerwony) |
device/google/redbull-kernel, | android-msm-redbull-4.19-android14-qpr3, |
Pixel 4a (słońca) | urządzenie/google/sunfish-kernel | android-msm-sunfish-4.14-android13-qpr3 |
Pixel 4 (płomień) Pixel 4 XL (koralowy) |
urządzenie/google/jądro-koralu | android-msm-koralowy-4.14-android13 |
Pixel 3a (sargo) Pixel 3a XL (bonito) |
device/google/bonito-kernel, | android-msm-bonito-4.9-android12L, |
Pixel 3 (niebieska linia) Pixel 3 XL (krzyżowe) |
urządzenie/google/crosshatch-kernel | android-msm-crosshatch-4.9-android12 |
Pixel 2 (walleye) Pixel 2 XL (taimen) |
urządzenie/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3, |
Pixel (żaglica) Pixel XL (marlin) |
device/google/marlin-kernel, | android-msm-marlin-3.18-piec-qpr2 |