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

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

محیط فیزیکی را تنظیم کنید

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

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

    • بیکن ها نیازی به پیکربندی یا انتشار چیز خاصی ندارند.
    • چراغ‌ها می‌توانند هر نوع باشند، از جمله 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. اطمینان حاصل کنید که شبکه Wi-Fi شما از IPv4 و IPv6 پشتیبانی می کند، دارای اتصال اینترنت با DNS برای IPv4 و IPv6 است، از IP multicast پشتیبانی می کند و می تواند DUT را به عنوان یک کلاینت ایزوله در نظر بگیرد.

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

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

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

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

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

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

    در اینجا دو دستگاه توصیه شده از Wi-Fi RTT وجود دارد: - Google Wifi - نقطه دسترسی fitlet2 Compulab (پهنای باند 40 مگاهرتز در 5 گیگاهرتز تنظیم شده است).

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

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

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

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

  • یک سیستم 64 بیتی x86

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

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

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

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

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

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

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

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

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

  4. (اختیاری) برای اندروید 13 یا بالاتر، virtualenv را نصب کنید. ابزار virtualenv برای تست های چند دستگاهی مورد نیاز است.

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

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

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

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

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

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

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

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

برای راه اندازی DUT:

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

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

    PRODUCT_SHIPPING_API_LEVEL := 21
    

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

    برای Android 10 یا پایین‌تر، به تنظیم CTS (AOSP 10 یا پایین‌تر) مراجعه کنید.

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

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

    1. بسته های APEX shim را برای نسخه اندروید و معماری سخت افزار خاص خود دانلود کنید. دو ستون سمت راست در جدول shim packages پیوندهایی به بسته ها برای دانلود ارائه می دهد.
    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 برای Secure Element مراجعه کنید.

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

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

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

  10. اطمینان حاصل کنید که دستگاه شما دارای یک سیم کارت با امتیازات شرکت مخابراتی CTS است که الزامات مشخص شده در تهیه 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 در دسته تنظیمات سیستم ظاهر می شود.

    2. روی USB debugging ضربه بزنید.

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

  8. زمان را به فرمت 12 ساعته تنظیم کنید.

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

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

    1. به گزینه های برنامه نویس بروید.

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

  11. در اندروید 13 یا بالاتر، مودم ساختگی را فعال کنید:

    1. به گزینه های برنامه نویس بروید.

    2. روی Allow Mock Modem ضربه بزنید.

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

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

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

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

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

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

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

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

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

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

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

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

        ./copy_media.sh 720x480 -s 1234567

فایل های CTS مربوط به Mainline را دانلود کنید

برای دانلود فایل های CTS مربوط به Mainline:

  1. سطح Android API را در دستگاه با اجرای:

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

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

بسته های شیم

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

نسخه دستگاه بسته ها (در صورت پشتیبانی از APEX) بسته ها (اگر APEX پشتیبانی نمی شود)
ARM x86 ARM x86
اندروید 15 15-arm-release android15-x86-release android15-arm-CtsShim.apk

android15-arm-CtsShimPriv.apk

android15-x86-CtsShim.apk

android15-x86-CtsShimPriv.apk

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

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

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

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

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

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

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

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

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

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

اندروید 9، O و O-MR1 N/A N/A arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

بعدش چی؟

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