این راهنما دستورالعمل های گام به گام در مورد نحوه دانلود، کامپایل و فلش کردن هسته پیکسل سفارشی برای توسعه ارائه می دهد. با توجه به GKI، اکنون می توان کرنل را مستقل از ساخت پلتفرم اندروید به روز رسانی کرد. این مراحل فقط برای دستگاههای Pixel 6 و جدیدتر قابل اجرا هستند. این به این دلیل است که پیکسل 5 و دستگاههای قبلی نیاز به بهروزرسانی ماژولهای هسته در پارتیشن vendor
دارند که به ساخت پلتفرم اندروید برای آن دستگاهها بستگی دارد. جدول شاخههای Pixel Kernel با پشتیبانی GKI شامل شاخه مانیفست مخزن هسته برای هر دستگاه پیکسل پشتیبانیشده توسط GKI است. به بخش Legacy Pixel Kernels برای شاخههای Pixel 5 و مانیفست هسته قبلی مراجعه کنید.
GKI از شاخه های هسته پیکسل پشتیبانی می کند
دستگاه | مسیر باینری در درخت AOSP | شعبه های مخزن | هسته GKI |
---|---|---|---|
Pixel 9 (اکنون) Pixel 9 Pro (caiman) Pixel 9 Pro XL (komodo) | device/google/shusky-kernel | android-gs-caimito-6.1-android14-qpr3-d1 | اندروید 14-6.1 |
Pixel 8a (akita) | device/google/akita-kernel | android-gs-akita-5.15-android14-qpr3 | android14-5.15 |
پیکسل 8 (شیبا) پیکسل 8 پرو (هاسکی) | 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 |
تبلت پیکسل (tangorpro) | device/google/tangorpro-kernel | android-gs-tangorpro-5.10-android14-qpr3 | android13-5.10 |
Pixel 7a (سیاه گوش) | دستگاه/گوگل/کرنل سیاهگوش | android-gs-lynx-5.10-android14-qpr3 | android13-5.10 |
پیکسل 7 (پلنگ) Pixel 7 Pro (یوزپلنگ) | 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 (raven) | device/google/raviole-kernel | android-gs-raviole-5.10-android14-qpr3 | android13-5.10 |
علاوه بر هستههای پشتیبانی شده توسط کارخانه، دستگاههای Pixel 6 و 6 Pro برای اهداف توسعه GKI فقط در شاخههای هسته مشترک Android موجود در جدول پلتفرم Android پشتیبانی شده و ترکیبات هسته Pixel 6/6 Pro پشتیبانی میشوند. به دلیل تفاوت UAPI فروشنده بین HAL های پلتفرم اندروید و درایورهای هسته پیکسل، جدول ترکیبات ساخت پشتیبانی شده را ارائه می دهد.
پشتیبانی از پلتفرم اندروید و ترکیب هسته Pixel 6/6 Pro
شعبه مانیفست هسته پیکسل | شعبه GKI | ساخت پلتفرم اندروید | پشتیبانی aosp-main |
---|---|---|---|
gs-android-gs-raviole-mainline | اندروید اصلی ( نسخه 6.8 ) | AP1A.240505.004 (11583682) | بله |
android14-gs-pixel-6.1 | اندروید 14-6.1 | AP1A.240505.004 (11583682) | بله |
gs-android13-gs-raviole-5.15 | android13-5.15 | TQ1A.230205.002 (9471150) | خیر |
دستگاه Pixel خود را آماده کنید
نمودار جریان زیر روند بهروزرسانی هسته را در دستگاههای Pixel 6 و جدیدتر توضیح میدهد:
دستگاه را با استفاده از flash.android.com فلش کنید
- به flash.android.com بروید
- ساخت اندروید را بر اساس پلتفرم Android و ترکیبات هسته پشتیبانی شده انتخاب کنید.
- گزینه های زیر را انتخاب کنید:
- پاک کردن دستگاه
- فلش اجباری تمام پارتیشن ها
- تأیید صحت را غیرفعال کنید
- دکمه Install build را فشار دهید تا دستگاه فلش شود.
هسته را دانلود و کامپایل کنید
مخزن هسته را همگام سازی کنید
برای دانلود کد منبع هسته دستورات زیر را اجرا کنید. برای Pixel KERNEL_MANIFEST_BRANCH به جدول پلتفرم Android و کرنل پشتیبانی شده Pixel 6/6 Pro مراجعه کنید.
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
ramdisk فروشنده را به روز کنید
فایل vendor_ramdisk- DEVICE .img
در مخزن هسته بهروزرسانی کنید تا با پلتفرم اندرویدی که روی دستگاه فلش شده است مطابقت داشته باشد. چند گزینه وجود دارد که می توانید دنبال کنید.
گزینه 1) تصویر ramdisk فروشنده را از تصویر کارخانه Pixel استخراج کنید.
تصویر کارخانه پشتیبانی شده را برای دستگاه خود از https://developers.google.com/android/images دانلود کنید.
vendor_boot.img
استخراج کنید:- دستورات زیر از Pixel 6 Pro AP1A.240505.004 به عنوان مثال استفاده می کنند. نام فایل فشرده را با نام فایل تصویر کارخانه ای که دانلود کرده اید جایگزین کنید.
unzip raven-ap1a.240505.004-factory-9d783215.zip
cd raven-ap1a.240505.004
unzip image-raven-ap1a.240505.004.zip vendor_boot.img
برای بدست آوردن ramdisk فروشنده،
vendor_boot.img
باز کنید.KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \ --out vendor_boot_out
فایل
vendor-ramdisk-by-name/ramdisk_
استخراج شده را در مخزن هسته پیکسل کپی کنید.دستگاه DEVICE_RAMDISK_PATH Pixel 6 (oriole)
Pixel 6 Pro (raven)prebuilts/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
گزینه 2) vendor_ramdisk
از یک مخزن پلتفرم Android ساخته شده محلی کپی کنید.
دستگاه | DEVICE_RAMDISK_PATH |
---|---|
Pixel 6 (oriole) Pixel 6 Pro (Rave) | prebuilts/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
کامپایل هسته (کلیف)
در اندروید 13، اسکریپت build.sh
با یک سیستم ساخت هسته جدید به نام Kleaf جایگزین شد. برای دستگاههایی که از android13-5.15
و بالاتر استفاده میکنند، هسته باید با استفاده از Kleaf ساخته شود.
برای پیکسل 6 و 6 پرو با هسته های android14
و جدیدتر، دستور ساخت Kleaf را اجرا کنید:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
برای Pixel 6 و 6 Pro با هسته های android13-5.15
، دستور ساخت Kleaf را اجرا کنید:
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
برای همه هستههای پیکسل دیگر، اسکریپت build_ DEVICE.sh
موجود در KERNEL_REPO_ROOT را اجرا کنید. به عنوان مثال، برای ساختن هسته پیکسل 6 در شاخه android-gs-raviole-5.10-android14
، باید این دستور را اجرا کنید:
build_slider.sh
به طور پیش فرض، اسکریپت های build_ DEVICE .sh
از هسته GKI از پیش ساخته شده برای سرعت بخشیدن به فرآیند ساخت استفاده می کنند. اگر میخواهید هسته اصلی را تغییر دهید، متغیر محیطی BUILD_AOSP_KERNEL=1
را تنظیم کنید تا به جای آن هسته را از منابع محلی بسازد.
برای جزئیات بیشتر در مورد سیستم ساخت هسته و نحوه سفارشی سازی ساخت، به هسته های اندرویدی Kleaf - Building با Bazel مراجعه کنید.
تصاویر کرنل را فلش کنید
توجه: اگر تأیید صحت را غیرفعال نکرده اید، باید قبل از فلش کردن کرنل سفارشی این کار را انجام دهید. در اینجا دستور انجام این کار وجود دارد:fastboot oem disable-verification
هشدار: اگر در حال فلش کردن یک هسته سفارشی در بالای یک پلتفرم هستید، ممکن است لازم باشد دستگاه خود را پاک کنید اگر سطح وصله امنیتی (SPL) مربوط به هسته جدید کاهش یابد. این فرآیند تمام اطلاعات شخصی شما را پاک می کند. قبل از پاک کردن، حتما از اطلاعات خود نسخه پشتیبان تهیه کنید.fastboot -w
برای فلش کردن تصاویر هسته، دستور fastboot flash
برای هر پارتیشن هسته لیست شده برای دستگاه خود اجرا کنید. برای پارتیشن های داینامیک، باید قبل از فلش زدن، در حالت fastbootd
ریبوت کنید.
دستگاه | پارتیشن های هسته |
---|---|
Pixel 6 (oriole) Pixel 6 Pro (raven) Pixel 6a (bluejay) | چکمه dtbo vendor_boot vendor_dlkm (پارتیشن پویا) |
پیکسل 8 (شیبا) پیکسل 8 پرو (هاسکی) Pixel Fold (felix) تبلت پیکسل (tangorpro) Pixel 7a (سیاه گوش) پیکسل 7 (پلنگ) Pixel 7 Pro (یوزپلنگ) | چکمه dtbo vendor_kernel_boot vendor_dlkm (پارتیشن پویا) system_dlkm (پارتیشن پویا) |
در اینجا دستورات چشمک زن Pixel 6 در 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
تصاویر هسته را می توان در DIST_DIR پیدا کرد.
شاخه هسته | DIST_DIR |
---|---|
نسخه 5.10 | out/mixed/dist |
نسخه 5.15 و بالاتر | out/ DEVICE /dist |
توجه: اگر یک دانگل سریال دارید و میخواهید گزارشهای سریال را فعال کنید، دستور به صورت زیر است:دستور مثال برای اتصال از هاست: fastboot oem uart enable
fastboot oem uart config 3000000
screen -fn /dev/ttyUSB* 3000000
بازیابی تصاویر کارخانه
برای بازگرداندن دستگاه خود به تصاویر کارخانه، می توانید از flash.android.com استفاده کنید.
هستههای پیکسل قدیمی
به عنوان مرجع، جدول شاخههای هسته پیکسل قدیمی، شاخههای مخزن هسته را برای پیکسل 5 و دستگاههای قبلی ارائه میکند. اینها دستگاه هایی هستند که از GKI پشتیبانی نمی کنند.
شاخه های هسته پیکسل قدیمی
دستگاه | مسیر باینری در درخت AOSP | شعبه های مخزن |
---|---|---|
Pixel 5a (barbet) Pixel 4a (5G) (bramble) پیکسل 5 (پر قرمز) | دستگاه/google/redbull-kernel | android-msm-redbull-4.19-android14-qpr3 |
Pixel 4a (ماهی خورشیدی) | device/google/sunfish-kernel | android-msm-sunfish-4.14-android13-qpr3 |
پیکسل 4 (شعله) Pixel 4 XL (مرجانی) | device/google/coral-kernel | android-msm-coral-4.14-android13 |
Pixel 3a (sargo) Pixel 3a XL (بنیتو) | device/google/bonito-kernel | android-msm-bonito-4.9-android12L |
Pixel 3 (آبی خط) Pixel 3 XL (تقاطع) | device/google/crosshatch-kernel | android-msm-crosshatch-4.9-android12 |
Pixel 2 (walleye) Pixel 2 XL (taimen) | device/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3 |
پیکسل (ماهی دریایی) Pixel XL (مارلین) | دستگاه/گوگل/مارلین-کرنل | android-msm-marlin-3.18-pie-qpr2 |