يقدّم هذا الدليل تعليمات مفصَّلة حول كيفية تنزيل وتجميع وتثبيت نواة Pixel مخصّصة لأغراض التطوير. بفضل GKI، أصبح من الممكن الآن تحديث النواة بشكل مستقل عن إصدار نظام Android الأساسي. لا تنطبق هذه الخطوات إلا على هواتف Pixel 6 والإصدارات الأحدث. ويرجع ذلك إلى أنّ هواتف Pixel 5 والإصدارات الأقدم تتطلّب تحديث وحدات النواة على قسم vendor، وهو ما يعتمد على إصدار نظام Android الأساسي لهذه الأجهزة. يتضمّن جدول فروع نواة Pixel المتوافقة مع GKI فرع بيان مستودع النواة لكل جهاز Pixel متوافق مع GKI. يمكنك الاطّلاع على نواة Pixel القديمة لمعرفة فروع بيان نواة هواتف Pixel 5 والإصدارات الأقدم.
يتوافق هاتفَي Pixel 6 وPixel 6 Pro أيضًا مع إصدار Linux الأساسي، ويمكنهما بدء التشغيل في موجه أوامر الجهاز باستخدام برامج التشغيل الأساسية فقط. لمزيد من التفاصيل، يمكنك الاطّلاع على إنشاء نواة Pixel الرئيسية وتثبيتها.
إنشاء وتثبيت نواة GKI Pixel
يقدّم هذا القسم خطوات مزامنة فروع النواة المتوافقة مع GKI وإنشائها وتثبيتها. يوضّح الجدول التالي ربطًا بين أجهزة Pixel المتوافقة وفروع مستودع نواة الإصدارات المتاحة.
فروع نواة 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 |
| gs-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 والإصدارات الأحدث:
تثبيت ذاكرة ROM على الجهاز باستخدام flash.android.com
- انتقِل إلى flash.android.com.
- اختَر إصدار Android استنادًا إلى مجموعات نظام التشغيل Android والنواة المتوافقة.
- بالنسبة إلى
android-latest-release، اختَر "العودة إلى الإصدار العلني" أو Canary أو الإصدار التجريبي.
- بالنسبة إلى
- حدِّد الخيارات التالية:
- حذف بيانات الجهاز
- فرض تثبيت ذاكرة ROM لجميع الأقسام
- إيقاف ميزة "تأكيد الحساب"
- انقر على الزر تثبيت ذاكرة ROM لتثبيت ذاكرة ROM على الجهاز.
مزامنة مستودع النواة
نفِّذ الأوامر التالية لتنزيل رمز مصدر النواة. راجِع جدول مجموعات نظام التشغيل Android والنواة المتوافقة مع هاتفَي Pixel 6 وPixel 6 Pro لمعرفة معلومات عن KERNEL_MANIFEST_BRANCH في هواتف Pixel.
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
اعتبارًا من الإصدار 35.0.2-12583183 من Fastboot، يمكنك تثبيت ذاكرة ROM لـ DTB وDLKM ramdisk مباشرةً على القسم
vendor_boot. يجب ترقية أدوات النظام الأساسي لنظام Android إلى الإصدار 36.0.0 أو إصدار أحدث لاستخدام هذا الخيار. نفِّذ الأمر التالي لإجراء ذلك:$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platform-tools"اتّبِع التعليمات لتثبيت ذاكرة ROM لـ DTB و
vendor_boot:dlkmفي تثبيت ذاكرة ROM لصور النواة.الخيار 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.zipcd raven-ap1a.240505.004unzip 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
تجميع النواة
في نظام التشغيل 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
لتثبيت ذاكرة ROM لصور النواة، شغِّل الأمر fastboot flash لكل قسم من أقسام النواة المُدرَجة لجهازك. بالنسبة إلى الأقسام الديناميكية، عليك إعادة التشغيل
في وضع fastbootd قبل التثبيت.
| الجهاز | أقسام النواة |
|---|---|
| Pixel 6 (oriole) Pixel 6 Pro (raven) Pixel 6a (bluejay) |
boot dtbo vendor_boot أو vendor_boot:dlkm vendor_dlkm (قسم ديناميكي) |
| Pixel 9 (tegu) Pixel 9 Pro Fold (comet) Pixel 9 (tokay) Pixel 9 Pro (caiman) Pixel 9 Pro XL (komodo) 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 في تعديل vendor 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 enablefastboot oem uart config 3000000screen -fn /dev/ttyUSB* 3000000
استعادة صور النظام الأصلية
لاستعادة صور المصنع على جهازك، يمكنك استخدام flash.android.com.
إنشاء وتثبيت نواة Pixel الأصلية
بما أنّ هاتفَي Pixel 6 وPixel 6 Pro متوافقان مع نواة Linux الرئيسية، يمكنك استخدام android-mainline مع برامج التشغيل الرئيسية فقط لتشغيل الجهاز في وضع shell والحصول على مطالبة بتطوير النواة. يقدّم هذا القسم خطوات مزامنة نواة هاتفَي Pixel 6 وPixel 6 Pro وإنشائها وتثبيتها من android-mainline.
اتّبِع الخطوات التالية للبدء.
- جهِّز جهازك باتّباع الخطوات الواردة في تجهيز جهاز Pixel.
- يمكنك مزامنة فرع بيان نواة
common-android-mainlineباتّباع الخطوات الواردة في مزامنة مستودع النواة. يتم تحديد إعدادات هدف إنشاء Kleaf ضمن المسار
KERNEL_REPO_ROOT/devices/google/raviole. لتجميعraviole_upstreamالإصدار المستهدف، شغِّل أمر Kleaf التالي:tools/bazel run //devices/google/raviole:raviole_upstream_distوكما هو الحال مع نُسخ الإنتاج من النواة، عليك إيقاف عملية التحقّق ومحو بيانات جهازك عند تثبيت نسخة مخصّصة من النواة فوق صور Android الأصلية. يُرجى الرجوع إلى الملاحظات في تثبيت صور النواة لمزيد من التفاصيل.
في وضع fastboot، نفِّذ الأوامر التالية لتثبيت صور النواة:
fastboot flash boot out/raviole_upstream/dist/boot.img fastboot flash dtbo out/raviole_upstream/dist/dtbo.img fastboot flash --dtb out/raviole_upstream/dist/dtb.img \ vendor_boot:dlkm out/raviole_upstream/dist/initramfs.imgللوصول إلى موجه أوامر shell على الجهاز، يمكنك إعادة التشغيل إلى وضع الاسترداد من خلال تنفيذ الأمر التالي:
fastboot reboot recoveryافتح وحدة تحكّم الجهاز عن طريق تنفيذ الأمر
adb shell. يمكن أيضًا استخدام إذن الوصول إلى الجذر من خلال تنفيذ الأمرadb root.
نواة 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 (walleye) Pixel 2 XL (taimen) |
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 |