يوفّر هذا الدليل تعليمات مفصّلة حول كيفية تنزيل وترجمة و
فلاش نواة 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.8) | AP1A.240505.004 (11583682) | نعم |
android14-gs-pixel-6.1 | android14-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 استنادًا إلى مجموعات 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 الذي تم تثبيته على
الجهاز. هناك بعض الخيارات التي يمكنك اتّباعها.
الخيار 1) استخراج صورة ذاكرة التخزين المؤقت للجهاز من صورة المصنع لهواتف 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
الخيار 2) نسخ vendor_ramdisk
من مستودع نظام Android الأساسي المُنشئ محليًا
الجهاز | 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 ANDROID_ROOT/out/target/product/DEVICE/vendor_ramdisk-debug.img \
KERNEL_REPO_ROOT/DEVICE_RAMDISK_PATH/vendor_ramdisk-DEVICE.img
تجميع النواة (Kleaf)
في الإصدار 13 من Android، تم استبدال النص البرمجي build.sh
بنظام جديد لإنشاء النواة
يُعرف باسم Kleaf. بالنسبة إلى الأجهزة التي تستخدم الإصدار android13-5.15
والإصدارات الأحدث، يجب إنشاء
النواة باستخدام Kleaf.
بالنسبة إلى هاتفَي Pixel 6 وPixel 6 Pro اللذَين يستخدمان نواة android14
والإصدارات الأحدث، يمكنك تنفيذ الأمر التالي لإنشاء Kleaf:
tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist
بالنسبة إلى هواتف 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 على 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 |