بناء نواة Pixel

يوفر هذا الدليل إرشادات خطوة بخطوة حول كيفية التنزيل والتجميع تثبيت نواة Pixel مُخصصة للتطوير. وبفضل الدليل الإرشادي العالمي، من الممكن الآن تحديث النواة بشكل مستقل عن إصدار نظام Android الأساسي. الخطوات التي يجب اتّباعها لا ينطبق هذا الإعداد إلا على أجهزة Pixel 6 والإصدارات الأحدث. وذلك لأن هاتف Pixel 5 تتطلّب الأجهزة السابقة تحديث وحدات النواة على القسم vendor، الذي يعتمد على إصدار نظام Android الأساسي لهذه الأجهزة تعمل لوحة مفاتيح GKI يتضمّن جدول فروع Pixel Kernel المتوافقة فرع بيان مستودع النواة لكل جهاز Pixel متوافق مع GKI. ارجع إلى قسم نواة Pixel القديمة لهواتف Pixel 5 فروع بيان النواة السابقة.

فروع Pixel kernel المتوافقة مع GKI
الجهاز مسار ثنائي في شجرة AOSP فروع المستودع نواة GKI
Pixel 9 Pro Fold (comet) الجهاز/google/comet-kernel android-gs-comet-6.1-android14-qpr3-d1 android14-6.1

Pixel 9 (tokay)
Pixel 9 Pro (caiman)
Pixel 9 Pro XL (komodo) | الجهاز/google/caimito-kernel | android-gs-caimito-6.1-android14-qpr3-d1 | android14-6.1 Pixel 8a (akita) | الجهاز/google/akita-kernel | android-gs-akita-5.15-android14-qpr3 | android14-5.15 Pixel 8 (shiba)
Pixel 8 Pro (هسكي) | الجهاز/google/shusky-kernel | android-gs-shusky-5.15-android14-qpr3 | android14-5.15 Pixel Fold (felix) | الجهاز/google/felix-kernel | android-gs-felix-5.10-android14-qpr3 | android13-5.10 Pixel Tablet (tangorpro) | الجهاز/google/tangorpro-kernel | android-gs-tangorpro-5.10-android14-qpr3 | android13-5.10 Pixel 7a (lynx) | الجهاز/google/lynx-kernel | android-gs-lynx-5.10-android14-qpr3 | android13-5.10 Pixel 7 (panther)
Pixel 7 Pro (cheetah) | الجهاز/google/pantah-kernel | android-gs-pantah-5.10-android14-qpr3 | android13-5.10 Pixel 6a (bluejay) | الجهاز/google/bluejay-kernel | android-gs-bluejay-5.10-android14-qpr3 | android13-5.10 Pixel 6 (oriole)
Pixel 6 Pro (raven) | الجهاز/google/raviole-kernel | android-gs-raviole-5.10-android14-qpr3 | android13-5.10

بالإضافة إلى النواة المتوافقة مع الشركة المصنّعة، تتوفّر أجهزة Pixel 6 وPixel 6 Pro متوافقة مع أغراض تطوير GKI فقط على نواة Android المشتركة الفروع المُدرَجة في نظام Android الأساسي المتوافق مع هواتف Pixel 6/6 Pro والنواة المتوافقة النُسخ. بسبب الاختلافات في واجهة برمجة التطبيقات (UAPI) للمورد بين برامج HALs لنظام Android الأساسي وبرامج تشغيل نواة Pixel، يوفر الجدول مجموعات التصميم المتوافقة.

تركيبات النواة والنظام الأساسي المتوافق مع هاتف Pixel 6/6 Pro المتوافق مع Android
فرع بيان Pixel Kernel فرع 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 والإصدارات الأحدث:

**الشكل 1:** رسم بياني انسيابي لتعديل النواة

فلاش الجهاز باستخدام flash.android.com

  1. انتقِل إلى flash.android.com.
  2. اختيار إصدار Android استنادًا إلى نظام Android الأساسي والنواة المتوافقة المجموعات.
  3. حدِّد الخيارات التالية:
    • مسح بيانات الجهاز
    • فرض الفلاش على جميع الأقسام
    • إيقاف إثبات الهوية
  4. اضغط على الزر تثبيت الإصدار لتثبيت الجهاز.

**الشكل 2:** مثال على محطة فلاش

تنزيل النواة وتجميعها

مزامنة مستودع النواة

شغّل الأوامر التالية لتنزيل رمز المصدر kernel. ارجع إلى نظام Android الأساسي والنواة المتوافقة مع نظام Pixel 6/6 Pro المتوافق مع Kernel جدول المجموعات لهواتف 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 للمصنع.
  1. يمكنك تنزيل نسخة المصنع المعتمدة لجهازك من https://developers.google.com/android/images.

  2. استخرِج vendor_boot.img:

    • تستخدم الطلبات التالية هاتف Pixel 6 Pro AP1A.240505.004 كمثال. استبدال باسم ملف zip.2 باسم ملف صورة المصنع التي قمت بتنزيلها.
      unzip raven-ap1a.240505.004-factory-9d783215.zip
    
      cd raven-ap1a.240505.004
    
      unzip image-raven-ap1a.240505.004.zip vendor_boot.img
    
  3. عليك فك ضغط vendor_boot.img للحصول على ذاكرة الوصول العشوائي (RAM) الخاصة بالمورّد.

      KERNEL_REPO_ROOT/tools/mkbootimg/unpack_bootimg.py --boot_img vendor_boot.img \
          --out vendor_boot_out
    
  4. انسخ ملف vendor-ramdisk-by-name/ramdisk_ المستخرَج إلى مستودع نواة Pixel.

    الجهاز DEVICE_RAMDISK_PATH
    Pixel 6 (oriole)
    Pixel 6 Pro (raven)
    preبناءs/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img
    Pixel 6a (bluejay) خاص/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)
preبناءs/boot-artifacts/ramdisks/vendor_ramdisk-oriole.img
Pixel 6a (bluejay) خاص/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)

في Android 13، تم استبدال النص البرمجي build.sh بنظام إصدار نواة جديد. يسمى Kleaf. بالنسبة إلى الأجهزة التي تستخدم الإصدار android13-5.15 والإصدارات الأحدث، اتّبِع الخطوات التالية: كيرنل (النواة) باستخدام Kleaf.

يجب تشغيل إصدار Kleaf على هاتفَي Pixel 6 وPixel 6 Pro المزوَّدَين بنواة android14 والإصدارات الأحدث. :

tools/bazel run --config=fast --config=stamp //private/google-modules/soc/gs:slider_dist

يجب تشغيل إصدار Kleaf على هاتفَي Pixel 6 وPixel 6 Pro المزوَّدَين بنواة android13-5.15. :

tools/bazel run --lto=thin //gs/google-modules/soc-modules:slider_dist

بالنسبة إلى جميع نواة Pixel الأخرى، يمكنك تشغيل نص build_DEVICE.sh البرمجي المتوفّر في KERNEL_REPO_ROOT. بالنسبة على سبيل المثال، لإنشاء نواة Pixel 6 في الفرع android-gs-raviole-5.10-android14، يمكنك تشغيل الأمر:

build_slider.sh

بشكل تلقائي، تستخدم النصوص البرمجية build_DEVICE.sh نواة GKI معدّة مسبقًا لتسريع عملية التصميم. إذا كنت ترغب في تعديل بالنواة الأساسية، ثم ضبط متغير البيئة BUILD_AOSP_KERNEL=1 لإنشاء بالنواة من المصادر المحلية بدلاً من ذلك.

لمزيد من التفاصيل حول نظام إصدار النواة (kernel) وكيفية تخصيص الإصدار، يمكنك الاطّلاع على مقالة Kleaf - إنشاء نواة Android باستخدام Bazel.

وميض صور النواة

ملاحظة: عليك إجراء ذلك في حال لم يسبق لك إيقاف ميزة إثبات الهوية. قبل وميض النواة المخصصة. وإليك الأمر للقيام بذلك:
fastboot oem disable-verification
تحذير: إذا كنت تومض نواة مخصصة أعلى على إصدار نظام أساسي، فقد تحتاج إلى حجب بيانات جهازك إذا توفرت الرجوع إلى إصدار سابق لمستوى التصحيح (SPL) المرتبط بالنواة الجديدة. وتؤدي هذه العملية إلى محو جميع بياناتك الشخصية. احرص على الاحتفاظ بنسخة احتياطية من بياناتك قبل مسح البيانات.
fastboot -w

لإضافة وميض صور النواة، شغِّل الأمر fastboot flash لكل نواة. تم إدراجه لجهازك. في الأقسام الديناميكية، يجب إعادة تشغيل الجهاز. في وضع fastbootd قبل وميض.

الجهاز أقسام النواة
Pixel 6 (oriole)
Pixel 6 Pro (رانيا)
Pixel 6a (bluejay)
أحذية طويلة
dtbo
vendor_boot
vendor_dlkm (قسم ديناميكي)
Pixel 8 (shiba)
Pixel 8 Pro (هسكي)
Pixel Fold (felix)
Pixel الجهاز اللوحي (tangorpro)
Pixel 7a (lynx)
Pixel 7 (panther)
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.

نواات Pixel القديمة

يمكنك الرجوع إلى فروع نواة Pixel القديمة فروع مستودع النواة لأجهزة Pixel 5 والإصدارات الأقدم. هذه أجهزة غير متوافقة مع GKI.

فروع Pixel kernel القديمة
الجهاز مسار ثنائي في شجرة AOSP فروع المستودع
Pixel 5a (barbet)
Pixel 4a (5G) (bramble)
Pixel 5 (redfin)
الجهاز/google/redbull-kernel android-msm-redbull-4.19-android14-qpr3
Pixel 4a (سمكة الشمس) جهاز/google/sunfish-kernel android-msm-sunfish-4.14-android13-qpr3
Pixel 4 (flame)
Pixel 4 XL (مرجاني)
جهاز/google/نواة مرجانية android-msm-coral-4.14-android13
Pixel 3a (sargo)
Pixel 3a XL (bonito)
الجهاز/google/bonito-kernel android-msm-bonito-4.9-android12L
Pixel 3 (الخط الأزرق)
Pixel 3 XL (تظليل متقاطع)
الجهاز/google/crosshatch-kernel android-msm-crosshatch-4.9-android12
Pixel 2 (عين الحائط)
Pixel 2 XL (تايمن)
الجهاز/google/wahoo-kernel android-msm-wahoo-4.4-android10-qpr3
Pixel (marlin)
Pixel XL (marlin)
الجهاز/google/marlin-kernel android-msm-marlin-3.18-pie-qpr2