صورة النظام العامة (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 دعمًا كاملاً التغييرات المعمارية المستندة إلى AIDL/HIDL (والمعروفة أيضًا باسم Treble)، بما في ذلك إتاحة واجهات AIDL واجهات HIDL: يمكنك استخدام GSI على أي جهاز Android يستخدم واجهات مورّدي AIDL/HIDL. (لمزيد من التفاصيل، راجع الموارد الهندسية).
- نظام الملفات: يستخدم نظام GSI نظام الملفات ext4.
يتضمن نظام 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_$arch
GSI يحتوي علىuserdebug_plat_sepolicy.cil
. عند الوميضvendor_boot-debug.img
أو السمة الخاصة بالمُصنّع الأصلي سيتم تحميلboot-debug.img
من خلال/system/bin/init
.userdebug_plat_sepolicy.cil
من GSIsystem.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 للحصول على تعليمات وميض واضحة. يُرجى اتّباع الخطوات التالية كمبدأ عام:
- تأكَّد من أنّ الجهاز يتضمّن ما يلي:
- نسخة ثلاثية
- طريقة لإلغاء قفل الأجهزة (حتى يمكن وميضها باستخدام
fastboot
) - حالة فتح القفل لجعلها قابلة للفلاش عبر
fastboot
(لضمان حصولك على أحدث إصدار منfastboot
، أنشِئ من شجرة مصادر Android).
- محو بيانات قسم النظام الحالي، ثم تثبيت GSI على النظام قسم القرص.
- امسح بيانات المستخدم وامسح البيانات من الأقسام الأخرى اللازمة (ل مثل بيانات المستخدم وأقسام النظام).
- أعد تشغيل الجهاز.
على سبيل المثال، لتثبيت إشارة GSI على أي جهاز Pixel:
- تمهيد على
وضع
fastboot
و فتح قفل برنامج الإقلاع. - الأجهزة المتوافقة
fastbootd
يجب أيضًا تشغيلfastbootd
من خلال:$ fastboot reboot fastboot
- محو بيانات GSI وفلشها في قسم النظام:
$ fastboot erase system $ fastboot flash system system.img
- امسح بيانات المستخدم وامسح البيانات من الأقسام الأخرى اللازمة (ل
مثال، بيانات المستخدمين وأقسام النظام):
$ fastboot -w
- إعادة التشغيل:
$ fastboot reboot
Resizing 'system_a' FAILED (remote: 'Not enough space to resize partition') fastboot: error: Command failed
$ fastboot delete-logical-partition product_a
_a
من التصحيح مع معرّف الخانة لقسم النظام،
مثل system_a
في هذا المثال.
المساهمة في "إحصاءات Google (GSI)"
يرحّب Android بمساهماتك في تطوير GSI. يمكنك الاشتراك والمساعدة في تحسين GSI من خلال:
- إنشاء رمز تصحيح GSI:
DESSERT-gsi
هي ليست فرعًا للتطوير ولا تقبل سوى طيور الكرز من الفرع الرئيسي لنظام AOSP، لذا لإرسال رمز تصحيح GSI، يجب عليك:- أرسل التصحيح إلى
بروتوكول AOSP
فرع "
main
" - انطلِق في لاصقة
DESSERT-gsi
. - الإبلاغ عن الخطأ لتتم مراجعة إصدار cherrypick
- أرسل التصحيح إلى
بروتوكول AOSP
فرع "
- الإبلاغ عن أخطاء GSI أو تقديم اقتراحات أخرى تعليق التعليمات الواردة في الإبلاغ عن الأخطاء ثم تصفُّح أو ملف GSI الأخطاء.
نصائح
تغيير وضع شريط التنقل باستخدام adb
عند التشغيل باستخدام GSI، يتم ضبط وضع شريط التنقل من خلال تجاوز المورِّد. يمكنك تغيير وضع شريط التنقل من خلال تشغيل أمر adb التالي في وقت التشغيل.
adb exec-out cmd overlay enable-exclusive com.android.internal.systemui.navbar.mode
حيث يمكن أن تكون السمة mode threebutton
وtwobutton
gestural
وهكذا.