يقدّم هذا الدليل تعليمات مفصّلة حول كيفية تنزيل نواة 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 مع فروع نواة Android الشائعة المضمَّنة في جدول مجموعات نظام التشغيل Android والنواة المتوافقة مع هاتفَي Pixel 6 وPixel 6 Pro لأغراض تطوير GKI فقط. بسبب الاختلافات في واجهة برمجة التطبيقات الموحّدة (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 والإصدارات الأحدث:
تثبيت البرنامج على الجهاز باستخدام flash.android.com
- انتقِل إلى flash.android.com.
- اختَر إصدار Android استنادًا إلى مجموعات نظام التشغيل Android والنواة المتوافقة.
- بالنسبة إلى
android-latest-release، اختَر "العودة إلى الإصدار العلني" أو Canary أو الإصدار التجريبي.
- بالنسبة إلى
- حدِّد الخيارات التالية:
- مسح بيانات الجهاز
- فرض تنزيل جميع الأقسام
- إيقاف ميزة "إثبات ملكية الحساب"
- انقر على الزر تثبيت الإصدار لتثبيت البرنامج على الجهاز.
مزامنة مستودع النواة
نفِّذ الأوامر التالية لتنزيل رمز مصدر النواة. راجِع جدول مجموعات نظام التشغيل 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، يمكنك تنزيل DTB وDLKM ramdisk مباشرةً على القسم
vendor_boot. يجب ترقية حزمة أدوات platform-tools لنظام التشغيل Android إلى الإصدار 36.0.0 أو إصدار أحدث لاستخدام هذا الخيار. نفِّذ الأمر التالي لإجراء ذلك:$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platform-tools"اتّبِع التعليمات لتثبيت 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.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
لتمرير صور النواة، شغِّل الأمر 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 |