راه اندازی CTS

برای اجرای CTS، ابتدا محیط فیزیکی، دستگاه دسکتاپ و دستگاه اندرویدی را که برای آزمایش استفاده می کنید آماده کنید.

محیط فیزیکی

چراغ های بلوتوث LE

اگر دستگاه تحت آزمایش (DUT) از بلوتوث LE پشتیبانی می کند، حداقل سه چراغ بلوتوث LE را در فاصله 5 متری DUT قرار دهید تا تست اسکن بلوتوث LE انجام شود. این بیکن ها نیازی به پیکربندی یا انتشار چیز خاصی ندارند و می توانند از هر نوعی باشند، از جمله iBeacon، Eddystone، یا حتی دستگاه هایی که Beacon های BLE را شبیه سازی می کنند.

دوربین ها

هنگام اجرای دوربین CTS، از شرایط نوری معمولی با نمودار الگوی آزمایشی (مانند الگوی شطرنجی) استفاده کنید. نمودار الگوی تست را با توجه به حداقل فاصله فوکوس DUT قرار دهید تا مطمئن شوید که خیلی به لنز نزدیک نیست.

سنسورهای دوربین را به سمت صحنه ای با نور کافی هدایت کنید تا حسگرهای تحت آزمایش بتوانند به حداکثر فریم هدف پیکربندی شده در ثانیه (FPS) همانطور که در CONTROL_AE_TARGET_FPS_RANGE مشخص شده است برسند و باقی بمانند. این برای همه حسگرهای دوربین گزارش شده توسط getCameraIdList می شود زیرا آزمایش روی دستگاه های لیست شده تکرار می شود و عملکرد را به صورت جداگانه اندازه گیری می کند.

اگر DUT از دوربین های خارجی مانند وب کم USB پشتیبانی می کند، هنگام اجرای CTS یک دوربین خارجی را وصل کنید. در غیر این صورت، تست های CTS با شکست مواجه می شوند.

GPS/GNSS

اگر DUT از ویژگی سیستم موقعیت یابی جهانی/سیستم ماهواره ناوبری جهانی (GPS/GNSS) پشتیبانی می کند، سیگنال GPS/GNSS را در سطح سیگنال مناسب برای دریافت و محاسبه مکان GPS به DUT ارائه دهید. بخش GPS باید با ICD-GPS-200C مطابقت داشته باشد. در غیر این صورت، سیگنال GPS/GNSS می تواند از هر نوعی باشد، از جمله یک شبیه ساز ماهواره یا یک تکرار کننده GPS/GNSS سیگنال های فضای باز، یا می توانید DUT را به اندازه کافی نزدیک پنجره قرار دهید تا بتواند مستقیماً سیگنال GPS/GNSS کافی را دریافت کند.

Wi-Fi و IPv6

تست‌های CTS به یک شبکه Wi-Fi نیاز دارند که از IPv4 و IPv6 پشتیبانی می‌کند، دارای یک اتصال اینترنتی با DNS فعال برای IPv4 و IPv6 است، از IP multicast پشتیبانی می‌کند و می‌تواند با DUT به عنوان یک کلاینت مجزا رفتار کند. کلاینت ایزوله پیکربندی است که در آن DUT پیام های پخش/چند شبکه ای در آن زیرشبکه قابل مشاهده نیست. این با پیکربندی نقطه دسترسی Wi-Fi (AP) یا با اجرای DUT در یک زیرشبکه ایزوله بدون اتصال دستگاه های دیگر رخ می دهد.

اگر به شبکه IPv6 بومی، شبکه حامل IPv6 یا VPN برای گذراندن برخی آزمایشات بسته به IPv6 دسترسی ندارید، می توانید از یک نقطه دسترسی Wi-Fi و یک تونل IPv6 استفاده کنید. فهرست کارگزاران تونل IPv6 ویکی پدیا را ببینید.

برای عبور از CTS، DUT به پرچم‌های UP ، BROADCAST و MULTICAST که روی رابط Wi-Fi تنظیم شده‌اند، نیاز دارد. رابط Wi-Fi نیاز به تخصیص آدرس IPv4 و IPv6 دارد. ویژگی های رابط Wi-Fi را با adb shell ifconfig بررسی کنید.

وای فای RTT

اندروید شامل Wi-Fi RTT API برای قابلیت زمان رفت و برگشت Wi-Fi (RTT) است. این به دستگاه ها اجازه می دهد تا فاصله خود را تا نقاط دسترسی با دقت 1 تا 2 متر اندازه گیری کنند و به طور قابل توجهی دقت مکان داخلی را افزایش دهند. دو دستگاه توصیه شده که از Wi-Fi RTT پشتیبانی می‌کنند عبارتند از Google Wifi و نقطه دسترسی Compulab fitlet2 (پهنای باند 40 مگاهرتز در 5 گیگاهرتز تنظیم شده است).

نقاط دسترسی باید روشن شوند، اما نیازی به اتصال شبکه ندارند. لازم نیست نقاط دسترسی در کنار دستگاه آزمایش قرار گیرند، اما توصیه می شود در فاصله 40 فوتی DUT قرار گیرند. یک نقطه دسترسی معمولاً کافی است.

راه اندازی ماشین رومیزی

ADB و AAPT

قبل از اجرای CTS، مطمئن شوید که نسخه های اخیر پل اشکال زدایی اندروید (adb) و ابزار بسته بندی دارایی اندروید (AAPT) را نصب کرده اید و مکان آن ابزارها را به مسیر سیستم دستگاه خود اضافه کرده اید.

برای نصب ADB، بسته Android SDK Tools را برای سیستم عامل خود دانلود کنید، آن را باز کنید و دستورالعمل های موجود در فایل README را دنبال کنید. برای اطلاعات عیب‌یابی، به نصب ابزارهای SDK مستقل مراجعه کنید.

مطمئن شوید که adb و aapt در مسیر سیستم شما قرار دارند. دستور زیر فرض می کند که آرشیو بسته را در فهرست اصلی خود باز کرده اید:

export PATH=$PATH:$HOME/android-sdk-linux/build-tools/version

کیت توسعه جاوا برای اوبونتو

نسخه مناسب کیت توسعه جاوا (JDK) را نصب کنید.

  • برای اندروید 11، OpenJDK11 را نصب کنید.
  • برای اندروید 9 و اندروید 10، OpenJDK9 را نصب کنید.
  • برای اندروید 7.0، 7.1، 8.0 و 8.1، OpenJDK8 را نصب کنید.

برای جزئیات، به الزامات JDK مراجعه کنید.

راه اندازی برای پشتیبانی از پایتون

با دنبال کردن دستورالعمل‌های نصب ، virtualenv را برای پلتفرم خود نصب کنید.

با فراخوانی virtualenv -h می توانید تأیید کنید که نصب با موفقیت انجام شده است.

فایل های CTS

بسته‌های CTS را از Compatibility Test Suite Downloads که با نسخه Android دستگاه‌های شما و همه رابط‌های باینری برنامه (ABI) که دستگاه‌های شما پشتیبانی می‌کنند مطابقت دارد، دانلود و باز کنید.

آخرین نسخه فایل های رسانه ای CTS را دانلود و باز کنید.

تشخیص دستگاه

این مرحله را دنبال کنید تا سیستم خود را برای شناسایی دستگاه خود تنظیم کنید .

محدودیت حافظه

ممکن است بخواهید حداکثر حافظه موجود را در طول اجرای آزمایشی در اسکریپت cts-tradfed افزایش دهید . برای اطلاعات بیشتر به مثال CL مراجعه کنید.

راه اندازی دستگاه اندروید

کاربر می سازد

یک دستگاه سازگار به عنوان دستگاهی با ساخت امضا شده توسط کاربر/کلید انتشار تعریف می شود. دستگاه شما باید یک تصویر سیستمی را بر اساس ساخت کاربر سازگار شناخته شده (اندروید 4.0 یا بالاتر) از کدها، برچسب ها و شماره ساخت اجرا کند.

اولین ویژگی ساخت سطح API

برخی از الزامات CTS به ساختاری که یک دستگاه در ابتدا با آن حمل شده است بستگی دارد. برای مثال، دستگاه‌هایی که در اصل با نسخه‌های قبلی عرضه می‌شوند، ممکن است از الزامات سیستمی که برای دستگاه‌هایی که با نسخه‌های بعدی عرضه می‌شوند، حذف شوند.

برای در دسترس قرار دادن این اطلاعات برای CTS، سازندگان دستگاه می‌توانند ویژگی زمان ساخت ro.product.first_api_level را تعریف کنند. ارزش این ویژگی اولین سطح API است که دستگاه با آن به صورت تجاری راه اندازی شد.

سازندگان دستگاه می‌توانند از پیاده‌سازی اساسی مشترک برای راه‌اندازی یک محصول جدید به عنوان ارتقاء یک محصول موجود در همان گروه دستگاه، مجدداً استفاده کنند. سازندگان دستگاه می توانند به صورت اختیاری سطح API محصول موجود را روی ro.product.first_api_level ، به طوری که الزامات ارتقا برای CTS و Treble/VTS اعمال شود.

سازندگان دستگاه می توانند PRODUCT_PROPERTY_OVERRIDES را به فایل device.mk خود اضافه کنند تا این ویژگی را تنظیم کنند، همانطور که در مثال زیر نشان داده شده است:

#ro.product.first_api_level indicates the first api level that the device has
been commercially launched on.
PRODUCT_PROPERTY_OVERRIDES +=\
ro.product.first_api_level=21

اولین سطح API برای Android 9 یا بالاتر

برای دستگاه‌هایی که با Android 9 یا بالاتر راه‌اندازی می‌شوند، ویژگی ro.product.first_api_level را روی یک مقدار معتبر از Codenames، Tags، و Build Numbers تنظیم کنید.

اولین سطح API برای Android 8.x یا پایین تر

برای دستگاه‌هایی که با Android 8.x یا پایین‌تر راه‌اندازی می‌شوند، ویژگی ro.product.first_api_level را برای اولین ساخت محصول از حالت تنظیم خارج کنید (حذف کنید). برای تمام ساخت‌های بعدی، ro.product.first_api_level را روی مقدار صحیح سطح API تنظیم کنید. این به ویژگی اجازه می دهد تا محصول جدید را به درستی شناسایی کند و اطلاعات مربوط به اولین سطح API محصول را حفظ کند. اگر پرچم تنظیم نشده باشد، Android Build.VERSION.SDK_INT را به ro.product.first_api_level اختصاص می دهد.

بسته های شیم CTS

Android 10 یا بالاتر شامل قالب بسته ای به نام APEX است. برای اجرای تست های CTS برای API های مدیریت APEX (مانند به روز رسانی به نسخه جدید یا گزارش APEX های فعال) باید یک بسته CtsShimApex را روی یک پارتیشن /system از قبل نصب کنید.

تست اعتبارسنجی APEX shim اجرای CtsShimApex را تأیید می کند.

نیازهای ro.apex.updatable

  • اگر ویژگی ro.apex.updatable روی true تنظیم شود، CtsShimApex برای همه دستگاه‌هایی که از مدیریت بسته APEX پشتیبانی می‌کنند لازم است.

  • اگر ویژگی ro.apex.updatable باشد یا تنظیم نشده باشد، CtsShimApex نیازی به نصب از قبل روی دستگاه نیست.

تست اعتبارسنجی APEX shim اجرای CtsShimApex را تأیید می کند.

CtsShim از قبل نصب و بارگذاری می کند

با شروع اندروید 11، CtsShimApex شامل دو برنامه از پیش ساخته شده (ساخته شده از منبع ساخت ) است که هیچ کدی به جز مانیفست ندارند. CTS از این برنامه ها برای آزمایش امتیازات و مجوزها استفاده می کند.

اگر دستگاه از مدیریت بسته APEX پشتیبانی نمی کند (یعنی ویژگی ro.apex.updatable یا تنظیم نشده است)، یا اگر دستگاه دارای نسخه 10 یا پایین تر است، دو برنامه از پیش ساخته شده باید از قبل در سیستم به صورت جداگانه

نسخه دستگاه از پیش نصب کنید
(در صورت پشتیبانی از APEX)
پیش بارگیری کنید
ARM x86 ARM x86
اندروید 12 android12-arm-release
در /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-arm-release
در /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-release
در /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

اندروید 9، O و O-MR1 N/A N/A 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

برای قبولی در آزمون‌ها، برنامه‌ها را از قبل در پوشه‌های مناسب روی تصویر سیستم بارگذاری کنید بدون اینکه برنامه‌ها را دوباره امضا کنید.

اپلت نمونه

اندروید 9 API های Open Mobile را معرفی کرد. برای دستگاه‌هایی که بیش از یک عنصر امن را گزارش می‌کنند، CTS موارد آزمایشی را برای تأیید رفتار Open Mobile API اضافه می‌کند. این موارد آزمایشی نیاز به نصب یکباره یک اپلت نمونه در عنصر امن (eSE) تعبیه شده DUT یا در سیم کارت مورد استفاده توسط DUT دارند. اپلت نمونه eSE و اپلت نمونه سیم کارت را می توان در AOSP یافت.

برای اطلاعات دقیق تر در مورد موارد تست Open Mobile API و موارد تست Access Control به تست CTS برای عنصر امن مراجعه کنید.

الزامات ذخیره سازی

تست استرس رسانه CTS نیاز دارد که کلیپ‌های ویدیویی در حافظه خارجی ( /sdcard ) قرار داشته باشند. اکثر کلیپ ها از Big Buck Bunny هستند که توسط بنیاد Blender تحت مجوز Creative Commons Attribution 3.0 دارای حق چاپ است.

فضای مورد نیاز به حداکثر وضوح پخش ویدئویی که توسط دستگاه پشتیبانی می شود بستگی دارد. برای نسخه پلتفرم رزولوشن های مورد نیاز به بخش 5 در سند تعریف سازگاری Android مراجعه کنید.

در اینجا الزامات ذخیره سازی با حداکثر وضوح پخش ویدیو آمده است:

  • 480x360: 98 مگابایت
  • 720x480: 193 مگابایت
  • 1280x720: 606 مگابایت
  • 1920x1080: 1863 مگابایت

صفحه نمایش و ذخیره سازی

  • هر دستگاهی که صفحه نمایش تعبیه شده ندارد، باید به صفحه نمایش متصل شود.
  • اگر دستگاه دارای اسلات کارت حافظه است، یک کارت SD خالی را وصل کنید. برای اطمینان از اینکه می تواند از CTS عبور کند، از یک کارت SD استفاده کنید که از گذرگاه بسیار سریع (UHS) با ظرفیت SDHC یا SDXC یا کارتی با حداقل کلاس سرعت 10 یا بالاتر پشتیبانی می کند.

  • اگر دستگاه دارای اسلات سیم کارت است، یک سیم کارت فعال شده را به هر شیار وصل کنید. اگر دستگاه از پیامک پشتیبانی می کند، هر سیم کارت باید فیلد شماره خود را پر کند. برای دستگاه‌های دارای Android 12 یا بالاتر، همه سیم‌کارت‌ها باید از ذخیره شماره‌های تماس اختصاری (ADN) پشتیبانی کنند. کارت‌های GSM و USIM با فایل اختصاصی مخابرات (DF Telecom ) این نیاز را برآورده می‌کنند.

توسعه دهنده UICC

برای اجرای آزمایش‌های API حامل CTS، دستگاه باید از یک سیم‌کارت با امتیازات شرکت مخابراتی CTS استفاده کند که الزامات مشخص‌شده در آماده‌سازی UICC را داشته باشد.

پیکربندی دستگاه اندروید

  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 یا بالاتر ، دستگاه را طوری تنظیم کنید که به مودم ساختگی اجازه دهد: تنظیمات > گزینه‌های برنامه‌نویس > مجاز کردن مودم ساختگی > روشن .

  13. مرورگر را راه اندازی کنید و هر صفحه راه اندازی/راه اندازی را رد کنید.

  14. دستگاه رومیزی را که برای آزمایش دستگاه استفاده می شود با کابل USB وصل کنید.

  15. قبل از اجرای CTS، Roboto2 را به عنوان فونت sans-serif با استفاده از تنظیمات affordance (نه پنهان) در دسترس کاربر تنظیم کنید.

نصب فایل

برنامه های کمکی را روی دستگاه نصب و پیکربندی کنید.

  1. دستگاه خود را مطابق نسخه CTS خود تنظیم کنید:

    • نسخه‌های CTS 2.1 R2 تا 4.2 R4: دستگاه (یا شبیه‌ساز) خود را برای اجرای آزمایش‌های دسترسی با: abd install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk

      در دستگاه، تفویض اختیار را فعال کنید: Settings > Accessibility > Accessibility > Delegating Accessibility Service .

    • نسخه‌های 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. فایل های لازم را کپی کنید:

      • برای کپی کردن کلیپ ها با وضوح 720x480، اجرا کنید:

        ./copy_media.sh 720x480
        
      • اگر از حداکثر وضوح مطمئن نیستید، همه فایل ها را کپی کنید:

        ./copy_media.sh all
        
      • اگر چندین دستگاه تحت adb وجود دارد، گزینه سریال ( -s ) یک دستگاه خاص را به انتها اضافه کنید. به عنوان مثال، برای کپی کردن تا 720x480 در دستگاه با سریال 1234567، اجرا کنید:

        ./copy_media.sh 720x480 -s 1234567