يقدّم هذا الدليل تعليمات مفصّلة حول كيفية تنزيل نواة Pixel مخصَّصة وتجميعها وتفكيكها من أجل تطويرها. بفضل GKI، أصبح من الممكن الآن
تحديث النواة بشكل مستقل عن إصدار نظام Android الأساسي. لا تنطبق هذه الخطوات
إلا على أجهزة Pixel 6 والإصدارات الأحدث. والسبب في ذلك هو أنّ هواتف Pixel 5 والأجهزة الأقدم تتطلّب تحديث وحدات النواة في قسم vendor
، والذي يعتمد على إصدار نظام Android الأساسي لهذه الأجهزة. يشتمل جدول فروع Kernel المتوافقة مع GKI على فرع بيان مستودع النواة لكل جهاز Pixel متوافق مع GKI. راجِع قسم Legacy Pixel Kernels الخاص بفرعَي بيان Pixel 5 والنواة السابقة.
فروع Pixel kernel المتوافقة مع GKI
الجهاز | مسار ثنائي في شجرة AOSP | فروع المستودع | نواة GKI |
---|---|---|---|
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 Common المضمّنة في جدول مجموعات النواة (Kernel) ونظام Android الأساسي Pixel 6/6 Pro المتوافقَين. نظرًا لاختلافات واجهة برمجة التطبيقات UAPI التابعة للمورِّد بين HALs لنظام Android الأساسي وبرامج تشغيل Pixel kernel، يوفر الجدول مجموعات التصميم المتوافقة.
تركيبات النواة والنظام الأساسي المتوافق مع هاتف 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 والإصدارات الأحدث:
فلاش الجهاز باستخدام flash.android.com
- انتقِل إلى flash.android.com.
- اختَر إصدار Android استنادًا إلى مجموعات Kernel ونظام Android الأساسي المتوافقة.
- حدِّد الخيارات التالية:
- مسح بيانات الجهاز
- فرض الفلاش على جميع الأقسام
- إيقاف إثبات الهوية
- اضغط على الزر تثبيت الإصدار لتثبيت الجهاز.
تنزيل النواة وتجميعها
مزامنة مستودع النواة
شغّل الأوامر التالية لتنزيل رمز المصدر 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
في مستودع النواة ليتطابق مع إصدار نظام 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
للحصول على ذاكرة الوصول العشوائي (RAM) الخاصة بالمورّد.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)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.
على هاتفَي 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. على سبيل المثال، لإنشاء نواة 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
تحذير: في حال تثبيت kernel مخصَّص في أعلى إصدار على النظام الأساسي، قد تحتاج إلى حجب بيانات جهازك إذا كان هناك إصدار سابق من مستوى تصحيح الأمان (SPL) مرتبط بالنواة الجديدة. وتؤدي هذه العملية إلى محو جميع بياناتك الشخصية. تأكد من عمل نسخ احتياطية من بياناتك قبل المسح.fastboot -w
لتثبيت صور النواة (kernel) أم لا، شغِّل الأمر fastboot flash
لكل قسم kernel مدرج في جهازك. في الأقسام الديناميكية، يجب إعادة التشغيل
في وضع fastbootd
قبل بدء الفلاش.
الجهاز | أقسام النواة |
---|---|
Pixel 6
(oriole) Pixel 6 Pro (raven) Pixel 6a (bluejay) |
Boot 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 (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 |
ملاحظة: إذا كان لديك مفتاح إلكتروني تسلسلي وأردت تفعيل السجلّات التسلسلية، يمكنك استخدام الأمر التالي:مثال على أمر للاتصال من المضيف: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 |