הגדרת בדיקות אוטומטיות של CTS

לפני שאפשר להריץ בדיקות CTS אוטומטיות, צריך להכין את הסביבה הפיזית, להגדיר את תחנת העבודה ולהגדיר את המכשיר שרוצים לבדוק.

הגדרת סביבה פיזית

בבדיקות CTS מסוימות צריך להשתמש במכשירים חיצוניים שצריך להגדיר ליד ה-DUT. כדי להגדיר את הסביבה הפיזית:

  1. (אופציונלי) אם ה-DUT תומך ב-Bluetooth LE, צריך למקם לפחות שלושה סמנים של Bluetooth LE בטווח של 5 מטרים מה-DUT לצורך בדיקת הסריקה של Bluetooth LE. בנוסף:

    • אין צורך להגדיר את הסמנים או לגרום להם לשדר משהו ספציפי.
    • הסמנים יכולים להיות מכל סוג, כולל iBeacon,‏ Eddystone או אפילו מכשירים שמחקים סמנים של BLE.
  2. מניחים את הטלפון מול סצנה, כמו קיר או תקרה, במרחק שווה למרחק המיקוד המינימלי של ה-DUT. בנוסף:

    • התאורה בסצנה צריכה להיות מספקת כדי לאפשר לחיישנים שנבדקים להגיע לקצב הפריימים היעד המרבי לשנייה (FPS) שהוגדר, ולהישאר בקצב הזה, כפי שמפורט בקטע CONTROL_AE_TARGET_FPS_RANGE.
    • ההגדרה הזו חלה על כל חיישני המצלמה שgetCameraIdList מדווח עליהם, כי הבדיקה חוזרת על עצמה במכשירים המפורטים ומדידה את הביצועים בנפרד.
    • אם ה-DUT תומך במצלמות חיצוניות, כמו מצלמות רשת מסוג USB, צריך לחבר מצלמה חיצונית כשמריצים את CTS. אחרת, בדיקות CTS נכשלות.
  3. (אופציונלי) אם ה-DUT תומך במערכת למיקום גיאוגרפי (GPS) או במערכת אחרת של לווייני ניווט גלובלי (GNSS), מספקים ל-DUT אות GNSS ברמת אות מתאימה לצורך קליטה וחישוב מיקום. בנוסף:

    • ה-GPS חייב לעמוד בדרישות של ICD-GPS-200C.
    • האות של GNSS יכול להיות מכל סוג, כולל סימולטור לוויין או מכשירים לחיזוק אותות באוויר הפתוח.
    • אפשר למקם את ה-DUT ליד חלון כדי שהוא יוכל לקבל ישירות מספיק אותות GNSS מלוויין.
  4. חשוב לוודא שרשת ה-Wi-Fi תומכת ב-IPv4 וב-IPv6, שיש לה חיבור לאינטרנט עם DNS ל-IPv4 ול-IPv6, שהיא תומכת בשידור IP מרובה (multicast) ושהיא יכולה להתייחס ל-DUT כלקוח מבודד.

    אם אין לכם גישה לרשת IPv6 מקומית, לרשת ספקי IPv6 או ל-VPN כדי לעבור את בדיקות IPv6, תוכלו להשתמש בנקודת גישה (AP) ל-Wi-Fi ובמנהרת IPv6.

  5. מוודאים שהדגלים UP,‏ BROADCAST ו-MULTICAST מוגדרים בממשק ה-Wi-Fi של ה-DUT.

  6. מוודאים שמוקצות כתובות IPv4 ו-IPv6 לממשק ה-Wi-Fi. כדי לבדוק את מאפייני ממשק ה-Wi-Fi, מריצים את הפקודה adb shell ifconfig.

  7. (אופציונלי) אם ה-DUT תומך בפעילות בו-זמנית של STA או STA ב-Wi-Fi, צריך להגדיר לפחות שתי רשתות Wi-Fi. רשתות ה-Wi-Fi האלה צריכות לפעול בתדרים שונים עם מזהי SSID שונים, או באותו מזהה SSID עם מזהי BSSID שונים.

  8. (אופציונלי) אם מכשיר ה-DUT תומך בזמן נסיעה הלוך ושוב (RTT) ב-Wi-Fi, מגדירים מכשיר שתומך ב-RTT ב-Wi-Fi:

    1. מניחים את מכשיר ה-Wi-Fi RTT במרחק של 12 מטרים מה-DUT.
    2. מפעילים את מכשיר ה-Wi-Fi RTT.

    אלה שני מכשירים מומלצים שתומכים ב-Wi-Fi RTT: - Google Wifi - נקודת הגישה fitlet2 של Compulab (מוגדרת לרוחב פס של 40 MHz ב-5 GHz).

הגדרת המחשב

לפני שמריצים את הבדיקות האוטומטיות של CTS, צריך לוודא שמחשב המחשבה עומד בדרישות החומרה ומערכת ההפעלה, ושהתוכנה המתאימה מותקנת בו, כפי שמתואר בקטעים הבאים.

עמידה בדרישות החומרה

המחשב הנייח של CTS צריך לעמוד בדרישות החומרה הבאות או לעלות עליהן:

  • מערכת x86 של 64 ביט

  • מקום פנוי בכונן בנפח של לפחות 256GB כדי להכיל את מספר הגדול יותר של תרחישי הבדיקה ב-CTS ואת העלייה בהזמנת שטח ב-heap של Java ב-Tradefed

  • זיכרון RAM בנפח 32GB לפחות

עמידה בדרישות של מערכת ההפעלה

במכונה לפתח צריכה לפעול הפצת Linux של 64 ביט עם GNU C Library‏ (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 only (כלים של שורת הפקודה בלבד) שבתחתית דף ההורדה של Android Studio.
    2. מעדכנים את נתיב המערכת כך שיכלול את המיקום של sdkmanager שהותקן.
    3. באמצעות sdkmanager, מתקינים את החבילות העדכניות של platform-tools ו-build-tools. החבילות האלה מכילות את adb ואת AAPT2. מידע נוסף על התקנת חבילות זמין במאמר התקנת חבילות.
    4. מעדכנים את הנתיב כך שיכלול את המיקום של הכלים adb ו-AAPT2 שהותקנו.
    5. מוודאים ש-adb ו-AAPT2 נמצאים בנתיב.
  3. מתקינים את הגרסה המתאימה של Java Development Kit‏ (JDK):

  4. (אופציונלי) ב-Android מגרסה 13 ואילך, מתקינים את virtualenv. הכלי virtualenv נדרש לבדיקות במכשירים מרובים.

  5. כדי לוודא ש-Python מותקנת, מקלידים python3. הגרסה והתאריך של Python אמורים להופיע, מה שמציין ש-Python מותקן כראוי.

  6. מורידים ומפתחים את חבילות ה-CTS מהורדות של ערכת בדיקות התאימות שתואמות לגרסה של Android במכשירים ולכל ממשקי ה-ABI (Application Binary Interface) שהמכשירים תומכים בהם.

  7. מורידים את הגרסה האחרונה של קובצי המדיה של CTS ופותחים אותה. קובצי המדיה כוללים קליפים מהסרט Big Buck Bunny, שזכויות היוצרים עליהם שייכות ל-Blender Foundation במסגרת רישיון Creative Commons Attribution 3.0.

  8. (אופציונלי) כשמריצים את CTS בפעם הראשונה, הוא מוריד באופן דינמי חלק מקובצי CTS שקשורים ל-Mainline. בהתאם למהירות הרשת, ההורדה הזו מוסיפה 10 דקות או יותר לזמן הריצה של CTS.

    כדי להימנע מזמן הריצה הנוסף של CTS, אפשר להוריד את קובצי CTS שקשורים ל-Mainline לפני שמריצים את CTS. מידע נוסף על הורדת קובצי CTS שקשורים ל-Mainline זמין במאמר הורדת קובצי CTS שקשורים ל-Mainline.

הכנת ה-DUT

אחרי שמגדירים את המחשב, צריך להגדיר את ה-DUT.

הגדרת ה-DUT

כדי להגדיר את ה-DUT:

  1. מוודאים שבמכשיר הבדיקה פועל קובץ אימג' של מערכת שמבוסס על גרסה תואמת של build למשתמש (Android 4.0 ואילך) משמות קוד, תגים ומספרי build, ומשתמשים בגרסה user של build. מידע נוסף על וריאנטים של גרסאות build זמין במאמר בחירת יעד.

  2. אם ב-DUT פועלת מערכת Android מגרסה 13 ואילך, צריך לוודא שה-build מוגדר ל-ro.product.first_api_level ברמת ה-API שבה המכשיר הושק מסחרית. כדי להגדיר את הערך הזה, מבצעים את השינוי הבא בקובץ device.mk:

    PRODUCT_SHIPPING_API_LEVEL := 21
    

    דרישות מסוימות של CTS תלויות בגרסה (build) שבה המכשיר נשלח במקור. לדוגמה, יכול להיות שמכשירים ששווקו במקור עם גרסאות build מוקדמות יותר לא ייכללו בדרישות המערכת שחלות על מכשירים ששווקו עם גרסאות build מאוחרות יותר. כדי לראות את הערכים התקינים של רמת ה-API, אפשר לעיין במאמר שמות קוד, תגים ומספרי build. למידע נוסף על ro.product.first_api_level, ראו רמת ה-API של הספק.

    למכשירי Android מגרסה 10 ומטה, ראו הגדרת CTS (AOSP 10 או גרסאות קודמות).

  3. אם המכשיר תומך בניהול חבילות APEX:

    1. מורידים את חבילת ה-shim של APEX לגרסה הספציפית של Android ולארכיטקטורת החומרה. שתי העמודות הימניות בטבלה shim packages מספקות קישורים לחבילה שצריך להוריד.
    2. מעתיקים את החבילה שהורדתם אל /system/apex.
    3. משנים את שם הקובץ ל-com.android.apex.cts.shim.apex.
  4. אם המכשיר לא תומך בניהול חבילות APEX:

    1. מורידים את חבילות ה-shim של APEX לגרסה הספציפית של Android ולמבנה החומרה. שתי העמודות השמאליות בטבלה 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 או בכרטיס ה-SIM שבו ה-DUT משתמש. מידע נוסף זמין במאמר בדיקת CTS לרכיב מאובטח.

  7. אם למכשיר אין מסך מובנה, צריך לחבר מסך למכשיר.

  8. אם במכשיר יש חריץ לכרטיס זיכרון, מחברים כרטיס SD ריק. כדי לוודא שהכרטיס עובר את הבדיקה CTS, צריך להשתמש בכרטיס SD שתומך באוטובוס במהירות גבוהה במיוחד (UHS) עם קיבולת SDHC או SDXC, או בכרטיס עם סיווג מהירות 10 ומעלה.

  9. אם במכשיר יש חריצים לכרטיסי SIM, צריך להכניס כרטיס SIM מופעל לכל חריץ. אם המכשיר תומך ב-SMS, צריך לאכלס את שדה המספר של כל כרטיס SIM בנפרד. במכשירים עם Android מגרסה 12 ואילך, כל כרטיסי ה-SIM חייבים לתמוך באחסון של מספרי חיוג מקוצרים (ADN). כרטיסי GSM ו-USIM עם הקובץ הייעודי לטלקום (DFTelecom) עומדים בדרישות האלה.

  10. מוודאים שבמכשיר יש כרטיס SIM עם הרשאות ספק 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 שבע פעמים. האפשרות אפשרויות למפתחים מופיעה בקטגוריית ההגדרות מערכת.

    2. מקישים על ניפוי באגים ב-USB.

    כדי להפעיל ניפוי באגים ב-USB ב-Android מגרסה 10 ומטה, תוכלו לעיין במאמר הגדרת CTS (AOSP מגרסה 10 ומטה).

  8. מגדירים את הזמן בפורמט של 12 שעות.

  9. מפעילים את האפשרות אפשרויות למפתחים > מצב 'לא ישן'.

  10. משביתים את האימות של אפליקציות באמצעות USB:

    1. עוברים אל אפשרויות למפתחים.

    2. מקישים על אימות אפליקציות באמצעות USB.

  11. ב-Android מגרסה 13 ואילך, מפעילים את ההגדרה 'מודם מדומה':

    1. עוברים אל אפשרויות למפתחים.

    2. מקישים על הרשאה לשימוש במודם מדומה.

    ההגדרה הזו נדרשת לבדיקות טלפוניה ספציפיות.

במחשב:

  1. פותחים את הדפדפן ומבטלים את כל מסך ההפעלה או ההגדרה.

  2. מחברים את ה-DUT למחשב השולחני באמצעות כבל USB.

  3. אם המערכת מבקשת לאשר מפתח RSA שמאפשר ניפוי באגים דרך המחשב הזה, לוחצים על אישור ניפוי באגים ב-USB.

  4. מגדירים את Roboto2 כגופן סנס-סריפ באמצעות הגדרה נגישה למשתמש (לא מוסתרת).

  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 של Mainline.

    ההורדה נמשכת לפחות 10 דקות, בהתאם למהירות הרשת.

חבילות shim

בטבלה הבאה מפורטות החבילות הזמינות לכל גרסה וארכיטקטורה של מכשיר:

גרסת המכשיר חבילות (אם יש תמיכה ב-APEX) חבילות (אם אין תמיכה ב-APEX)
דריכה x86 דריכה x86
Android 15 15-arm-release android15-x86-release android15-arm-CtsShim.apk

android15-arm-CtsShimPriv.apk

android15-x86-CtsShim.apk

android15-x86-CtsShimPriv.apk

Android 14 android14-arm-release android14-x86-release android14-arm-CtsShim.apk

android14-arm-CtsShimPriv.apk

android14-x86-CtsShim.apk

android14-x86-CtsShimPriv.apk

Android 13 android13-arm-release android13-x86-release android13-arm-CtsShim.apk

android13-arm-CtsShimPriv.apk

android13-x86-CtsShim.apk

android13-x86-CtsShimPriv.apk

12 ‏Android android12-arm-release android12-x86-release android12-arm-CtsShim.apk

android12-arm-CtsShimPriv.apk

android12-x86-CtsShim.apk

android12-x86-CtsShimPriv.apk

Android 11 android11-arm-release android11-x86-release android11-arm-CtsShim.apk

android11-arm-CtsShimPriv.apk

android11-x86-CtsShim.apk

android11-x86-CtsShimPriv.apk

Android 10 android10-release android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

Android 9,‏ O ו-O-MR1 לא רלוונטי לא רלוונטי arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

מה השלב הבא?

אחרי קריאת המסמך הזה, ממשיכים להרצת בדיקות CTS אוטומטיות.