הגדר CTS

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

סביבה פיזית

משואות Bluetooth LE

אם המכשיר הנבדק (DUT) תומך ב-Bluetooth LE, הצב לפחות שלוש משואות Bluetooth LE בטווח של 5 מטרים מה-DUT לבדיקת סריקת Bluetooth LE. אין צורך להגדיר את המשואות הללו או לפלוט שום דבר ספציפי, והן יכולות להיות מכל סוג, כולל iBeacon, Eddystone, או אפילו מכשירים המדמים משואות BLE.

פס רחב במיוחד

אם ה-DUT תומך בפס רחב במיוחד (UWB), מכשיר אחר התומך ב-UWB חייב להיות ממוקם קרוב מספיק ומכוון כך שלא יהיו אנטנות ואזור מת של רדיו. עבור מבחני דיוק המרחק, ישנם צורכי מיקום והתמצאות ספציפיים. לפרטי הגדרה, ראה דרישות UWB . יש להפעיל את בדיקת UWB באופן ידני, תוך ציון בשורת הפקודה אילו שני מכשירים נמצאים במרחק של מטר אחד. לפרטים על ריסוק הנדרש לבדיקה זו, ראה ריסוק מקומי .

מצלמות

בעת הפעלת 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 Multicast ויכולה להתייחס ל-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 STA/STA Concurrency , נדרשות מספר רשתות Wi-Fi (לפחות 2). כדי לעבור CTS, רשתות ה-Wi-Fi חייבות לפעול על פסים שונים עם SSID שונים או על אותו SSID עם BSSID שונים.

Wi-Fi RTT

אנדרואיד כולל את ה- Wi-Fi RTT API עבור יכולת Wi-Fi הלוך ושוב (RTT) . זה מאפשר למכשירים למדוד את המרחק שלהם לנקודות גישה בדיוק של 1 עד 2 מטר, מה שמגדיל משמעותית את דיוק המיקום הפנימי. שני מכשירים מומלצים התומכים ב-Wi-Fi RTT הם Google Wifi ונקודת הגישה fitlet2 של Compulab (מוגדרת ברוחב פס של 40 מגה-הרץ ב-5 גיגה-הרץ).

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

הגדרת מחשב שולחני

זהירות : CTS תומך במכונות לינוקס של 64 סיביות. CTS אינו נתמך במערכת ההפעלה Windows או MacOS.

FFMPEG

התקן את חבילת ffmpeg גרסה 5.1.3 (או מאוחר יותר) במחשב המארח.

שדרוג מחשב מארח

מומלץ מאוד לשדרג את זיכרון ה-RAM של המכונה המארח CTS ל-128GB ואת HDD ל-256GB. זה נדרש כדי להכיל את המספר המוגדל של מקרי בדיקה של CTS והגדלה של שמירת שטח ג'אווה ב-Tradefed.

ADB ו-AAPT2

לפני הפעלת ה-CTS, ודא שהתקנת את הגרסאות האחרונות של Android Debug Bridge (adb) ושל Android Asset Packaging Tool (AAPT2) והוספת את המיקום של כלים אלה לנתיב המערכת של המחשב שלך.

כדי להתקין את ADB ו-AAPT2, הורד את הכלים העדכניים ביותר של Android SDK Platform Tools וכלי בניית Android SDK ממנהל SDK של Android Studio או מכלי שורת הפקודה sdkmanager .

ודא ש- adb ו- aapt2 נמצאים בנתיב המערכת שלך. הפקודה הבאה מניחה שהורדת את ארכיון החבילות לספריית משנה בשם android-sdk בספריית הבית שלך:

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

ערכת פיתוח Java עבור אובונטו

התקן את הגרסה המתאימה של ערכת הפיתוח של Java (JDK) .

  • עבור אנדרואיד 11, התקן את OpenJDK11.
  • עבור אנדרואיד 9 ואנדרואיד 10, התקן את OpenJDK9.
  • עבור אנדרואיד 7.0, 7.1, 8.0 ו-8.1, התקן את OpenJDK8.

לפרטים, עיין בדרישות JDK .

הגדרה לתמיכה ב-Python

התקן virtualenv עבור הפלטפורמה שלך על ידי ביצוע הוראות ההתקנה .

אתה יכול לוודא שההתקנה הצליחה על ידי הפעלת virtualenv -h .

קבצי CTS

הורד ופתח את חבילות ה-CTS מ- Compatibility Test Suite הורדות התואמות את גרסת ה-Android של המכשירים שלך ולכל הממשקים הבינאריים של האפליקציות (ABI) שהמכשירים שלך תומכים בהם.

הורד ופתח את הגרסה העדכנית ביותר של קובצי המדיה של CTS .

זיהוי מכשיר

בצע את השלב כדי להגדיר את המערכת שלך כדי לזהות את המכשיר שלך .

מגבלת זיכרון

ייתכן שתרצה להגדיל את הזיכרון המרבי הזמין במהלך הפעלת הבדיקה בסקריפט ה-cts-tradefed . עיין בדוגמה CL למידע נוסף.

הגדרת מכשיר אנדרואיד

בניית משתמש

מכשיר תואם מוגדר כמכשיר עם מבנה חתום של משתמש/מפתח שחרור. המכשיר שלך אמור להפעיל תמונת מערכת המבוססת על מבנה המשתמש הידוע כתואם (Android 4.0 ומעלה) מ- Codenames, Tags ו-Build Numbers .

נכס בנייה ראשון ברמת API

דרישות CTS מסוימות תלויות במבנה שאיתו נשלח התקן במקור. לדוגמה, מכשירים שנשלחו במקור עם גרסאות קודמות עשויות להיות חריגות מדרישות המערכת החלות על מכשירים שנשלחו עם גרסאות מאוחרות יותר.

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

יצרני המכשירים יכולים לעשות שימוש חוזר ביישום הבסיסי המשותף כדי להשיק מוצר חדש כשדרוג של מוצר קיים באותה קבוצת מכשירים. יצרני המכשירים יכולים להגדיר באופן אופציונלי את רמת ה-API של המוצר הקיים ל- 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

רמת API ראשונה עבור אנדרואיד 9 ומעלה

עבור מכשירים שהושקו עם אנדרואיד 9 ומעלה, הגדר את המאפיין ro.product.first_api_level לערך חוקי מתוך Codenames, Tags ו-Build Numbers .

רמת API ראשונה עבור אנדרואיד 8.x ומטה

עבור מכשירים שהושקו ב-Android 8.x ומטה, בטל (הסר) את המאפיין ro.product.first_api_level עבור הגירסה הראשונה של המוצר. עבור כל הגירסאות הבאות, הגדר את ro.product.first_api_level לערך הנכון ברמת ה-API. זה מאפשר למאפיין לזהות נכון מוצר חדש ושומר מידע על רמת ה-API הראשונה של המוצר. אם הדגל אינו מוגדר, אנדרואיד מקצה את Build.VERSION.SDK_INT ל- ro.product.first_api_level .

חבילות shim CTS

אנדרואיד 10 ומעלה כולל פורמט חבילה בשם APEX . כדי להפעיל בדיקות CTS עבור ממשקי API לניהול APEX (כגון עדכון לגרסה חדשה או דיווח על APEXs פעילים) עליך להתקין מראש חבילת CtsShimApex במחיצת /system .

מבחן אימות shim APEX מאמת את היישום של CtsShimApex .

דרישות לעדכון ro.apex

  • אם המאפיין ro.apex.updatable מוגדר כ- true , CtsShimApex נדרש עבור כל המכשירים התומכים בניהול חבילות APEX.

  • אם המאפיין ro.apex.updatable חסר או לא מוגדר, אין צורך בהתקנה מראש של CtsShimApex במכשיר.

מבחן אימות shim APEX מאמת את היישום של CtsShimApex .

CtsShim מתקין ומטען מראש

החל מאנדרואיד 11, CtsShimApex מכיל שתי אפליקציות מובנות מראש (הבנויות ממקור build ), שאינן מכילות שום קוד מלבד המניפסט. CTS משתמש באפליקציות אלה כדי לבדוק הרשאות והרשאות.

אם המכשיר אינו תומך בניהול חבילות APEX (כלומר, המאפיין ro.apex.updatable חסר או אינו מוגדר), או אם המכשיר פועל בגרסה 10 ומטה, יש להתקין מראש את שתי האפליקציות המובנות מראש מערכת בנפרד.

אם APEX נתמך, יש למקם את ההתקנות המוקדמות עבור המהדורה המתאימה בתור /system/apex/com.android.apex.cts.shim.apex .

אם נעשה שימוש באפליקציות רגילות שנבנו מראש, יש למקם CtsShim ו- CtsShimPriv עבור המהדורה המתאימה בתור /system/app/CtsShimPrebuilt.apk ו-/system/priv-app/ /system/priv-app/CtsShimPrivPrebuilt.apk בהתאמה.

הטבלה הבאה מפרטת את ההתקנות והטעינות המוקדמות הזמינות עבור כל גרסת מכשיר וארכיטקטורה.

גרסת מכשיר התקנה מראש
(אם APEX נתמך)
טעינה מראש
זְרוֹעַ x86 זְרוֹעַ x86
אנדרואיד 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 מהדורת אנדרואיד10 android10-arm-CtsShim.apk

android10-arm-CtsShimPriv.apk

android10-x86-CtsShim.apk

android10-x86-CtsShimPriv.apk

אנדרואיד 9, O ו-O-MR1 לא לא arm-CtsShim.apk

arm-CtsShimPriv.apk

x86-CtsShim.apk

x86-CtsShimPriv.apk

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

יישומון לדוגמא

אנדרואיד 9 הציגה ממשקי API של Open Mobile. עבור מכשירים המדווחים על יותר מאלמנט מאובטח אחד, CTS מוסיפה מקרי בדיקה כדי לאמת את ההתנהגות של ממשקי API של Open Mobile. מקרי בדיקה אלה דורשים התקנה חד פעמית של יישומון לדוגמה לתוך ה-Secure Element (eSE) המוטבע של ה-DUT או לתוך כרטיס ה-SIM המשמש את ה-DUT. ניתן למצוא את היישומון לדוגמה של eSE והיישומון לדוגמה של ה-SIM ב-AOSP.

ראה בדיקת CTS for Secure Element למידע מפורט יותר על מקרי בדיקה של Open Mobile API ומקרי בדיקה של בקרת גישה.

דרישות אחסון

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

השטח הדרוש תלוי ברזולוציית השמעת הווידאו המקסימלית הנתמכת על ידי המכשיר. ראה סעיף 5 במסמך הגדרת תאימות אנדרואיד לגרסת הפלטפורמה של הרזולוציות הנדרשות.

להלן דרישות האחסון לפי רזולוציית השמעת וידאו מקסימלית:

  • 480x360: 98 MB
  • 720x480: 193 MB
  • 1280x720: 606 MB
  • 1920x1080: 1863 MB

מסך ואחסון

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

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

מפתח UICC

כדי להפעיל בדיקות API של ספק CTS, המכשיר צריך להשתמש ב-SIM עם הרשאות ספק 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 באמצעות הגדרת תקציב נגיש למשתמש (לא מוסתר).

התקנת קבצים

התקן והגדר אפליקציות מסייעות במכשיר.

  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. העתק את הקבצים הדרושים:

      • כדי להעתיק קליפים עד רזולוציה של 720x480, הפעל:

        ./copy_media.sh 720x480
        
      • אם אינך בטוח ברזולוציה המקסימלית, העתק את כל הקבצים:

        ./copy_media.sh all
        
      • אם ישנם התקנים מרובים תחת adb, הוסף את האפשרות הטורית ( -s ) של התקן ספציפי עד הסוף. לדוגמה, כדי להעתיק עד 720x480 למכשיר עם 1234567 סדרתי, הפעל:

        ./copy_media.sh 720x480 -s 1234567