تست خودکار CTS را تنظیم کنید

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

تنظیم محیط فیزیکی

برخی از آزمایش‌های CTS نیاز به نصب دستگاه‌های خارجی در نزدیکی DUT دارند. برای تنظیم محیط فیزیکی خود:

  1. (اختیاری) اگر دستگاه DUT شما از بلوتوث LE پشتیبانی می‌کند، برای آزمایش اسکن بلوتوث LE، حداقل سه بیکن بلوتوث LE را در فاصله ۵ متری از دستگاه DUT قرار دهید. علاوه بر این:

    • چراغ‌های راهنما نیازی به پیکربندی یا انتشار چیز خاصی ندارند.
    • این بیکن‌ها می‌توانند از هر نوعی باشند، از جمله iBeacon، Eddystone یا حتی دستگاه‌هایی که بیکن‌های BLE را شبیه‌سازی می‌کنند.
  2. گوشی را در مقابل یک صحنه، مانند دیوار یا سقف، در فاصله‌ای معادل حداقل فاصله فوکوس DUT قرار دهید. علاوه بر این:

    • صحنه باید از نور کافی برخوردار باشد تا حسگرهای تحت آزمایش بتوانند به حداکثر فریم هدف پیکربندی شده در ثانیه (FPS) مطابق با آنچه در CONTROL_AE_TARGET_FPS_RANGE مشخص شده است، برسند و در آن باقی بمانند.
    • این تنظیمات برای تمام سنسورهای دوربین گزارش شده توسط getCameraIdList اعمال می‌شود، زیرا آزمایش روی دستگاه‌های ذکر شده تکرار می‌شود و عملکرد را به صورت جداگانه اندازه‌گیری می‌کند.
    • اگر DUT از دوربین‌های خارجی، مانند وب‌کم‌های USB، پشتیبانی می‌کند، هنگام اجرای CTS یک دوربین خارجی وصل کنید. در غیر این صورت، آزمایش‌های CTS با شکست مواجه می‌شوند.
  3. (اختیاری) اگر دستگاه DUT شما از سیستم موقعیت‌یابی جهانی (GPS) یا سایر سیستم‌های ماهواره‌ای ناوبری جهانی (GNSS) پشتیبانی می‌کند، یک سیگنال GNSS را در سطح سیگنال مناسب برای دریافت و محاسبه موقعیت مکانی به DUT ارائه دهید. علاوه بر این:

    • GPS باید با ICD-GPS-200C مطابقت داشته باشد.
    • سیگنال GNSS می‌تواند از هر نوعی باشد، از جمله شبیه‌ساز ماهواره یا تکرارکننده سیگنال‌های فضای باز.
    • می‌توانید DUT را نزدیک پنجره قرار دهید تا بتواند مستقیماً سیگنال GNSS کافی را از ماهواره دریافت کند.
  4. مطمئن شوید که شبکه وای‌فای شما از IPv4 و IPv6 پشتیبانی می‌کند، به اینترنت با DNS برای IPv4 و IPv6 متصل است، از IP multicast پشتیبانی می‌کند و می‌تواند DUT را به عنوان یک کلاینت ایزوله در نظر بگیرد.

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

  5. مطمئن شوید که DUT پرچم‌های UP ، BROADCAST و MULTICAST را روی رابط Wi-Fi تنظیم کرده است.

  6. مطمئن شوید که رابط Wi-Fi آدرس‌های IPv4 و IPv6 اختصاص داده شده است. برای بررسی ویژگی‌های رابط Wi-Fi، adb shell ifconfig اجرا کنید.

  7. (اختیاری) اگر دستگاه دیجیتال شما از Wi-Fi STA یا STA concurrency پشتیبانی می‌کند، حداقل دو شبکه Wi-Fi راه‌اندازی کنید. این شبکه‌های Wi-Fi باید روی باندهای مختلف با SSID های مختلف یا روی SSID یکسان با BSSID های مختلف اجرا شوند.

  8. (اختیاری) اگر دستگاه شما از زمان رفت و برگشت وای‌فای (RTT) پشتیبانی می‌کند، دستگاهی را تنظیم کنید که از Wi-Fi RTT پشتیبانی کند:

    1. دستگاه Wi-Fi RTT را در فاصله 40 فوتی از DUT قرار دهید.
    2. دستگاه Wi-Fi RTT را روشن کنید.

    در اینجا دو دستگاه پیشنهادی که از Wi-Fi RTT پشتیبانی می‌کنند، معرفی شده‌اند: - Google Wifi - اکسس پوینت fitlet2 از شرکت Compulab (با پهنای باند ۴۰ مگاهرتز در فرکانس ۵ گیگاهرتز تنظیم شده است).

دستگاه رومیزی خود را تنظیم کنید

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

برآورده کردن نیازهای سخت‌افزاری

دستگاه رومیزی CTS شما باید این الزامات سخت‌افزاری را برآورده کند یا از آنها فراتر رود:

  • یک سیستم ۶۴ بیتی x86

  • حداقل ۲۵۶ گیگابایت فضای دیسک خالی برای تطبیق با افزایش تعداد موارد تست CTS و افزایش رزرو فضای هیپ جاوا در Tradefed

  • حداقل ۳۲ گیگابایت رم

برآورده کردن الزامات سیستم عامل

  • دستگاه توسعه شما باید یک توزیع لینوکس ۶۴ بیتی با کتابخانه GNU C (glibc) 2.17 یا بالاتر را اجرا کند.

  • زبان سیستم عامل باید روی «انگلیسی» تنظیم شود تا CTS بتواند مسیر را به درستی تشخیص دهد.

نصب نرم‌افزار دسکتاپ

برای نصب نرم‌افزار دسکتاپ مناسب برای CTS:

  1. بسته FFmpeg نسخه ۵.۱.۳ یا بالاتر را نصب کنید.

  2. جدیدترین نسخه‌های Android Debug Bridge (adb) و Android Asset Packaging Tool (AAPT2) را نصب کنید و مکان این ابزارها را به مسیر سیستم دستگاه خود اضافه کنید:

    1. برای نصب ابزار خط فرمان sdkmanager ، دستورالعمل‌های ابتدای مستندات SDK Manager را دنبال کنید. لینک دانلود ابزارهای خط فرمان در بخش «فقط ابزارهای خط فرمان» در پایین صفحه دانلود اندروید استودیو قرار دارد.
    2. مسیر سیستم خود را به‌روزرسانی کنید تا محل sdkmanager تازه نصب شده را نیز شامل شود.
    3. با استفاده از sdkmanager ، جدیدترین بسته‌های platform-tools و build-tools را نصب کنید. این بسته‌ها حاوی adb و AAPT2 هستند. برای اطلاعات بیشتر در مورد نصب بسته‌ها، به بخش نصب بسته‌ها مراجعه کنید.
    4. مسیر خود را به‌روزرسانی کنید تا مکان ابزارهای adb و AAPT2 که به تازگی نصب شده‌اند را نیز شامل شود.
    5. تأیید کنید که adb و AAPT2 در مسیر شما هستند.
  3. نسخه مناسب کیت توسعه جاوا (JDK) را نصب کنید:

  4. (اختیاری) برای اندروید ۱۳ و ۱۴، virtualenv را نصب کنید. ابزار virtualenv برای تست‌های چنددستگاهی مورد نیاز است.

  5. برای اطمینان از نصب پایتون، python3 را تایپ کنید. نسخه و تاریخ پایتون باید نشان داده شود که نشان می‌دهد پایتون به درستی نصب شده است.

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

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

  8. (اختیاری) وقتی برای اولین بار CTS را اجرا می‌کنید، به صورت پویا برخی از فایل‌های CTS مربوط به خط اصلی را دانلود می‌کند. بسته به سرعت شبکه شما، این دانلود 10 دقیقه یا بیشتر به زمان اجرای CTS اضافه می‌کند.

    برای جلوگیری از این زمان اجرای اضافی CTS، می‌توانید فایل‌های CTS مربوط به Mainline را قبل از اجرای CTS دانلود کنید. برای اطلاعات بیشتر در مورد دانلود فایل‌های CTS مربوط به Mainline، به «دانلود فایل‌های CTS مربوط به Mainline» مراجعه کنید.

DUT را آماده کنید

پس از راه‌اندازی دستگاه رومیزی خود، باید DUT را راه‌اندازی و پیکربندی کنید.

DUT را تنظیم کنید

برای تنظیم DUT:

  1. مطمئن شوید که DUT در حال اجرای یک تصویر سیستمی بر اساس ساخت کاربر سازگار شناخته شده (اندروید ۴.۰ یا بالاتر) از Codenames، Tags و Build Numbers است و از نوع ساخت user استفاده می‌کند. برای اطلاعات بیشتر در مورد انواع ساخت، به Choose a target مراجعه کنید.

  2. اگر DUT از اندروید ۱۳ یا بالاتر استفاده می‌کند، مطمئن شوید که مقدار ro.product.first_api_level در build روی سطح API که دستگاه با آن به صورت تجاری عرضه شده است، تنظیم شده باشد. برای تنظیم این مقدار، تغییر زیر را در فایل device.mk اعمال کنید:

    PRODUCT_SHIPPING_API_LEVEL := 21 

    برخی از الزامات CTS به ساختاری که دستگاه در ابتدا با آن عرضه شده است بستگی دارد. به عنوان مثال، دستگاه‌هایی که در ابتدا با ساختارهای اولیه عرضه می‌شوند، ممکن است از الزامات سیستمی که برای دستگاه‌هایی که با ساختارهای بعدی عرضه می‌شوند، اعمال می‌شود، مستثنی باشند. برای مقادیر معتبر سطح API، به Codenames، Tags و Build Numbers مراجعه کنید. برای اطلاعات بیشتر در مورد ro.product.first_api_level ، به Vendor API level مراجعه کنید.

    برای اندروید ۱۰ یا پایین‌تر، به بخش تنظیم CTS (AOSP 10 یا پایین‌تر) مراجعه کنید.

  3. اگر دستگاه شما از مدیریت بسته APEX پشتیبانی می‌کند:

    1. بسته شیم APEX را برای نسخه اندروید و معماری سخت‌افزاری خاص خود دانلود کنید. دو ستون سمت چپ در جدول بسته‌های شیم، لینک‌های دانلود بسته را ارائه می‌دهند.
    2. بسته دانلود شده را در /system/apex کپی کنید.
    3. نام فایل را به com.android.apex.cts.shim.apex تغییر دهید.
  4. اگر دستگاه شما از مدیریت بسته APEX پشتیبانی نمی‌کند:

    1. بسته‌های شیم APEX را برای نسخه اندروید و معماری سخت‌افزاری خاص خود دانلود کنید. دو ستون سمت راست در جدول بسته‌های شیم ، لینک‌هایی به بسته‌های قابل دانلود ارائه می‌دهند.
    2. CtsShim.apk را در مسیر /system/app/ کپی کنید.
    3. CtsShim.apk را به CtsShimPrebuilt.apk تغییر نام دهید.
    4. فایل CtsShimPriv.apk را در مسیر /system/priv-app/ کپی کنید.
    5. CtsShimPriv.apk را به CtsShimPrivPrebuilt.apk تغییر نام دهید.
  5. اگر دستگاه شما بیش از یک عنصر امن را گزارش می‌دهد:

    1. google-cardlet.cap را دانلود کنید.
    2. فایل دانلود شده را در مسیر /data/uicc/cardlets/ کپی کنید.
  6. اگر دستگاه شما بیش از یک عنصر امن را گزارش می‌دهد، اپلت نمونه را در عنصر امن تعبیه‌شده (eSE) دستگاه DUT یا در سیم‌کارت مورد استفاده توسط دستگاه DUT نصب کنید. برای اطلاعات بیشتر، به بخش تست CTS برای عنصر امن مراجعه کنید.

  7. اگر دستگاه شما صفحه نمایش توکار ندارد، یک صفحه نمایش به دستگاه وصل کنید.

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

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

  10. مطمئن شوید که دستگاه شما دارای سیم‌کارتی با امتیازات اپراتور CTS است که الزامات مشخص شده در Prepare the UICC را برآورده می‌کند.

پیکربندی DUT

برای پیکربندی DUT خود برای استفاده با CTS، از مراحل زیر استفاده کنید.

روی DUT:

  1. دستگاه را به تنظیمات کارخانه برگردانید.

  2. زبان دستگاه را روی انگلیسی (ایالات متحده) تنظیم کنید.

  3. اگر دستگاه از سفارشی‌سازی فونت‌های پیش‌فرض پشتیبانی می‌کند، مطمئن شوید که خانواده فونت پیش‌فرض sans-serif روی Roboto تنظیم شده باشد.

  4. اگر دستگاه شما مجهز به GPS، Wi-Fi یا شبکه تلفن همراه است، تنظیمات موقعیت مکانی را فعال کنید.

  5. به یک شبکه Wi-Fi که از IPv6 پشتیبانی می‌کند، می‌تواند DUT را به عنوان یک کلاینت ایزوله در نظر بگیرد و به اینترنت متصل باشد، متصل شوید. برای توضیح کلاینت‌های ایزوله، به «تنظیم محیط فیزیکی» مراجعه کنید.

  6. مطمئن شوید که هیچ الگوی قفل یا رمز عبوری تنظیم نشده است.

  7. اشکال زدایی USB را فعال کنید:

    1. به تنظیمات > درباره تلفن بروید و هفت بار روی شماره ساخت (Build number) ضربه بزنید. گزینه‌های توسعه‌دهندگان (Developer options) در دسته تنظیمات سیستم (System settings) ظاهر می‌شود.

    2. روی اشکال‌زدایی USB ضربه بزنید.

    برای فعال کردن اشکال‌زدایی USB در اندروید ۱۰ یا پایین‌تر، به بخش تنظیم CTS (AOSP 10 یا پایین‌تر) مراجعه کنید.

  8. زمان را روی قالب ۱۲ ساعته تنظیم کنید.

  9. گزینه‌های توسعه‌دهنده > بیدار ماندن را فعال کنید.

  10. غیرفعال کردن تأیید برنامه USB:

    1. به گزینه‌های توسعه‌دهنده (Developer options) بروید.

    2. روی تأیید برنامه‌ها از طریق USB ضربه بزنید.

  11. در اندروید ۱۳ یا بالاتر، مودم آزمایشی را فعال کنید:

    1. به گزینه‌های توسعه‌دهنده (Developer options) بروید.

    2. روی «مجاز کردن مودم ساختگی» ضربه بزنید.

    این تنظیم برای آزمایش‌های خاص تلفنی مورد نیاز است.

روی دستگاه رومیزی:

  1. مرورگر را اجرا کنید و هرگونه صفحه راه‌اندازی یا تنظیمات را ببندید.

  2. DUT را با استفاده از کابل USB به دستگاه رومیزی وصل کنید.

  3. اگر سیستم از شما درخواست کرد که کلید RSA را بپذیرید که امکان اشکال‌زدایی از طریق این رایانه را فراهم می‌کند، روی «اجازه اشکال‌زدایی USB» کلیک کنید.

  4. با استفاده از تنظیمات affordance (نه پنهان) که در دسترس کاربر باشد، Roboto2 را به عنوان فونت sans-serif تنظیم کنید.

  5. فایل‌های رسانه‌ای CTS را در DUT کپی کنید:

    1. با استفاده از دستور ( cd ) به مسیری که فایل‌های رسانه دانلود و از حالت فشرده خارج شده‌اند، بروید.
    2. مجوزهای فایل را تغییر دهید:

      chmod u+x copy_media.sh 
    3. فایل‌ها را کپی کنید:

      • برای کپی کردن کلیپ‌ها تا وضوح ۷۲۰x۴۸۰، دستور زیر را اجرا کنید:

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

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

        ./copy_media.sh 720x480 -s 1234567

دانلود فایل‌های CTS مربوط به خط اصلی

برای دانلود فایل‌های CTS مربوط به خط اصلی:

  1. با اجرای دستور زیر، سطح API اندروید را روی دستگاه دریافت کنید:

    adb shell getprop ro.build.version.sdk 
  2. برای دانلود فایل‌های Mainline CTS، دستورالعمل‌های موجود در اسکریپت download_mcts.sh را دنبال کنید.

    بسته به سرعت اینترنت شما، دانلود حداقل ۱۰ دقیقه طول می‌کشد.

بسته‌های شیم

جدول زیر بسته‌های موجود برای هر نسخه و معماری دستگاه را فهرست می‌کند:

نسخه دستگاه بسته‌ها (در صورت پشتیبانی APEX) بسته‌ها (اگر APEX پشتیبانی نمی‌شود)
بازو ایکس۸۶ بازو ایکس۸۶
اندروید ۱۶ 16-arm-release android16-x86-release android16-arm-CtsShim.apk

android16-arm-CtsShimPriv.apk

android16-x86-CtsShim.apk

android16-x86-CtsShimPriv.apk

اندروید ۱۵ 15-arm-release android15-x86-release android15-arm-CtsShim.apk

android15-arm-CtsShimPriv.apk

android15-x86-CtsShim.apk

android15-x86-CtsShimPriv.apk

اندروید ۱۴ android14-arm-release android14-x86-release android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

اندروید ۱۳ android13-arm-release android13-x86-release android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

اندروید ۱۲ android12-arm-release android12-x86-release android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

اندروید ۱۱ android11-arm-release android11-x86-release android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

اندروید ۱۰ android10-release android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

اندروید ۹، O و O-MR1 ناموجود ناموجود arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

بعدش چی؟

پس از خواندن این سند، به اجرای تست‌های خودکار CTS ادامه دهید.