לפני שמריצים בדיקות CTS אוטומטיות, צריך להכין את הסביבה הפיזית, להגדיר את תחנת העבודה ולהגדיר את המכשיר שבודקים.
הגדרת הסביבה הפיזית
חלק מבדיקות ה-CTS דורשות שימוש במכשירים חיצוניים שצריך להגדיר אותם ליד ה-DUT. כדי להגדיר את הסביבה הפיזית:
אם ה-DUT תומך ב-Bluetooth LE, צריך למקם לפחות שלושה משדרי Bluetooth LE Beacon במרחק של עד 5 מטרים מה-DUT כדי לבצע בדיקות סריקה של Bluetooth LE. בנוסף:
- אין צורך להגדיר את משדרי ה-Beacon או לשדר משהו ספציפי.
- המגדלורים יכולים להיות מכל סוג, כולל iBeacon, Eddystone או אפילו מכשירים שמדמים מגדלורים של BLE.
ממקמים את ה-DUT מול סצנה, כמו קיר או תקרה, במרחק ששווה למרחק המיקוד המינימלי של ה-DUT. בנוסף:
- התאורה בסצנה צריכה להיות מספיק טובה כדי שהחיישנים שנבדקים יגיעו לקצב הפריימים המקסימלי לשנייה (FPS) שהוגדר כיעד, וישמרו עליו, כפי שמפורט במסמך
CONTROL_AE_TARGET_FPS_RANGE. - ההגדרה הזו חלה על כל חיישני המצלמה שמדווחים על ידי
getCameraIdList, כי הבדיקה חוזרת על עצמה במכשירים הרשומים ומודדת את הביצועים בנפרד. - אם המכשיר הנבדק תומך במצלמות חיצוניות, כמו מצלמות רשת בחיבור USB, צריך לחבר מצלמה חיצונית כשמריצים את CTS. אחרת, הבדיקות של CTS ייכשלו.
- התאורה בסצנה צריכה להיות מספיק טובה כדי שהחיישנים שנבדקים יגיעו לקצב הפריימים המקסימלי לשנייה (FPS) שהוגדר כיעד, וישמרו עליו, כפי שמפורט במסמך
אם ה-DUT תומך במערכת מיקום גלובלית (GPS) או במערכת לוויינית גלובלית אחרת לניווט (GNSS), צריך לספק ל-DUT אות GNSS ברמת אות מתאימה לקליטה ולחישוב המיקום. בנוסף:
- ה-GPS צריך לעמוד בדרישות של ICD-GPS-200C.
- אות ה-GNSS יכול להיות מכל סוג, כולל סימולטור של לוויין או משחזר של אותות בחוץ.
- אפשר למקם את המכשיר קרוב לחלון כדי שיוכל לקבל ישירות אות GNSS חזק מספיק מלוויין.
מוודאים שרשת ה-Wi-Fi תומכת ב-IPv4 וב-IPv6, שיש לה חיבור לאינטרנט עם DNS ל-IPv4 ול-IPv6, שהיא תומכת בשידור מרובה כתובות IP, ושניתן להתייחס למכשיר הנבדק כאל לקוח מבודד.
אם אין לכם גישה לרשת IPv6 מקומית, לרשת סלולרית IPv6 או ל-VPN כדי לעבור בדיקות IPv6, אתם יכולים להשתמש בנקודת גישה ל-Wi-Fi ובמנהרת IPv6.
מוודאים שדגלי
UP,BROADCASTו-MULTICASTמוגדרים בממשק ה-Wi-Fi של ה-DUT.מוודאים שכתובות IPv4 ו-IPv6 הוקצו לממשק ה-Wi-Fi. כדי לבדוק את מאפייני ממשק ה-Wi-Fi, מריצים את הפקודה
adb shell ifconfig.אם ה-DUT תומך בבו-זמניות של Wi-Fi STA או STA, צריך להגדיר לפחות שתי רשתות Wi-Fi. רשתות ה-Wi-Fi האלה צריכות לפעול בתדרים שונים עם מספרי SSID שונים, או באותו מספר SSID עם מספרי BSSID שונים.
אם ה-DUT תומך בזמן הלוך ושוב (RTT) של Wi-Fi, צריך להגדיר מכשיר שתומך ב-Wi-Fi RTT:
- ממקמים את מכשיר ה-Wi-Fi RTT במרחק של עד 12 מטרים מהמכשיר הנבדק.
- מפעילים את מכשיר ה-Wi-Fi RTT.
הנה שני מכשירים מומלצים שתומכים ב-Wi-Fi RTT: - Google Wifi - נקודת הגישה fitlet2 של Compulab (מוגדרת לרוחב פס של 40 MHz בתדר 5 GHz).
הגדרת המחשב
לפני שמריצים את הבדיקות האוטומטיות של CTS, צריך לוודא שהמחשב השולחני עומד בדרישות החומרה ומערכת ההפעלה, ושהתוכנה המתאימה מותקנת בו, כפי שמתואר בקטעים הבאים.
דרישות לציוד ל-Meet
המחשב שלכם שבו מותקן CTS צריך לעמוד בדרישות החומרה הבאות או להיות טוב יותר:
מערכת x86 בגרסת 64 ביט
לפחות 256 GB של מקום פנוי בכונן כדי לאפשר את הגידול במספר של תרחישי הבדיקה של CTS ואת הגידול בהקצאת מקום ב-Java heap ב-Tradefed
זיכרון RAM בנפח 32GB לפחות
עמידה בדרישות של מערכת ההפעלה
במחשב הפיתוח צריכה להיות מותקנת הפצת Linux 64 ביט עם GNU C Library (glibc) מגרסה 2.17 ואילך.
כדי ש-CTS יוכל לפתור את הנתיב בצורה נכונה, צריך להגדיר את השפה של מערכת ההפעלה ל'אנגלית'.
התקנת תוכנה במחשב
כדי להתקין את תוכנת שולחן העבודה המתאימה ל-CTS:
מתקינים את הגרסאות העדכניות של Android Debug Bridge (ADB) ושל Android Asset Packaging Tool (AAPT2) ומוסיפים את המיקום של הכלים האלה לנתיב המערכת של המחשב:
- פועלים לפי ההוראות שבתחילת התיעוד של SDK Manager כדי להתקין את כלי שורת הפקודה
sdkmanager. הקישור להורדת כלי שורת הפקודה נמצא בקטע Command line tools only (כלים לשורת הפקודה בלבד) בתחתית דף ההורדה של Android Studio. - מעדכנים את נתיב המערכת כך שיכלול את המיקום של
sdkmanagerשהותקן לאחרונה. - באמצעות
sdkmanager, מתקינים את החבילות העדכניות שלplatform-toolsושלbuild-tools. החבילות האלה מכילות את adb ו-AAPT2. מידע על התקנת חבילות זמין במאמר התקנת חבילות. - מעדכנים את הנתיב כך שיכלול את המיקום של כלי ה-adb ו-AAPT2 החדשים שהותקנו.
- מוודאים ש-adb ו-AAPT2 נמצאים בנתיב.
- פועלים לפי ההוראות שבתחילת התיעוד של SDK Manager כדי להתקין את כלי שורת הפקודה
מתקינים את הגרסה המתאימה של Java Development Kit (JDK):
- ב-Android מגרסה 11 ואילך, צריך להתקין JDK 11.
- ל-Android מגרסה 10 ומטה, אפשר לעיין במאמר הגדרת CTS (AOSP 10 ומטה).
ב-Android מגרסה 13 ומגרסה 14, צריך להתקין את virtualenv. הכלי virtualenv נדרש לבדיקות במכשירים מרובים.
כדי לוודא ש-Python מותקן, מקלידים
python3. גרסת Python והתאריך צריכים להופיע, כדי לציין ש-Python מותקן בצורה תקינה.מורידים ופותחים את חבילות ה-CTS מתוך הורדות של חבילת בדיקות התאימות שתואמות לגרסת Android במכשירים ולכל ממשקי ה-ABI שהמכשירים תומכים בהם.
מורידים ופותחים את הגרסה האחרונה של קובצי המדיה של CTS. קבצי המדיה כוללים קליפים מהסרט Big Buck Bunny, שמוגנים בזכויות יוצרים של Blender Foundation במסגרת רישיון Creative Commons Attribution 3.0.
(אופציונלי) כשמריצים את CTS בפעם הראשונה, חלק מקובצי ה-CTS שקשורים ל-Mainline מורדים באופן דינמי. בהתאם למהירות הרשת, ההורדה הזו מוסיפה 10 דקות או יותר לזמן הריצה של CTS.
כדי להימנע מהוספת זמן הריצה של CTS, אפשר להוריד את קובצי ה-CTS שקשורים ל-Mainline לפני שמריצים את CTS. מידע על הורדה של קובצי CTS שקשורים ל-Mainline זמין במאמר בנושא הורדה של קובצי CTS שקשורים ל-Mainline.
הכנת ה-DUT
אחרי שמגדירים את המחשב, צריך להגדיר את ה-DUT.
הגדרת המכשיר הנבדק
כדי להגדיר את המכשיר הנבדק:
מוודאים שבמכשיר DUT פועל קובץ תמונה של המערכת שמבוסס על גרסת משתמש ידועה ותואמת (Android 4.0 ומעלה) מתוך שמות קוד, תגים ומספרי גרסה, ושהוא משתמש בגרסת
user. מידע נוסף על וריאציות של build זמין במאמר בחירת יעד.אם ה-DUT מריץ Android מגרסה 13 ואילך, צריך לוודא שהערך של
ro.product.first_api_levelמוגדר לרמת ה-API שהמכשיר הושק איתה באופן מסחרי. כדי להגדיר את הערך הזה, מבצעים את השינוי הבא בקובץdevice.mk:PRODUCT_SHIPPING_API_LEVEL := 21חלק מהדרישות של CTS תלויות בגרסת ה-Build שהמכשיר נשלח איתה במקור. לדוגמה, יכול להיות שמכשירים שנשלחים במקור עם גרסאות build מוקדמות יותר לא ייכללו בדרישות המערכת שחלות על מכשירים שנשלחים עם גרסאות build מאוחרות יותר. ערכים תקינים של רמת API מפורטים במאמר Codenames, Tags, and Build Numbers (שמות קוד, תגים ומספרי Build). מידע נוסף על
ro.product.first_api_levelזמין במאמר בנושא רמת Vendor API.ל-Android מגרסה 10 ומטה, אפשר לעיין במאמר בנושא הגדרת CTS (AOSP מגרסה 10 ומטה).
אם המכשיר תומך בניהול חבילות APEX:
- מורידים את חבילת ה-shim של APEX לגרסת Android ולסוג הארכיטקטורה של החומרה הספציפיים שלכם. שתי העמודות הימניות בטבלה חבילות shim מספקות קישורים לחבילה להורדה.
- מעתיקים את החבילה שהורדתם אל
/system/apex. - משנים את שם הקובץ ל-
com.android.apex.cts.shim.apex.
אם המכשיר לא תומך בניהול חבילות APEX:
- מורידים את חבילות ה-shim של APEX לגרסת Android ולסוג הארכיטקטורה של החומרה הספציפיים שלכם. שתי העמודות השמאליות בטבלה shim packages מספקות קישורים לחבילות להורדה.
- העתקת
CtsShim.apkאל/system/app/ - שינוי השם של
CtsShim.apkל-CtsShimPrebuilt.apk - העתקת
CtsShimPriv.apkאל/system/priv-app/ - שינוי השם של
CtsShimPriv.apkל-CtsShimPrivPrebuilt.apk
אם המכשיר מדווח על יותר מרכיב מאובטח אחד:
- מורידים את
google-cardlet.cap. - מעתיקים את הקובץ שהורד אל
/data/uicc/cardlets/.
- מורידים את
אם המכשיר מדווח על יותר מרכיב מאובטח אחד, צריך להתקין את האפלט לדוגמה ברכיב המאובטח המוטמע (eSE) של המכשיר הנבדק או בכרטיס ה-SIM שבו נעשה שימוש במכשיר הנבדק. מידע נוסף זמין במאמר בנושא בדיקת CTS של רכיב מאובטח.
אם למכשיר אין מסך מובנה, מחברים מסך למכשיר.
אם במכשיר יש חריץ לכרטיס זיכרון, מחברים כרטיס SD ריק. כדי לוודא שהכרטיס יכול לעבור את בדיקת התאימות (CTS), צריך להשתמש בכרטיס SD שתומך באפיק (bus) במהירות גבוהה במיוחד (UHS) עם קיבולת SDHC או SDXC, או בכרטיס עם סיווג מהירות 10 ומעלה.
אם במכשיר יש חריצים לכרטיסי SIM, מכניסים לכל חריץ כרטיס SIM פעיל. אם המכשיר תומך ב-SMS, צריך למלא את שדה המספר של כל כרטיס SIM. במכשירים עם Android מגרסה 12 ואילך, כל כרטיסי ה-SIM צריכים לתמוך באחסון של מספרי חיוג מקוצרים (ADN). כרטיסי GSM ו-USIM עם קובץ ייעודי לטלקום (DFTelecom) עומדים בדרישה הזו.
מוודאים שבמכשיר יש כרטיס SIM עם הרשאות CTS של ספק שעומד בדרישות שמפורטות במאמר הכנת כרטיס ה-UICC.
הגדרת המכשיר הנבדק
כדי להגדיר את ה-DUT לשימוש ב-CTS:
במכשיר הנבדק:
מאפסים את המכשיר לנתוני היצרן.
להגדיר את השפה במכשיר לאנגלית (ארצות הברית).
אם המכשיר תומך בהתאמה אישית של גופנים שמוגדרים כברירת מחדל, צריך לוודא שמשפחת הגופנים sans-serif מוגדרת כברירת מחדל ל-Roboto.
אם יש במכשיר GPS או תכונה של רשת Wi-Fi או רשת סלולרית, מפעילים את הגדרת המיקום.
מתחברים לרשת Wi-Fi שתומכת ב-IPv6, יכולה להתייחס למכשיר הנבדק כלקוח מבודד ומחוברת לאינטרנט. הסבר על לקוחות מבודדים מופיע במאמר הגדרת סביבה פיזית.
מוודאים שלא מוגדר קו ביטול נעילה או סיסמה.
הפעלת ניפוי באגים ב-USB:
מנווטים אל הגדרות > מידע על הטלפון ומקישים על מספר Build שבע פעמים. האפשרות אפשרויות למפתחים מופיעה בקטגוריית ההגדרות מערכת.
מקישים על ניפוי באגים ב-USB.
כדי להפעיל ניפוי באגים ב-USB ב-Android גרסה 10 ומטה, אפשר לעיין במאמר בנושא הגדרת CTS (AOSP גרסה 10 ומטה).
מגדירים את השעה בפורמט של 12 שעות.
מפעילים את האפשרות אפשרויות למפתחים > המכשיר יישאר פעיל.
השבתת אימות אפליקציות דרך USB:
עוברים אל אפשרויות למפתחים.
מקישים על אימות אפליקציות דרך USB.
ב-Android 13 ואילך, מפעילים את האפשרות 'מודם מדומה':
עוברים אל אפשרויות למפתחים.
מקישים על הרשאה לשימוש במודם מדומה.
ההגדרה הזו נדרשת לבדיקות ספציפיות של טלפוניה.
במחשב:
מפעילים את הדפדפן וסוגרים את מסך ההגדרה או מסך ההפעלה.
מחברים את המכשיר הנבדק למחשב באמצעות כבל USB.
אם המערכת מבקשת לאשר מפתח RSA כדי לאפשר ניפוי באגים דרך המחשב הזה, לוחצים על אישור ניפוי באגים ב-USB.
הגדרת Roboto2 כגופן sans-serif באמצעות הגדרה נגישה למשתמש (לא מוסתרת).
מעתיקים את קובצי המדיה של CTS אל ה-DUT:
- עוברים (
cd) לנתיב שבו קובצי המדיה מורדים ונפרסים. משנים את הרשאות הקובץ:
chmod u+x copy_media.shמעתיקים את הקבצים:
כדי להעתיק קליפים ברזולוציה של עד 720x480, מריצים את הפקודה:
./copy_media.sh 720x480אם אתם לא בטוחים מה הרזולוציה המקסימלית, כדאי להעתיק את כל הקבצים:
./copy_media.sh allאם יש כמה מכשירים בבדיקה, מוסיפים בסוף את האפשרות serial (
-s) של מכשיר ספציפי. לדוגמה, כדי להעתיק עד 720x480 למכשיר עם המספר הסידורי 1234567, מריצים את הפקודה:./copy_media.sh 720x480 -s 1234567
- עוברים (
הורדת קובצי CTS שקשורים ל-Mainline
כדי להוריד את קובצי ה-CTS שקשורים ל-Mainline:
כדי לקבל את רמת ה-API של Android במכשיר, מריצים את הפקודה:
adb shell getprop ro.build.version.sdkפועלים לפי ההוראות בסקריפט
download_mcts.shכדי להוריד את קובצי ה-CTS של Mainline.ההורדה נמשכת לפחות 10 דקות, בהתאם למהירות הרשת.
חבילות Shim
בטבלה הבאה מפורטים החבילות שזמינות לכל גרסה ולארכיטקטורה של מכשיר:
| גרסת המכשיר | חבילות (אם נתמך APEX) | חבילות (אם אין תמיכה ב-APEX) | ||
|---|---|---|---|---|
| דריכה | x86 | דריכה | x86 | |
| Android 16 QPR2 |
16-arm-release
|
android16-x86-release
|
android16-arm-CtsShim.apk
|
android16-x86-CtsShim.apk
|
| Android 16 |
16-arm-release
|
android16-x86-release
|
android16-arm-CtsShim.apk
|
android16-x86-CtsShim.apk
|
| Android 15 |
15-arm-release
|
android15-x86-release
|
android15-arm-CtsShim.apk
|
android15-x86-CtsShim.apk
|
| Android 14 |
android14-arm-release
|
android14-x86-release
|
android14-arm-CtsShim.apk
|
android14-x86-CtsShim.apk
|
| Android 13 |
android13-arm-release
|
android13-x86-release
|
android13-arm-CtsShim.apk
|
android13-x86-CtsShim.apk
|
| 12 Android |
android12-arm-release
|
android12-x86-release
|
android12-arm-CtsShim.apk
|
android12-x86-CtsShim.apk
|
| Android 11 |
android11-arm-release
|
android11-x86-release
|
android11-arm-CtsShim.apk
|
android11-x86-CtsShim.apk
|
| Android 10 |
android10-release
|
android10-arm-CtsShim.apk
|
android10-x86-CtsShim.apk
|
|
| Android 9, O ו-O-MR1 | לא רלוונטי | לא רלוונטי |
arm-CtsShim.apk
|
x86-CtsShim.apk
|
מה השלב הבא?
אחרי שקוראים את המסמך הזה, ממשיכים אל הרצת בדיקות CTS אוטומטיות.