يقدّم هذا الدليل تعليمات مفصّلة حول كيفية تنزيل نواة Pixel مخصّصة وتجميعها وتثبيتها لتطوير التطبيقات. وبفضل GKI، أصبح بإمكانك الآن تحديث النواة بشكل مستقل عن إصدار منصة Android. لا تنطبق هذه الخطوات إلا على هواتف Pixel 6 والإصدارات الأحدث. ويرجع ذلك إلى أنّ هواتف Pixel 5 والإصدارات الأقدم تتطلّب تحديث وحدات النواة على قسم vendor
، وهو ما يعتمد على إصدار منصة Android لهذه الأجهزة. يتضمّن جدول فروع نواة Pixel المتوافقة مع GKI فرع بيان مستودع النواة لكل جهاز Pixel متوافق مع GKI. راجِع قسم نواة Pixel القديمة للاطّلاع على فروع بيان النواة في هواتف Pixel 5 والإصدارات الأقدم.
فروع نواة Pixel المتوافقة مع GKI
جهاز | فروع المستودع | نواة GKI |
---|---|---|
Pixel 9a (tegu) | android-gs-tegu-6.1-android16 | android14-6.1 |
Pixel 9 Pro Fold (الاسم الرمزي: comet) | android-gs-comet-6.1-android16 | android14-6.1 |
Pixel 9 (tokay) Pixel 9 Pro (caiman) Pixel 9 Pro XL (komodo) |
android-gs-caimito-6.1-android16 | android14-6.1 |
Pixel 8a (akita) | android-gs-akita-6.1-android16 | android14-6.1 |
Pixel 8 (shiba) Pixel 8 Pro (husky) |
android-gs-shusky-6.1-android16 | android14-6.1 |
Pixel Fold (felix) | android-gs-felix-6.1-android16 | android14-6.1 |
Pixel Tablet (tangorpro) | android-gs-tangorpro-6.1-android16 | android14-6.1 |
Pixel 7a (lynx) | android-gs-lynx-6.1-android16 | android14-6.1 |
Pixel 7 (الاسم الرمزي: panther) Pixel 7 Pro (الاسم الرمزي: cheetah) |
android-gs-pantah-6.1-android16 | android14-6.1 |
Pixel 6a (bluejay) | android-gs-bluejay-6.1-android16 | android14-6.1 |
Pixel 6 (oriole) Pixel 6 Pro (raven) |
android-gs-raviole-6.1-android16 | android14-6.1 |
بالإضافة إلى النواة المتوافقة مع إعدادات المصنع، يتوافق هاتفا Pixel 6 وPixel 6 Pro مع أغراض تطوير GKI فقط على فروع نواة Android الشائعة المضمَّنة في جدول مجموعات نظام التشغيل Android والنواة المتوافقة مع هاتفَي Pixel 6 وPixel 6 Pro. نظرًا إلى الاختلافات في واجهة برمجة التطبيقات الموحّدة للمورّد (UAPI) بين طبقات تجريد الأجهزة (HAL) لنظام Android وبرامج تشغيل نواة Pixel، يقدّم الجدول مجموعات الإصدارات المتوافقة.
مجموعات نظام التشغيل Android ونواة النظام المتوافقة مع هاتفَي Pixel 6 وPixel 6 Pro
فرع بيان نواة Pixel | فرع GKI | إنشاء إصدار Android |
---|---|---|
gs-android-gs-raviole-mainline | android-mainline | android-latest-release |
android16-6.12-gs101 | android16-6.12 | android-latest-release |
gs-android13-gs-raviole-5.15 | android13-5.15 | TQ1A.230205.002 (9471150) |
تحضير جهاز Pixel
يوضّح مخطط التدفق التالي عملية تعديل النواة على هواتف Pixel 6 والإصدارات الأحدث:
تثبيت البرنامج على الجهاز باستخدام flash.android.com
- انتقِل إلى flash.android.com.
- اختَر إصدار Android استنادًا إلى مجموعات نظام التشغيل Android ونواة النظام المتوافقة.
- حدِّد الخيارات التالية:
- مسح بيانات الجهاز
- فرض تثبيت جميع الأقسام
- إيقاف ميزة "إثبات ملكية الحساب"
- انقر على الزر تثبيت الإصدار لتثبيت البرنامج على الجهاز.
تنزيل النواة وتجميعها
مزامنة مستودع النواة
نفِّذ الأوامر التالية لتنزيل رمز مصدر النواة. راجِع جدول مجموعات نظام التشغيل Android والنواة المتوافقة مع هاتفَي Pixel 6 وPixel 6 Pro في Pixel KERNEL_MANIFEST_BRANCH.
repo init -u https://android.googlesource.com/kernel/manifest -b KERNEL_MANIFEST_BRANCH
repo sync -c --no-tags
تعديل ramdisk الخاص بمقدّم الخدمة
عدِّل الملف vendor_ramdisk-DEVICE.img
في مستودع النواة ليتطابق مع إصدار منصة Android الذي يتم تثبيته على الجهاز. هناك خياران لتعديل ملف vendor_ramdisk-DEVICE.img
. استخدِم الخيار (1) إذا كنت تستخدم الإصدار Android 15
QPR2 (BP11.241025.006) أو الإصدارات الأحدث. وفي ما عدا ذلك، استخدِم الخيار (2).
الخيار 1) تعديل أجزاء DTB وDLKM ramdisk فقط من قسم 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) استخراج صورة ramdisk الخاصة بالمورّد من صورة المصنع على Pixel
نزِّل صورة النظام المتوافقة مع جهازك من https://developers.google.com/android/images.
استخرِج
vendor_boot.img
:تستخدِم الأوامر التالية الإصدار AP1A.240505.004 من Pixel 6 Pro كمثال. استبدِل اسم ملف 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)
في نظام التشغيل Android 13، تم استبدال البرنامج النصي build.sh
بنظام جديد لإنشاء النواة يُعرف باسم Kleaf. بالنسبة إلى الأجهزة التي تستخدم الإصدار android13-5.15
والإصدارات الأحدث، يجب إنشاء النواة باستخدام Kleaf.
لتسهيل الأمر، يمكنك تشغيل النص البرمجي build_DEVICE.sh
الموجود في KERNEL_REPO_ROOT
. في معظم الحالات، يجب أن يكون DEVICE
هو الاسم الرمزي، والذي يمكن أن يكون الاسم الرمزي لجهاز واحد، مثل "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 - Building Android Kernels with Bazel.
تثبيت صور النواة
ملاحظة: إذا لم تكن قد أوقفت عملية التحقّق، عليك إجراء ذلك قبل تثبيت نواة مخصّصة. إليك الأمر الذي يجب استخدامه:fastboot oem disable-verification
تحذير: إذا كنت بصدد تثبيت نواة مخصّصة على إصدار من النظام الأساسي، قد تحتاج إلى محو بيانات جهازك إذا كان هناك تخفيض في مستوى رمز تصحيح الأمان (SPL) مرتبط بالنواة الجديدة. تؤدي هذه العملية إلى محو جميع بياناتك الشخصية. احرص على الاحتفاظ بنسخة احتياطية من بياناتك قبل محوها.fastboot -w
لتمرير صور النواة، شغِّل الأمر fastboot flash
لكل قسم من أقسام النواة المدرَجة لجهازك. بالنسبة إلى الأقسام الديناميكية، عليك إعادة التشغيل
في وضع fastbootd
قبل التثبيت.
جهاز | أقسام النواة |
---|---|
Pixel 6
(oriole) Pixel 6 Pro (raven) Pixel 6a (bluejay) |
boot dtbo vendor_boot أو vendor_boot:dlkm 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 (dynamic partition) system_dlkm (dynamic partition) |
في ما يلي أوامر التثبيت السريع لهاتف Pixel 6 على android-mainline
:
fastboot flash boot out/slider/dist/boot.img
fastboot flash dtbo out/slider/dist/dtbo.img
fastboot flash --dtb out/slider/dist/dtb.img vendor_boot:dlkm out/slider/dist/initramfs.img
fastboot reboot fastboot
fastboot flash vendor_dlkm out/slider/dist/vendor_dlkm.img
بالنسبة إلى هواتف Pixel 6 وPixel 6 Pro وPixel 6a، إذا عدّلت vendor_ramdisk
في القسم تعديل ramdisk الخاص بالمورّد، استخدِم الأمر التالي بدلاً من ذلك لتعديل القسم vendor_boot
:
fastboot flash vendor_boot out/slider/dist/vendor_boot.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 القديمة
جهاز | المسار الثنائي في شجرة 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 (الاسم الرمزي: blueline) Pixel 3 XL (الاسم الرمزي: crosshatch) |
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 |