يوفّر هذا الدليل تعليمات مفصّلة حول كيفية تنزيل وترجمة و
فلاش نواة Pixel مخصّصة لأغراض التطوير. بفضل GKI، أصبح من الممكن الآن
تحديث النواة بشكل مستقل عن إصدار نظام Android الأساسي. لا تنطبق هذه الخطوات سوى على هواتف Pixel 6 والإصدارات الأحدث. يرجع ذلك إلى أنّ هاتف Pixel 5 وغيرها من الأجهزة الأقدم تتطلّب تحديث وحدات النواة في قسم vendor
،
الذي يعتمد على إصدار نظام التشغيل Android لهذه الأجهزة. يتضمّن جدول فروع ملف بيان "حِزم أدوات تطوير البرامج (GKI)" المتوافقة مع نواة Pixel
فرع ملف بيان مستودع النواة لكل جهاز Pixel متوافق مع "حِزم أدوات تطوير البرامج (GKI)". يُرجى الرجوع إلى القسم الإصدارات القديمة من نواة Pixel لمعرفة معلومات عن الإصدارات السابقة من بيان نواة Pixel 5 وغيرها من الإصدارات.
فروع نواة Pixel المتوافقة مع GKI
الجهاز | مسار الثنائي في شجرة AOSP | فروع المستودع | نواة GKI |
---|---|---|---|
Pixel 9 Pro Fold (comet) | device/google/comet-kernels/6.1 | android-gs-comet-6.1-android15-qpr1 | android15-6.1 |
Pixel 9 (tokay) Pixel 9 Pro (caiman) Pixel 9 Pro XL (komodo) |
device/google/caimito-kernels/6.1 | android-gs-caimito-6.1-android15-qpr1 | android15-6.1 |
Pixel 8a (akita) | device/google/akita-kernels/5.15 | android-gs-akita-5.15-android15-qpr1 | android15-5.15 |
Pixel 8 (سلالة شيبا) Pixel 8 Pro (سلالة هاسكي) |
device/google/shusky-kernels/5.15 | android-gs-shusky-5.15-android15-qpr1 | android15-5.15 |
Pixel Fold (felix) | device/google/felix-kernels/5.10 | android-gs-felix-5.10-android15-qpr1 | android15-5.10 |
Pixel Tablet (tangorpro) | device/google/tangorpro-kernels/5.10 | android-gs-tangorpro-5.10-android15-qpr1 | android15-5.10 |
Pixel 7a (lynx) | device/google/lynx-kernels/5.10 | android-gs-lynx-5.10-android15-qpr1 | android15-5.10 |
Pixel 7 (النمر) Pixel 7 Pro (الفهد) |
device/google/pantah-kernels/5.10 | android-gs-pantah-5.10-android15-qpr1 | android15-5.10 |
Pixel 6a (bluejay) | device/google/bluejay-kernels/5.10 | android-gs-bluejay-5.10-android15-qpr1 | android15-5.10 |
Pixel 6 (oriole) Pixel 6 Pro (raven) |
device/google/raviole-kernels/5.10 | android-gs-raviole-5.10-android15-qpr1 | android15-5.10 |
بالإضافة إلى نواة النظام المتوافقة مع المصنع، فإنّ هواتف Pixel 6 وPixel 6 Pro متوافقة لأغراض تطوير GKI فقط على فروع ملف تعريف النظام الأساسي لنظام التشغيل Android المشترَك المضمّنة في جدول مجموعات نظام التشغيل Android وملف تعريف النظام الأساسي المتوافقة لهواتف Pixel 6/6 Pro. بسبب الاختلافات في واجهات برمجة التطبيقات لجهة التصنيع (UAPI) بين واجهات HAL لنظام Android الأساسي وبرامج تشغيل نواة Pixel، يقدّم الجدول مجموعات الإصدارات المتوافقة.
مجموعات الإصدارات المتوافقة من نظام التشغيل Android والنواة لهاتفَي Pixel 6 وPixel 6 Pro
فرع بيان نواة Pixel | فرع GKI | إصدار نظام Android الأساسي | هل يمكنك تقديم الدعم بشأن aosp-main ؟ |
---|---|---|---|
gs-android-gs-raviole-mainline | android-mainline (الإصدار 6.12) | BP11.241025.006 (12620009) | نعم |
android-gs-raviole-6.1-android15-qpr2-beta | android14-6.1 | BP11.241025.006 (12620009) | نعم |
gs-android13-gs-raviole-5.15 | android13-5.15 | TQ1A.230205.002 (9471150) | لا |
تحضير جهاز Pixel
يوضّح المخطّط البياني التالي عملية تحديث النواة على هواتف Pixel 6 والإصدارات الأحدث:
فلاش الجهاز باستخدام flash.android.com
- انتقِل إلى flash.android.com.
- اختَر إصدار Android استنادًا إلى مجموعات Android Platform وKernel المتوافقة.
- حدِّد الخيارات التالية:
- مسح بيانات الجهاز
- فرض فلاش لجميع الأقسام
- إيقاف ميزة "إثبات الملكية"
- اضغط على الزر تثبيت الإصدار لفلاش الجهاز.
تنزيل النواة وتجميعها
مزامنة مستودع النواة
شغِّل الأوامر التالية لتنزيل رمز المصدر للنواة. يُرجى الرجوع إلى جدول مجموعات أنظمة التشغيل Android وبرامج التشغيل المتوافقة مع هواتف Pixel 6/6 Pro لهاتف Pixel KERNEL_MANIFEST_BRANCH.
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
تعديل ذاكرة التخزين المؤقت للمورّد
عدِّل الملف vendor_ramdisk-DEVICE.img
في مستودع ملف kernel لكي يتطابق مع إصدار نظام Android الأساسي الذي تم تثبيته على
الجهاز. هناك خياران لتعديل ملف vendor_ramdisk-DEVICE.img
. استخدِم الخيار (1) إذا كنت تستخدم الإصدار 15
QPR2 (BP11.241025.006) من نظام التشغيل Android أو إصدارًا أحدث. وبخلاف ذلك، استخدِم الخيار (2).
الخيار 1) تعديل أجزاء ذاكرة التخزين المؤقت DTB وDLKM فقط في قسم vendor_boot
بدءًا من إصدار fastboot 35.0.2-12583183، يمكنك فلاش ملفَي DTB وDLKM ramdisk مباشرةً على قسم
vendor_boot
. نزِّلsdk-repo-HOST_OS-platform-tools-12583183.zip
واستخرِجَه من العناصر v35.0.2-12583183 إلى بيئة الحاسب المضيف لاستخدامه.اتّبِع التعليمات لفلاش DTB و
vendor_boot:dlkm
في القسم فلاش صور النواة.الخيار 2) استخراج صورة ذاكرة التخزين المؤقت للجهاز من صورة المصنع لهواتف Pixel
نزِّل صورة المصنع المتوافقة لجهازك من https://developers.google.com/android/images.
استخرِج
vendor_boot.img
:تستخدِم الأوامر التالية طراز Pixel 6 Pro AP1A.240505.004 كمثال. استبدِل اسم ملف zip باسم ملف صورة المصنع التي نزّلتها.
unzip raven-ap1a.240505.004-factory-9d783215.zip
cd raven-ap1a.240505.004
unzip image-raven-ap1a.240505.004.zip vendor_boot.img
فكِّ ضغط
vendor_boot.img
للحصول على ملف ramdisk الخاص بالمورّد.KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \ --out vendor_boot_out
انسخ ملف
vendor-ramdisk-by-name/ramdisk_
المستخرَج إلى مستودع نواة Pixel.الجهاز 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
تجميع النواة (Kleaf)
في الإصدار 13 من Android، تم استبدال النص البرمجي build.sh
بنظام جديد لإنشاء النواة
يُعرف باسم Kleaf. بالنسبة إلى الأجهزة التي تستخدم الإصدار android13-5.15
والإصدارات الأحدث، يجب إنشاء
النواة باستخدام Kleaf.
بالنسبة إلى هواتف Pixel 6 وPixel 6 Pro التي تعمل بنوى android13-5.15
، يمكنك تنفيذ الأمر "إنشاء Kleaf":
tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist
بالنسبة إلى جميع نواة Pixel الأخرى، يمكنك تشغيل نص build_DEVICE.sh
المتوفّر على KERNEL_REPO_ROOT
. في معظم
الحالات، يجب أن يكون DEVICE
هو الاسم الرمزي الذي
يتطابق مع الاسم الرمزي المستخدَم في عمود مسار الثنائي في شجرة AOSP ضمن جدول فروع نواة Pixel المتوافقة مع GKI. ويمكن أن يكون
هذا الاسم الرمزي اسمًا لجهاز واحد، مثل "akita" (Pixel 8a)، أو اسمًا رمزيًا
يمثّل مجموعة من الأجهزة ذات الصلة التي تتشارك نواة، مثل
"caimito" الذي يشير إلى Pixel 9 (tokay) وPixel 9 Pro (caiman) وPixel 9 Pro XL
(komodo). بالنسبة إلى الإصدار android14
والإصدارات الأقدم، استخدِم build_slider.sh
لهاتفَي Pixel
6 وPixel 6 Pro، واستخدِم build_cloudripper.sh
لهاتفَي Pixel 7 وPixel 7 Pro.
على سبيل المثال، لإنشاء نواة لجهاز Pixel 6 على الفرع
android-gs-raviole-5.10-android14
، عليك تنفيذ الأمر التالي:
build_slider.sh
بشكلٍ تلقائي في فروع نواة الإصدار العلني، تستخدِم النصوص البرمجية
build_DEVICE.sh
نواة GKI المُنشأة مسبقًا
لتسريع عملية الإنشاء. إذا كنت تريد تعديل النواة الأساسية، اضبط
متغيّر البيئة BUILD_AOSP_KERNEL=1
لإنشاء النواة من
المصادر المحلية بدلاً من ذلك. تُنشئ فروع نواة التطوير مصدر ملف برمجي للنواة مباشرةً بشكلٍ تلقائي.
لمزيد من التفاصيل حول نظام إنشاء نواة النظام وكيفية تخصيص عملية الإنشاء، يُرجى الرجوع إلى المقالة Kleaf - إنشاء نواة نظام Android باستخدام Bazel.
فلاش صور النواة
ملاحظة: إذا لم تكن قد أوقفت ميزة التحقّق، عليك إجراء ذلك قبل فلاش نواة مخصّصة. في ما يلي الأمر لتنفيذ ذلك:fastboot oem disable-verification
تحذير: إذا كنت بصدد فلاش نواة مخصّصة على ملف برمجي لنظام أساسي، قد تحتاج إلى محو بيانات جهازك إذا كان هناك تحديث قديم لمستوى تصحيح الأمان (SPL) مرتبط بالنواة الجديدة. ستؤدي هذه العملية إلى محو جميع بياناتك الشخصية. احرص على الاحتفاظ بنسخة احتياطية من بياناتك قبل محو ذاكرة الجهاز.fastboot -w
لفلاش صور النواة، شغِّل الأمر fastboot flash
لكل قسم
نواة مُدرَج لجهازك. بالنسبة إلى الأقسام الديناميكية، عليك إعادة التشغيل
في وضع fastbootd
قبل الفلاش.
الجهاز | أقسام النواة |
---|---|
Pixel 6
(طائر أبو زريق) Pixel 6 Pro (غراب) Pixel 6a (طائر زرزور) |
boot dtbo vendor_boot vendor_dlkm (القسم الديناميكي) |
Pixel 8 (shiba) Pixel 8 Pro (husky) Pixel Fold (felix) Pixel Tablet (tangorpro) Pixel 7a (lynx) Pixel 7 (panther) Pixel 7 Pro (cheetah) |
boot dtbo vendor_kernel_boot vendor_dlkm (القسم الديناميكي) system_dlkm (القسم الديناميكي) |
بالنسبة إلى هواتف Pixel 6/6 Pro/6a، إذا تخطّيت تنزيل vendor_ramdisk
في القسم
تعديل ذاكرة التخزين المؤقت الخاصة بمورّد البرامج، استخدِم
الأمر التالي لتعديل ذاكرة التخزين المؤقت DTB وDLKM بدلاً من فلاش ملف برمجي
vendor_boot.img
:
fastboot flash --dtb out/DEVICE/dist/dtb.img vendor_boot:dlkm out/slider/dist/initramfs.img
في ما يلي أوامر فلاش لهاتف 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 |
ملاحظة: إذا كان لديك جهاز تحكّم تسلسلي وتريد تفعيل ملفّات log التسلسلية، يكون الأمر على النحو التالي:مثال على الأمر للربط من المضيف: fastboot oem uart enable
fastboot oem uart config 3000000
screen -fn /dev/ttyUSB* 3000000
استعادة صور المصنع
لإعادة جهازك إلى إصدارات البرامج الرسمية، يمكنك استخدام flash.android.com.
نواة Pixel القديمة
كمرجع، يقدّم جدول فروع نواة Pixel القديمة فروع مستودع النواة لأجهزة Pixel 5 والإصدارات الأقدم. هذه الأجهزة غير متوافقة مع GKI.
فروع نواة Pixel القديمة
الجهاز | مسار الثنائي في شجرة AOSP | فروع المستودع |
---|---|---|
Pixel 5a (barbet) Pixel 4a (5G) (bramble) Pixel 5 (redfin) |
device/google/redbull-kernel | android-msm-redbull-4.19-android14-qpr3 |
Pixel 4a (sunfish) | device/google/sunfish-kernel | android-msm-sunfish-4.14-android13-qpr3 |
Pixel 4 (أحمر) Pixel 4 XL (أحمر مرجاني) |
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 (خطوط زرقاء) Pixel 3 XL (خطوط متقاطعة) |
device/google/crosshatch-kernel | android-msm-crosshatch-4.9-android12 |
Pixel 2 (سمك السلمون المرقط) Pixel 2 XL (سمك السلمون المرقط) |
device/google/wahoo-kernel | android-msm-wahoo-4.4-android10-qpr3 |
Pixel (sailfish) Pixel XL (marlin) |
device/google/marlin-kernel | android-msm-marlin-3.18-pie-qpr2 |