صور النظام العامة

صورة النظام العامة (GSI) هي صورة نظام تتضمن عمليات ضبط معدّلة. لأجهزة Android. إنّها عملية تنفيذ حصرية على Android باستخدام رمز مشروع مفتوح المصدر لنظام Android (AOSP) غير معدَّل يمكن لأي يمكن تشغيل جهاز يعمل بالإصدار 9 من نظام التشغيل Android أو الإصدارات الأحدث بنجاح.

تُستخدم خدمة GSI لتشغيل اختبارات VTS وCTS-on-GSI. صورة النظام يتم استبدال جهاز Android بنظام GSI ثم يتم اختباره باستخدام حزمة اختبار المورّد (VTS) مجموعة أدوات اختبار التوافق (CTS)للضمان أنّ الجهاز ينفّذ واجهات المورّد بشكل صحيح باستخدام أحدث إصدار من Android.

لبدء استخدام "إحصاءات Google (GSI)، يُرجى مراجعة الأقسام التالية للحصول على تفاصيل عمليات ضبط "GSI" (ومسموح بها) التباين) والأنواع. عندما تكون مستعدًا لاستخدام GSI، تنزيل إصدار GSI وإصداره لجهازك ثم تحديث GSI إلى نظام الخاص بك.

إعدادات GSI وتبايناتها

يتضمن نظام GSI الحالي من Android الإعدادات التالية:

يتضمن نظام GSI الحالي من Android الاختلافات الرئيسية التالية:

  • بنية وحدة المعالجة المركزية (CPU) التوافق مع التعليمات المختلفة لوحدة المعالجة المركزية (CPU) (ARM أو x86 أو غير ذلك) وبت وحدة المعالجة المركزية (CPU) (32 بت أو 64 بت).

أهداف GSI لاختبارات الامتثال لـ Treble

ويتم تحديد مؤشر GSI المستخدَم لاختبار الامتثال من خلال إصدار Android الذي الذي يبدأ استخدامه للجهاز.

نوع الجهاز إنشاء الهدف
إطلاق الأجهزة التي تعمل بنظام التشغيل Android 14 gsi_$arch-user (تم التوقيع)
إطلاق الأجهزة التي تعمل بنظام التشغيل Android 13 gsi_$arch-user (تم التوقيع)
إطلاق الأجهزة التي تعمل بنظام التشغيل Android 12L gsi_$arch-user (تم التوقيع)
إطلاق الأجهزة التي تعمل بنظام التشغيل Android 12 gsi_$arch-user (تم التوقيع)
إطلاق الأجهزة التي تعمل بنظام التشغيل Android 11 gsi_$arch-user (تم التوقيع)

تستند جميع "خدمات الموقع الإلكتروني من Google" إلى قاعدة الرموز البرمجية لنظام Android 12، لكل بنية وحدة معالجة مركزية (CPU) ثنائي GSI مقابل (انظر قائمة خيارات المستهدفة في إنشاء خدمات الموقع الجغرافي من Google).

تغييرات GSI في Android 12

الأجهزة التي تعمل بالإصدار 12 من نظام التشغيل Android أو التي تعمل بالإصدار الجديد منه يجب أن تستخدم نظام التشغيل Android 12 مؤسسة GSI لاختبار الامتثال. ويتضمن ذلك التغييرات الرئيسية التالية من مؤشرات الأداء العامة السابقة:

  • اسم الاستهداف: اسم هدف GSI للامتثال تم تغيير عدد الاختبارات إلى gsi_$arch. GSI مع اسم الهدف يتم الاحتفاظ بـ aosp_$arch لمطوّري تطبيقات Android. خطة الاختبار تم أيضًا تخفيض CTS-on-GSI لاختبار واجهة المورّد.
  • تم إيقاف نظام GSI القديم. الإصدار 12 من نظام التشغيل GSI الحلول التي تتناسب مع الأجهزة التي تعمل بالإصدار 8.0 أو 8.1 من نظام التشغيل Android والتي لم يتم تعريفها بشكل كامل.
  • Userdebug SEPolicy. رقم gsi_$archGSI يحتوي على userdebug_plat_sepolicy.cil. عند الوميض vendor_boot-debug.img أو السمة الخاصة بالمُصنّع الأصلي سيتم تحميل boot-debug.img من خلال /system/bin/init. userdebug_plat_sepolicy.cil من GSI system.img المراجِع اختبار VTS باستخدام تصحيح أخطاء Ramdisk لمعرفة التفاصيل.

تغييرات GSI في Android 11

الأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android أو التي تعمل بالإصدار الجديد منه يجب أن تستخدم نظام التشغيل Android 11 GSI لاختبار الامتثال. ويتضمن ذلك التغييرات الرئيسية التالية من مؤشرات الأداء العامة السابقة:

  • system_ext content (محتوى_system_ext) نظام التشغيل Android يحدد الرقم 11 القسم الجديد system_ext. تضع GSI محتوى إضافة النظام ضمن المجلد system/system_ext
  • APEX: تحتوي أداة GSI على واجهات APK مسطَّحة ومضغوطة. يتم تحديد الأداة التي يمكن استخدامها من خلال خاصية النظام ro.apex.updatable في قسم البائع في وقت التشغيل. المراجِع جارٍ ضبط النظام لإتاحة تحديثات APEX لمعرفة التفاصيل.

تغييرات GSI في Android 10

الأجهزة التي تعمل بنظام التشغيل Android 10 أو المُحدَّثة له يجب أن تستخدم نظام التشغيل Android 10 مؤشرات من Google لاختبار الامتثال. ويتضمن ذلك التغييرات الرئيسية التالية من مؤشرات الأداء العامة السابقة:

  • بنية المستخدم: GSI لديها إصدار مستخدم من Android 10- في نظام Android 10، يمكن استخدام GSI لإصدار المستخدم في اختبار امتثال CTS-on-GSI/VTS. المراجِع اختبار VTS باستخدام Debug Ramdisk لمزيد من التفاصيل.
  • تنسيق غير معدَّل: الموقع الجغرافي العالمي (GSI) مع استهدافات تم تصميم "aosp_$arch" بتنسيق غير موزَّع. يمكنك استخدام img2simg لتحويل تنسيق GSI غير موزع إلى تنسيق متفرق إذا اللازمة.
  • النظام كجذر: هدف إصدار GSI القديم الذي يحمل اسم تم إيقاف "aosp_$arch_a" تدريجيًا. بالنسبة إلى الأجهزة التي تمت ترقيتها من Android 8 أو 8.1 إلى Android 10 مع RAMdisk غير النظام كجذر، استخدم aosp_$arch_ab GSI القديم. init الذي تمت ترقيته في ramdisk يتوافق مع نظام المصنّع الأصلي للجهاز.img بتخطيط النظام كجذر.
  • تحقَّق من التشغيل. وباستخدام GSI، ما عليك سوى فتح قفل الجهاز. ليس من الضروري إيقاف التحقق من التشغيل.

تغييرات GSI في Android 9

الأجهزة التي تعمل بنظام التشغيل Android 9 أو التي تعمل بنظام التشغيل Android الأحدث منها يجب أن تستخدم نظام التشغيل Android. 9 مؤشرات Google العامة لاختبار الامتثال. ويتضمن ذلك التغييرات الرئيسية التالية من مؤشرات الأداء العامة السابقة:

  • يدمج GSI والمحاكي. يتم إنشاء "خدمات الموقع الجغرافي من Google" من النظام صور لمنتجات المحاكاة، مثل aosp_arm64 و aosp_x86
  • النظام كجذر: في الإصدارات السابقة من Android، الأجهزة التي لا تدعم تحديثات A/B، يمكن تثبيت صورة النظام ضمن دليل /system. في نظام Android 9، يتم تثبيت جذر صورة النظام باعتباره جذر الجهاز.
  • واجهة برنامج تثبيت 64 بت. في الإصدار 8.x من نظام التشغيل Android، وإحصاءات المواقع الجغرافية 32 بت استخدم واجهة الربط 32 بت. الإصدار 9 من نظام التشغيل Android لا يدعم واجهة المجلد 32 بت، لذا فإن كلاً من GISI إصدار 32 بت تستخدم Google Analytics لنظام التشغيل 64 بت واجهة أداة الربط 64 بت.
  • فرض سياسة VNDK: في الإصدار Android 8.1، كانت ميزة VNDK اختيارية. بدءًا من نظام التشغيل Android 9، تكون VNDK إلزامية، لذلك يجب ضبط BOARD_VNDK_VERSION.
  • خاصية نظام متوافقة: جهاز Android 9 يتيح التحقق من الوصول إلى جهاز متوافق خاصية النظام (PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true).

الإصدار 9 من نظام التشغيل Android تغييرات رئيسية

في الإصدارات السابقة من نظام التشغيل Android، كانت الأجهزة التي تشغِّل Keymaster 3 أو أقل مطلوبة للتحقق من أن معلومات الإصدار (ro.build.version.release و ro.build.version.security_patch) التي أبلغ عنها نظام التشغيل تطابقت مع معلومات الإصدار التي تم الإبلاغ عنها بواسطة برنامج الإقلاع. كانت مثل هذه المعلومات يتم الحصول عليه عادةً من عنوان صورة التشغيل.

تم تغيير هذا الشرط في الإصدار 9 من نظام Android والإصدارات الأحدث لتفعيل البائعين لتشغيل GSI. على وجه التحديد، يجب ألا تُجري Keymaster عملية إثبات لأنّ معلومات الإصدار التي أبلغَت عنها وكالة GSI قد لا تتطابق مع معلومات الإصدار تم الإبلاغ عنه بواسطة برنامج الإقلاع لدى البائع. بالنسبة إلى الأجهزة التي تستخدم Keymaster 3 أو أقل، يجب على المورّدين تعديل تنفيذ Keymaster لتخطي التحقق (أو الترقية إلى Keymaster 4). للحصول على تفاصيل حول Keymaster، يمكنك الرجوع إلى ملف تخزين مفاتيح مستنِد إلى الجهاز:

تنزيل "خدمات الموقع الإلكتروني من Google" (GSI)

يمكنك تنزيل "خدمات الموقع الجغرافي من Google" المنشأة مسبقًا من عملية الدمج المستمر لنظام AOSP (CI) الموقع الإلكتروني على ci.android.com. إذا كان نوع GSI الخاص بجهازك غير متاح للتنزيل، راجع القسم التالي تفاصيل حول إنشاء "إحصاءات Google (GSI)" لتحقيق أهداف محدَّدة.

إنشاء خدمات الموقع الجغرافي على Google

بدءًا من الإصدار 9 من نظام التشغيل Android، تتضمَّن كل إصدار من إصدارات Android فرع GSI المسمى DESSERT-gsi على AOSP (على سبيل المثال، android12-gsi هو فرع GSI على Android 12. وتشمل فروع GSI محتوى Android مع جميع تصحيحات الأمان تم تطبيق تصحيحات GSI.

لإنشاء إشارة GSI، يمكنك إعداد شجرة مصادر Android من خلال التنزيل من أحد فروع GSI اختيار إصدار GSI . استخدام جداول أهداف الإصدار أدناه لتحديد مقياس GSI الصحيح لجهازك. بعد اكتمال عملية الإنشاء، يمثل GSI النظام (أي system.img) وتظهر في مجلد الإخراج out/target/product/generic_arm64

على سبيل المثال، لإنشاء هدف إصدار GSI gsi_arm64-userdebug في فرع GSI android12-gsi، قم بتشغيل الأوامر التالية.

$ repo init -u https://android.googlesource.com/platform/manifest -b android12-gsi
$ repo sync -cq
$ source build/envsetup.sh
$ lunch gsi_arm64-userdebug
$ make -j4

أهداف إصدار GSI لنظام التشغيل Android

أهداف إصدار GSI التالية مخصّصة للأجهزة التي يتم إطلاقها على Android 9 أو أعلى.

اسم GSI بنية وحدة المعالجة المركزية (CPU) عدد بت واجهة الصنف النظام كجذر إنشاء الهدف
gsi_arm تفعيل جهاز الإنذار 32 Y gsi_arm-user
gsi_arm-userdebug
gsi_arm64 معالج ARM64 64 Y gsi_arm64-user
gsi_arm64-userdebug
gsi_x86 ×86 32 Y gsi_x86-user
gsi_x86-userdebug
gsi_x86_64 X86- 64 64 Y gsi_x86_64-user
gsi_x86_64-userdebug

متطلبات وميض "إحصاءات Google (GSI)"

يمكن أن تحتوي أجهزة Android على تصميمات مختلفة، لذلك لا يوجد أمر عام أو مجموعة من الإرشادات حول تثبيت GSI لتطبيقها على جميع الأجهزة. مراجعة مع الشركة المصنّعة لجهاز Android للحصول على تعليمات وميض واضحة. يُرجى اتّباع الخطوات التالية كمبدأ عام:

  1. تأكَّد من أنّ الجهاز يتضمّن ما يلي:
    • نسخة ثلاثية
    • طريقة لإلغاء قفل الأجهزة (حتى يمكن وميضها باستخدام fastboot)
    • حالة فتح القفل لجعلها قابلة للفلاش عبر fastboot (لضمان حصولك على أحدث إصدار من fastboot، أنشِئ من شجرة مصادر Android).
  2. محو بيانات قسم النظام الحالي، ثم تثبيت GSI على النظام قسم القرص.
  3. امسح بيانات المستخدم وامسح البيانات من الأقسام الأخرى اللازمة (ل مثل بيانات المستخدم وأقسام النظام).
  4. أعد تشغيل الجهاز.

على سبيل المثال، لتثبيت إشارة GSI على أي جهاز Pixel:

  1. تمهيد على وضع fastboot و فتح قفل برنامج الإقلاع.
  2. الأجهزة المتوافقة fastbootd يجب أيضًا تشغيل fastbootd من خلال:
    $ fastboot reboot fastboot
  3. محو بيانات GSI وفلشها في قسم النظام:
    $ fastboot erase system
    $ fastboot flash system system.img
    
  4. امسح بيانات المستخدم وامسح البيانات من الأقسام الأخرى اللازمة (ل مثال، بيانات المستخدمين وأقسام النظام):
    $ fastboot -w
  5. إعادة التشغيل:
    $ fastboot reboot
على الأجهزة التي تعمل بنظام التشغيل Android 10 أو الإصدارات الأحدث والتي تحتوي على أقسام نظام أصغر، قد تظهر رسالة الخطأ التالية عند وميض GSI:
    Resizing 'system_a'    FAILED (remote: 'Not enough space to resize partition')
    fastboot: error: Command failed
استخدم الأمر التالي لحذف قسم المنتج وإخلاء مساحة قسم النظام. يوفر هذا مساحة إضافية لتحديث GSI:
$ fastboot delete-logical-partition product_a
يجب أن يتطابق الإصدار _a من التصحيح مع معرّف الخانة لقسم النظام، مثل system_a في هذا المثال.

المساهمة في "إحصاءات Google (GSI)"

يرحّب Android بمساهماتك في تطوير GSI. يمكنك الاشتراك والمساعدة في تحسين GSI من خلال:

  • إنشاء رمز تصحيح GSI: DESSERT-gsi هي ليست فرعًا للتطوير ولا تقبل سوى طيور الكرز من الفرع الرئيسي لنظام AOSP، لذا لإرسال رمز تصحيح GSI، يجب عليك:
    1. أرسل التصحيح إلى بروتوكول AOSP فرع "main"
    2. انطلِق في لاصقة DESSERT-gsi.
    3. الإبلاغ عن الخطأ لتتم مراجعة إصدار cherrypick
  • الإبلاغ عن أخطاء GSI أو تقديم اقتراحات أخرى تعليق التعليمات الواردة في الإبلاغ عن الأخطاء ثم تصفُّح أو ملف GSI الأخطاء.

نصائح

تغيير وضع شريط التنقل باستخدام adb

عند التشغيل باستخدام GSI، يتم ضبط وضع شريط التنقل من خلال تجاوز المورِّد. يمكنك تغيير وضع شريط التنقل من خلال تشغيل أمر adb التالي في وقت التشغيل.

adb exec-out cmd overlay enable-exclusive com.android.internal.systemui.navbar.mode

حيث يمكن أن تكون السمة mode threebutton وtwobutton gestural وهكذا.