לפני שמריצים בדיקות CTS אוטומטיות, צריך להכין את הסביבה הפיזית, להגדיר את תחנת העבודה ולהגדיר את המכשיר שבודקים.
הגדרת הסביבה הפיזית
חלק מבדיקות ה-CTS דורשות שימוש במכשירים חיצוניים שצריך להגדיר אותם בקרבת המכשיר שנבדק (DUT). כדי להגדיר את הסביבה הפיזית:
(אופציונלי) אם ה-DUT תומך ב-Bluetooth LE, מציבים לפחות שלושה משואות Bluetooth LE במרחק של עד 5 מטרים מה-DUT לצורך בדיקת סריקת Bluetooth LE. בנוסף:
- אין צורך להגדיר את משדרי ה-Beacon או לשדר משהו ספציפי.
- המשואות יכולות להיות מכל סוג, כולל iBeacon, Eddystone או אפילו מכשירים שמדמים משואות BLE.
ממקמים את הטלפון מול סצנה, כמו קיר או תקרה, במרחק ששווה למרחק המיקוד המינימלי של המכשיר הנבדק. בנוסף:
- התאורה בסצנה צריכה להיות מספיק טובה כדי לאפשר לחיישנים שנבדקים להגיע לקצב הפריימים המקסימלי שהוגדר (FPS) ולשמור עליו, כפי שמפורט במאמר
CONTROL_AE_TARGET_FPS_RANGE
. - ההגדרה הזו חלה על כל חיישני המצלמה שמדווחים על ידי
getCameraIdList
, כי הבדיקה חוזרת על עצמה במכשירים הרשומים ומודדת את הביצועים בנפרד. - אם ה-DUT תומך במצלמות חיצוניות, כמו מצלמות רשת בחיבור USB, צריך לחבר מצלמה חיצונית כשמריצים את CTS. אחרת, בדיקות ה-CTS ייכשלו.
- התאורה בסצנה צריכה להיות מספיק טובה כדי לאפשר לחיישנים שנבדקים להגיע לקצב הפריימים המקסימלי שהוגדר (FPS) ולשמור עליו, כפי שמפורט במאמר
(אופציונלי) אם ה-DUT תומך במערכת מיקום גלובלית (GPS) או במערכת לוויינים גלובלית אחרת לניווט (GNSS), צריך לספק אות GNSS ל-DUT ברמת אות מתאימה לקליטה ולחישוב המיקום. בנוסף:
- ה-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 concurrency, צריך להגדיר לפחות שתי רשתות 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) ומוסיפים את המיקום של הכלים האלה לנתיב המערכת של המחשב:
- כדי להתקין את כלי שורת הפקודה
sdkmanager
, פועלים לפי ההוראות שבתחילת התיעוד של SDK Manager. הקישור להורדת כלי שורת הפקודה נמצא בקטע Command line tools only (כלים לשורת הפקודה בלבד) בתחתית דף ההורדה של Android Studio. - מעדכנים את נתיב המערכת כך שיכלול את המיקום של
sdkmanager
שהותקן לאחרונה. - באמצעות
sdkmanager
, מתקינים את החבילות העדכניות שלplatform-tools
ושלbuild-tools
. החבילות האלה מכילות את adb ואת AAPT2. מידע על התקנת חבילות זמין במאמר התקנת חבילות. - מעדכנים את הנתיב כך שיכלול את המיקום של כלי ה-adb ו-AAPT2 שהותקנו לאחרונה.
- מוודאים ש-adb ו-AAPT2 נמצאים בנתיב.
- כדי להתקין את כלי שורת הפקודה
מתקינים את הגרסה המתאימה של Java Development Kit (JDK):
- ב-Android מגרסה 11 ואילך, צריך להתקין JDK 11.
- ל-Android מגרסה 10 ומטה, אפשר לעיין במאמר הגדרת CTS (AOSP מגרסה 10 ומטה).
(אופציונלי) ב-Android 13 וב-Android 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 ומעלה) מתוך שמות קוד, תגים ומספרי גרסה, ושהוא משתמש בגרסת build
user
. מידע נוסף על וריאציות של build זמין במאמר בחירת יעד.אם מערכת ההפעלה של ה-DUT היא Android 13 או גרסה מתקדמת יותר, צריך לוודא ש-
ro.product.first_api_level
מוגדר ב-build לרמת ה-API שבה המכשיר הושק מסחרית. כדי להגדיר את הערך הזה, מבצעים את השינוי הבא בקובץdevice.mk
:PRODUCT_SHIPPING_API_LEVEL := 21
חלק מהדרישות של CTS תלויות בגרסת ה-Build שבה נשלח המכשיר במקור. לדוגמה, יכול להיות שמכשירים שנשלחים במקור עם גרסאות build מוקדמות יותר לא ייכללו בדרישות המערכת שחלות על מכשירים שנשלחים עם גרסאות build מאוחרות יותר. ערכים תקינים של רמת API מפורטים במאמר Codenames, Tags, and Build Numbers. מידע נוסף על
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:
כדי לקבל את רמת Android API במכשיר, מריצים את הפקודה:
adb shell getprop ro.build.version.sdk
פועלים לפי ההוראות בסקריפט
download_mcts.sh
כדי להוריד את קובצי ה-CTS של Mainline.ההורדה נמשכת לפחות 10 דקות, בהתאם למהירות הרשת.
חבילות Shim
בטבלה הבאה מפורטים החבילות שזמינות לכל גרסה ולארכיטקטורה של מכשיר:
גרסת המכשיר | חבילות (אם נתמך APEX) | חבילות (אם אין תמיכה ב-APEX) | ||
---|---|---|---|---|
דריכה | x86 | דריכה | x86 | |
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 אוטומטיות.