يوفّر هذا الدليل تعليمات مفصّلة حول كيفية تنزيل وترجمة و
فلاش نواة Pixel مخصّصة لأغراض التطوير. بفضل GKI، أصبح من الممكن الآن
تحديث النواة بشكل مستقل عن إصدار نظام Android الأساسي. لا تنطبق هذه الخطوات
إلا على أجهزة Pixel 6 والإصدارات الأحدث. يرجع ذلك إلى أنّ هاتف Pixel 5 و
الأجهزة الأقدم تتطلّب تحديث وحدات النواة في قسم vendor
،
الذي يعتمد على إصدار نظام التشغيل Android لهذه الأجهزة. يتضمّن جدول فروع Pixel kernel المتوافقة مع GKI فرع بيان مستودع النواة لكل جهاز 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) |
device/google/caimito-kernel | android-gs-caimito-6.1-android14-qpr3-d1 | android14-6.1 |
Pixel 8a (akita) | device/google/akita-kernel | android-gs-akita-5.15-android14-qpr3 | android14-5.15 |
Pixel 8 (سلالة شيبا) Pixel 8 Pro (سلالة كلب الهاسكي) |
الجهاز/google/shusky-kernel | android-gs-shusky-5.15-android14-qpr3 | android14-5.15 |
Pixel Fold (felix) | device/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) | device/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) بين واجهات HAL لنظام Android الأساسي وبرامج تشغيل نواة Pixel، يقدّم الجدول مجموعات الإصدارات المتوافقة.
تركيبات النواة والنظام الأساسي المتوافق مع هاتف Pixel 6/6 Pro المتوافق مع Android
فرع بيان نواة Pixel | فرع 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 استنادًا إلى مجموعات Android Platform وKernel المتوافقة .
- حدِّد الخيارات التالية:
- مسح بيانات الجهاز
- فرض فلاش لجميع الأقسام
- إيقاف إثبات الملكية
- اضغط على الزر تثبيت الإصدار لفلاش الجهاز.
تنزيل النواة وتجميعها
مزامنة مستودع النواة
قم بتشغيل الأوامر التالية لتنزيل رمز المصدر 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
في مستودع ملف kernel لكي يتطابق مع إصدار نظام التشغيل 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)prebuilts/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) |
prebuilts/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
. في معظم الحالات، يجب أن يكون DEVICE
هو الاسم الرمزي الذي يتطابق مع اسم الرمز المستخدَم في عمود المسار الثنائي في شجرة AOSP ضمن الجدول فروع Pixel kernel المتوافقة مع GKI. يمكن أن يكون الاسم الرمزي لجهاز واحد، مثل "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
لإنشاء
النواة من المصادر المحلية بدلاً من ذلك.
لمزيد من التفاصيل حول نظام إصدار النواة (kernel) وكيفية تخصيص البنية، يُرجى الرجوع إلى Kleaf - إنشاء نواة Android باستخدام 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_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 |
ملاحظة: إذا كان لديك جهاز تحكّم تسلسلي وتريد تفعيل ملفّات log التسلسلية، يكون الأمر على النحو التالي:مثال على أمر للاتصال من المضيف: 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) |
device/google/redbull-kernel | android-msm-redbull-4.19-android14-qpr3 |
Pixel 4a (سمكة الشمس) | الجهاز/google/sunfish-kernel | android-msm-sunfish-4.14-android13-qpr3 |
Pixel 4 (أحمر) 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 (خطوط متقاطعة) |
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 |