إعداد CTS

لتشغيل CTS ، قم أولاً بإعداد بيئتك المادية وجهاز سطح المكتب وجهاز Android الذي تستخدمه للاختبار.

بيئة فيزيائية

منارات بلوتوث LE

إذا كان الجهاز قيد الاختبار (DUT) يدعم Bluetooth LE ، فضع ما لا يقل عن ثلاثة منارات Bluetooth LE في نطاق 5 أمتار من DUT لاختبار فحص Bluetooth LE. لا تحتاج هذه الإشارات إلى التهيئة أو إصدار أي شيء محدد ، ويمكن أن تكون من أي نوع ، بما في ذلك iBeacon أو Eddystone أو حتى الأجهزة التي تحاكي إشارات BLE.

الكاميرات

عند تشغيل كاميرا CTS ، استخدم ظروف الإضاءة العادية مع مخطط نموذج اختبار (مثل نمط رقعة الشطرنج). ضع مخطط نموذج الاختبار وفقًا لمسافة التركيز البؤري الدنيا لـ DUT للتأكد من أنها ليست قريبة جدًا من العدسة.

قم بتوجيه مستشعرات الكاميرا إلى مشهد به إضاءة كافية للسماح لأجهزة الاستشعار قيد الاختبار بالوصول والبقاء عند الحد الأقصى من الإطارات المستهدفة في الثانية (FPS) كما هو محدد في CONTROL_AE_TARGET_FPS_RANGE . ينطبق هذا على جميع مستشعرات الكاميرا التي تم الإبلاغ عنها بواسطة getCameraIdList حيث يتكرر الاختبار على الأجهزة المدرجة ويقيس الأداء بشكل فردي.

إذا كانت DUT تدعم الكاميرات الخارجية ، مثل كاميرات الويب USB ، فقم بتوصيل كاميرا خارجية عند تشغيل CTS. خلاف ذلك ، تفشل اختبارات CTS.

GPS / GNSS

إذا كانت DUT تدعم ميزة نظام تحديد المواقع العالمي / نظام الملاحة العالمي عبر الأقمار الصناعية (GPS / GNSS) ، فقم بتوفير إشارة GPS / GNSS إلى DUT عند مستوى إشارة مناسب للاستقبال وحساب موقع GPS. يجب أن يكون جزء GPS متوافقًا مع ICD-GPS-200C. بخلاف ذلك ، يمكن أن تكون إشارة GPS / GNSS من أي نوع ، بما في ذلك جهاز محاكاة الأقمار الصناعية أو مكرر GPS / GNSS للإشارات الخارجية ، أو يمكنك وضع DUT بالقرب من النافذة بحيث يمكنها استقبال إشارة GPS / GNSS كافية مباشرة.

شبكة Wi-Fi و IPv6

تتطلب اختبارات CTS شبكة Wi-Fi تدعم IPv4 و IPv6 ، ولديها اتصال بالإنترنت مع DNS العامل لـ IPv4 و IPv6 ، وتدعم البث المتعدد IP ، ويمكنها التعامل مع DUT كعميل منعزل. العميل المعزول هو تكوين حيث لا يمكن لـ DUT رؤية رسائل البث / الشبكات المتعددة على تلك الشبكة الفرعية. يحدث هذا مع تكوين نقطة وصول Wi-Fi (AP) أو عن طريق تشغيل DUT على شبكة فرعية معزولة دون توصيل أجهزة أخرى.

إذا لم يكن لديك وصول إلى شبكة IPv6 أصلية أو شبكة مشغل IPv6 أو VPN لاجتياز بعض الاختبارات اعتمادًا على IPv6 ، فيمكنك استخدام نقطة وصول Wi-Fi ونفق IPv6.

لتمرير CTS ، تحتاج DUT إلى أعلام UP و BROADCAST و MULTICAST التي تم تعيينها على واجهة Wi-Fi. تحتاج واجهة Wi-Fi إلى تعيين عناوين IPv4 و IPv6. تحقق من خصائص واجهة Wi-Fi باستخدام adb shell ifconfig .

شبكة Wi-Fi RTT

يشتمل نظام التشغيل Android على Wi-Fi RTT API لإمكانية الوصول ذهابًا وإيابًا عبر شبكة Wi-Fi (RTT) . يسمح هذا للأجهزة بقياس المسافة بينها وبين نقاط الوصول بدقة تتراوح من متر واحد إلى مترين ، مما يزيد بشكل كبير من دقة الموقع الداخلي. جهازان موصى بهما يدعمان Wi-Fi RTT هما Google Wifi ونقطة وصول Fitlet2 من Compulab (مضبوطة على عرض النطاق الترددي 40 ميجاهرتز عند 5 جيجاهرتز).

يجب تشغيل نقاط الوصول ، لكنها لا تتطلب اتصالاً بالشبكة. لا يلزم أن تكون نقاط الوصول بجوار جهاز الاختبار ولكن يوصى بأن تكون في نطاق 40 قدمًا من DUT. عادة ما تكون نقطة الوصول واحدة كافية.

إعداد جهاز سطح المكتب

ADB و AAPT

قبل تشغيل CTS ، تأكد من تثبيت الإصدارات الحديثة لكل من Android Debug Bridge (adb) و Android Asset Packaging Tool (AAPT) وإضافة موقع تلك الأدوات إلى مسار النظام الخاص بجهازك.

لتثبيت ADB و AAPT ، قم بتنزيل أحدث أدوات Android SDK Platform و Android SDK Build Tools من Android Studio's SDK Manager أو من أداة سطر الأوامر sdkmanager .

تأكد من أن adb و aapt موجودان في مسار النظام الخاص بك. يفترض الأمر التالي أنك قمت بتنزيل أرشيفات الحزمة إلى دليل فرعي يسمى android-sdk في الدليل الرئيسي الخاص بك:

export PATH=$PATH:$HOME/android-sdk/platform-tools:$HOME/android-sdk/build-tools/<tools version number>

مجموعة تطوير جافا لأوبونتو

قم بتثبيت الإصدار المناسب من Java Development Kit (JDK) .

  • لنظام Android 11 ، قم بتثبيت OpenJDK11.
  • بالنسبة إلى Android 9 و Android 10 ، قم بتثبيت OpenJDK9.
  • لنظام التشغيل Android 7.0 و 7.1 و 8.0 و 8.1 ، قم بتثبيت OpenJDK8.

للحصول على التفاصيل ، راجع متطلبات JDK .

الإعداد لدعم Python

قم بتثبيت virtualenv لمنصتك باتباع تعليمات التثبيت .

يمكنك التحقق من نجاح التثبيت عن طريق استدعاء virtualenv -h .

ملفات CTS

قم بتنزيل وفتح حزم CTS من تنزيلات Compatibility Test Suite التي تتوافق مع إصدار Android الخاص بأجهزتك وجميع واجهات التطبيقات الثنائية (ABIs) التي تدعمها أجهزتك.

قم بتنزيل وفتح أحدث إصدار من ملفات وسائط CTS .

كشف الجهاز

اتبع الخطوة لإعداد نظامك لاكتشاف جهازك .

حد الذاكرة

قد ترغب في زيادة الحد الأقصى للذاكرة المتاحة أثناء التشغيل التجريبي في النص البرمجي cts-tradfed . الرجوع إلى مثال CL لمزيد من المعلومات.

إعداد جهاز Android

يبني المستخدم

يُعرَّف الجهاز المتوافق بأنه جهاز به بنية مُوقعة من المستخدم / مفتاح التحرير. يجب أن يقوم جهازك بتشغيل صورة نظام استنادًا إلى بنية المستخدم المعروفة والمتوافقة (Android 4.0 أو أعلى) من أسماء الرموز والعلامات وأرقام الإنشاء .

أول خاصية بناء على مستوى API

تعتمد بعض متطلبات CTS على التصميم الذي تم شحن الجهاز به في الأصل. على سبيل المثال ، قد يتم استبعاد الأجهزة التي تم شحنها في الأصل مع إصدارات سابقة من متطلبات النظام التي تنطبق على الأجهزة التي يتم شحنها مع إصدارات لاحقة.

لإتاحة هذه المعلومات لـ CTS ، كان بإمكان مصنعي الأجهزة تحديد خاصية وقت البناء ro.product.first_api_level . قيمة هذه الخاصية هي أول مستوى لواجهة برمجة التطبيقات تم إطلاق الجهاز تجاريًا به.

يمكن لمصنعي الأجهزة إعادة استخدام التطبيق الأساسي المشترك لإطلاق منتج جديد كترقية لمنتج موجود في نفس مجموعة الأجهزة. يمكن لمصنعي الأجهزة تحديد مستوى واجهة برمجة التطبيقات للمنتج الحالي بشكل اختياري إلى ro.product.first_api_level ، بحيث يتم تطبيق متطلبات الترقية على CTS و Treble / VTS.

يمكن لمصنعي الأجهزة تحديد PRODUCT_SHIPPING_API_LEVEL في ملف device.mk الخاص بهم لتعيين هذه الخاصية ، كما هو موضح في المثال التالي:

# PRODUCT_SHIPPING_API_LEVEL sets ro.product.first_api_level to indicate
# the first api level that the device has been commercially launched on.
PRODUCT_SHIPPING_API_LEVEL := 21

أول مستوى لواجهة برمجة التطبيقات لنظام Android 9 أو أعلى

بالنسبة للأجهزة التي تم إطلاقها بنظام Android 9 أو إصدار أحدث ، قم بتعيين الخاصية ro.product.first_api_level إلى قيمة صالحة من أسماء الرموز والعلامات وأرقام الإنشاء .

أول مستوى لواجهة برمجة التطبيقات لنظام Android 8.x أو أقل

بالنسبة للأجهزة التي تم إطلاقها على نظام Android 8.x أو إصدار أقدم ، قم بإلغاء تحديد (إزالة) خاصية ro.product.first_api_level للبنية الأولى للمنتج. لجميع الإصدارات اللاحقة ، اضبط ro.product.first_api_level على قيمة مستوى API الصحيحة. يتيح ذلك للخاصية تحديد منتج جديد بشكل صحيح والاحتفاظ بالمعلومات حول المستوى الأول لواجهة برمجة التطبيقات للمنتج. إذا لم يتم تعيين العلامة ، يقوم Android بتعيين Build.VERSION.SDK_INT إلى ro.product.first_api_level .

حزم الرقائق CTS

يتضمن Android 10 أو أعلى تنسيق حزمة يسمى APEX . لتشغيل اختبارات CTS لواجهات برمجة تطبيقات إدارة APEX (مثل التحديث إلى إصدار جديد أو الإبلاغ عن APEXes نشطة) ، يجب عليك تثبيت حزمة CtsShimApex مسبقًا على قسم /system .

يتحقق اختبار التحقق من صحة الرقاقة APEX من تنفيذ CtsShimApex .

متطلبات ro.apex.updatable

  • إذا تم تعيين الخاصية ro.apex.updatable على true ، CtsShimApex مطلوبة لجميع الأجهزة التي تدعم إدارة حزم APEX.

  • إذا كانت الخاصية ro.apex.updatable مفقودة أو لم يتم تعيينها ، فلا يلزم تثبيت CtsShimApex مسبقًا على الجهاز.

يتحقق اختبار التحقق من صحة الرقاقة APEX من تنفيذ CtsShimApex .

عمليات التثبيت المسبق والتحميل المسبق CtsShim

بدءًا من Android 11 ، يحتوي CtsShimApex على تطبيقين تم إنشاؤهما مسبقًا (تم إنشاؤهما من مصدر الإنشاء ) ، ولا يحتويان على أي رمز باستثناء البيان. تستخدم CTS هذه التطبيقات لاختبار الامتيازات والأذونات.

إذا كان الجهاز لا يدعم إدارة حزمة APEX (أي أن خاصية ro.apex.updatable مفقودة أو لم يتم تعيينها) ، أو إذا كان الجهاز يعمل بالإصدار 10 أو أقل ، فيجب تثبيت التطبيقين اللذين تم إنشاؤهما مسبقًا في بشكل منفصل.

إصدار الجهاز التثبيت المسبق
(إذا كان APEX مدعومًا)
التحميل المسبق
ذراع إلى x86 ذراع إلى x86
أندرويد 12 android12- الافراج عن الذراع
تحت /system/apex/com.android.apex.cts.shim.apex
android12-x86-release
تحت /system/apex/com.android.apex.cts.shim.apex
android12-arm-CtsShim.apk
تحت /system/app/CtsShimPrebuilt.apk

android12-arm-CtsShimPriv.apk
تحت /system/priv-app/CtsShimPrivPrebuilt.apk

android12-x86-CtsShim.apk
تحت /system/app/CtsShimPrebuilt.apk

android12-x86-CtsShimPriv.apk
تحت /system/priv-app/CtsShimPrivPrebuilt.apk

أندرويد 11 android11- الافراج عن الذراع
تحت /system/apex/com.android.apex.cts.shim.apex
android11-x86-release
تحت /system/apex/com.android.apex.cts.shim.apex
android11-arm-CtsShim.apk
تحت /system/app/CtsShimPrebuilt.apk

android11-arm-CtsShimPriv.apk
تحت /system/priv-app/CtsShimPrivPrebuilt.apk

android11-x86-CtsShim.apk
تحت /system/app/CtsShimPrebuilt.apk

android11-x86-CtsShimPriv.apk
تحت /system/priv-app/CtsShimPrivPrebuilt.apk

أندرويد 10 android10 الإصدار
تحت /system/apex/com.android.apex.cts.shim.apex
android10-arm-CtsShim.apk
تحت /system/app/CtsShimPrebuilt.apk

android10-arm-CtsShimPriv.apk
تحت /system/priv-app/CtsShimPrivPrebuilt.apk

android10-x86-CtsShim.apk
تحت /system/app/CtsShimPrebuilt.apk

android10-x86-CtsShimPriv.apk
تحت /system/priv-app/CtsShimPrivPrebuilt.apk

Android 9 و O و O-MR1 غير متاح غير متاح arm-CtsShim.apk
تحت /system/app/CtsShimPrebuilt.apk

arm-CtsShimPriv.apk
تحت /system/priv-app/CtsShimPrivPrebuilt.apk

x86-CtsShim.apk
تحت /system/app/CtsShimPrebuilt.apk

x86-CtsShimPriv.apk
تحت /system/priv-app/CtsShimPrivPrebuilt.apk

لاجتياز الاختبارات ، قم بتحميل التطبيقات مسبقًا في الدلائل المناسبة على صورة النظام دون إعادة توقيع التطبيقات.

نموذج بريمج

قدم Android 9 واجهات برمجة تطبيقات Open Mobile. بالنسبة للأجهزة التي تبلغ عن أكثر من عنصر آمن ، تضيف CTS حالات اختبار للتحقق من صحة سلوك Open Mobile APIs. تتطلب حالات الاختبار هذه التثبيت لمرة واحدة لعينة التطبيق الصغير في العنصر الآمن المضمن (eSE) الخاص بـ DUT أو في بطاقة SIM المستخدمة بواسطة DUT. يمكن العثور على نموذج eSE الصغير ونموذج SIM الصغير في AOSP.

راجع اختبار CTS للعنصر الآمن للحصول على معلومات أكثر تفصيلاً عن حالات اختبار Open Mobile API وحالات اختبار التحكم في الوصول.

متطلبات التخزين

تتطلب اختبارات ضغط وسائط CTS وجود مقاطع فيديو على وحدة تخزين خارجية ( /sdcard ). معظم المقاطع مأخوذة من Big Buck Bunny ، المحمية بحقوق الطبع والنشر من قبل Blender Foundation بموجب ترخيص Creative Commons Attribution 3.0 .

تعتمد المساحة المطلوبة على الحد الأقصى لدقة تشغيل الفيديو التي يدعمها الجهاز. راجع القسم 5 في مستند تعريف توافق Android للحصول على إصدار النظام الأساسي للقرارات المطلوبة.

فيما يلي متطلبات التخزين حسب الحد الأقصى لدقة تشغيل الفيديو:

  • 480 × 360: 98 ميجا بايت
  • 720 × 480: 193 ميجا بايت
  • 1280 × 720: 606 ميجابايت
  • 1920 × 1080: 1863 ميجابايت

الشاشة والتخزين

  • يحتاج أي جهاز لا يحتوي على شاشة مضمنة إلى توصيله بشاشة.
  • إذا كان الجهاز يحتوي على فتحة بطاقة ذاكرة ، فقم بتوصيل بطاقة SD فارغة. استخدم بطاقة SD التي تدعم ناقل السرعة الفائقة (UHS) بسعة SDHC أو SDXC أو بطاقة ذات سرعة لا تقل عن 10 أو أعلى لضمان قدرتها على اجتياز CTS.

  • إذا كان الجهاز يحتوي على فتحات بطاقة SIM ، فقم بتوصيل بطاقة SIM نشطة في كل فتحة. إذا كان الجهاز يدعم رسائل SMS ، فيجب أن يكون لكل بطاقة SIM حقل رقم خاص بها مملوء. بالنسبة للأجهزة التي تعمل بنظام Android 12 أو أعلى ، يجب أن تدعم جميع بطاقات SIM تخزين أرقام الاتصال المختصرة (ADN). تلبي بطاقات GSM و USIM المزودة بملف مخصص للاتصالات (DF Telecom ) هذا المطلب.

المطور UICC

لإجراء اختبارات API لمشغل CTS ، يحتاج الجهاز إلى استخدام بطاقة SIM مع امتيازات مشغل CTS التي تلبي المتطلبات المحددة في إعداد UICC .

تكوين جهاز Android

  1. إعادة تعيين بيانات المصنع للجهاز: الإعدادات> النسخ الاحتياطي وإعادة الضبط> إعادة تعيين بيانات المصنع .

  2. اضبط لغة جهازك على الإنجليزية ( الولايات المتحدة ): الإعدادات> اللغة والإدخال> اللغة .

  3. إذا كان الجهاز يدعم تخصيص الخطوط الافتراضية ، فقم بتعيين عائلة خطوط sans-serif الافتراضية على Roboto (عائلة خطوط sans-serif الافتراضية المستخدمة في إصدارات AOSP).

  4. قم بتشغيل إعداد الموقع إذا كانت هناك ميزة GPS أو Wi-Fi / شبكة خلوية على الجهاز: الإعدادات> الموقع> تشغيل .

  5. اتصل بشبكة Wi-Fi تدعم IPv6 ، ويمكنها التعامل مع DUT كعميل منفصل (انظر البيئة المادية أعلاه) ، ولديه اتصال بالإنترنت: الإعدادات> Wi-Fi .

  6. تأكد من عدم تعيين نمط قفل أو كلمة مرور على الجهاز: الإعدادات> الأمان> قفل الشاشة> لا شيء .

  7. قم بتمكين تصحيح أخطاء USB على جهازك: الإعدادات> خيارات المطور> تصحيح أخطاء USB .

  8. اضبط الوقت على تنسيق 12 ساعة: الإعدادات> التاريخ والوقت> استخدام تنسيق 24 ساعة> إيقاف .

  9. اضبط الجهاز ليظل مستيقظًا: الإعدادات> خيارات المطور> البقاء مستيقظًا> تشغيل .

  10. في الإصدارين Android 5.x و 4.4.x فقط ، اضبط الجهاز للسماح بمواقع وهمية: الإعدادات> خيارات المطور> السماح بمواقع وهمية> تشغيل .

  11. في Android 4.2 أو أحدث ، أوقف تشغيل التحقق من تطبيق USB: الإعدادات> خيارات المطور> التحقق من التطبيقات عبر USB> إيقاف التشغيل .

  12. في نظام Android 13 أو إصدار أحدث ، اضبط الجهاز للسماح بمودم وهمي: الإعدادات> خيارات المطور> السماح بمودم Mock> تشغيل .

  13. قم بتشغيل المتصفح وتجاهل أي شاشة بدء تشغيل / إعداد.

  14. قم بتوصيل جهاز سطح المكتب الذي سيتم استخدامه لاختبار الجهاز باستخدام كبل USB.

  15. قبل تشغيل CTS ، اضبط Roboto2 على أنه خط sans-serif باستخدام إعداد تكلفة يمكن الوصول إليه من قبل المستخدم (غير مخفي).

تثبيت الملف

تثبيت وتكوين التطبيقات المساعدة على الجهاز.

  1. قم بإعداد جهازك وفقًا لإصدار CTS الخاص بك:

    • إصدارات CTS 2.1 R2 إلى 4.2 R4: قم بإعداد جهازك (أو المحاكي) لإجراء اختبارات إمكانية الوصول باستخدام: adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      على الجهاز ، قم بتمكين التفويض: الإعدادات> إمكانية الوصول> إمكانية الوصول> تفويض خدمة إمكانية الوصول .

    • إصدارات CTS 6.x أو أقل: على الأجهزة التي تعلن عن android.software.device_admin ، قم بإعداد جهازك لتشغيل اختبار إدارة الجهاز باستخدام: adb install -r android-cts/repository/testcases/CtsDeviceAdmin.apk`

      في الإعدادات> الأمان> حدد مسؤولي الجهاز ، قم بتمكين مسؤولي الجهاز android.deviceadmin.cts.CtsDeviceAdminReceiver* . تأكد من استمرار تعطيل android.deviceadmin.cts.CtsDeviceAdminDeactivatedReceiver وأي مسؤولي أجهزة محملين مسبقًا.

  2. انسخ ملفات وسائط CTS إلى الجهاز كما يلي:

    1. انتقل ( cd ) إلى المسار حيث يتم تنزيل ملفات الوسائط وفك ضغطها.
    2. قم بتغيير أذونات الملف: chmod u+x copy_media.sh

    3. انسخ الملفات الضرورية:

      • لنسخ مقاطع بدقة تصل إلى 720 × 480 ، قم بتشغيل:

        ./copy_media.sh 720x480
        
      • إذا لم تكن متأكدًا من الحد الأقصى للدقة ، فانسخ جميع الملفات:

        ./copy_media.sh all
        
      • إذا كانت هناك عدة أجهزة ضمن adb ، فقم بإضافة الخيار التسلسلي ( -s ) لجهاز معين إلى النهاية. على سبيل المثال ، لنسخ ما يصل إلى 720 × 480 إلى الجهاز ذي الرقم التسلسلي 1234567 ، قم بتشغيل:

        ./copy_media.sh 720x480 -s 1234567