לפני שאפשר להריץ בדיקות CTS אוטומטיות, צריך להכין את הסביבה הפיזית, להגדיר את תחנת העבודה ולהגדיר את המכשיר שרוצים לבדוק.
הגדרת סביבה פיזית
בבדיקות CTS מסוימות צריך להשתמש במכשירים חיצוניים שצריך להגדיר ליד ה-DUT. כדי להגדיר את הסביבה הפיזית:
(אופציונלי) אם ה-DUT תומך ב-Bluetooth LE, צריך למקם לפחות שלושה סמנים של Bluetooth LE בטווח של 5 מטרים מה-DUT לצורך בדיקת הסריקה של Bluetooth LE. בנוסף:
- אין צורך להגדיר את הסמנים או לגרום להם לשדר משהו ספציפי.
- הסמנים יכולים להיות מכל סוג, כולל iBeacon, Eddystone או אפילו מכשירים שמחקים סמנים של BLE.
מניחים את הטלפון מול סצנה, כמו קיר או תקרה, במרחק שווה למרחק המיקוד המינימלי של ה-DUT. בנוסף:
- התאורה בסצנה צריכה להיות מספקת כדי לאפשר לחיישנים שנבדקים להגיע לקצב הפריימים היעד המרבי לשנייה (FPS) שהוגדר, ולהישאר בקצב הזה, כפי שמפורט בקטע
CONTROL_AE_TARGET_FPS_RANGE
. - ההגדרה הזו חלה על כל חיישני המצלמה ש
getCameraIdList
מדווח עליהם, כי הבדיקה חוזרת על עצמה במכשירים המפורטים ומדידה את הביצועים בנפרד. - אם ה-DUT תומך במצלמות חיצוניות, כמו מצלמות רשת מסוג USB, צריך לחבר מצלמה חיצונית כשמריצים את CTS. אחרת, בדיקות CTS נכשלות.
- התאורה בסצנה צריכה להיות מספקת כדי לאפשר לחיישנים שנבדקים להגיע לקצב הפריימים היעד המרבי לשנייה (FPS) שהוגדר, ולהישאר בקצב הזה, כפי שמפורט בקטע
(אופציונלי) אם ה-DUT תומך במערכת למיקום גיאוגרפי (GPS) או במערכת אחרת של לווייני ניווט גלובלי (GNSS), מספקים ל-DUT אות GNSS ברמת אות מתאימה לצורך קליטה וחישוב מיקום. בנוסף:
- ה-GPS חייב לעמוד בדרישות של ICD-GPS-200C.
- האות של GNSS יכול להיות מכל סוג, כולל סימולטור לוויין או מכשירים לחיזוק אותות באוויר הפתוח.
- אפשר למקם את ה-DUT ליד חלון כדי שהוא יוכל לקבל ישירות מספיק אותות GNSS מלוויין.
חשוב לוודא שרשת ה-Wi-Fi תומכת ב-IPv4 וב-IPv6, שיש לה חיבור לאינטרנט עם DNS ל-IPv4 ול-IPv6, שהיא תומכת בשידור IP מרובה (multicast) ושהיא יכולה להתייחס ל-DUT כלקוח מבודד.
אם אין לכם גישה לרשת IPv6 מקומית, לרשת ספקי IPv6 או ל-VPN כדי לעבור את בדיקות IPv6, תוכלו להשתמש בנקודת גישה (AP) ל-Wi-Fi ובמנהרת IPv6.
מוודאים שהדגלים
UP
,BROADCAST
ו-MULTICAST
מוגדרים בממשק ה-Wi-Fi של ה-DUT.מוודאים שמוקצות כתובות IPv4 ו-IPv6 לממשק ה-Wi-Fi. כדי לבדוק את מאפייני ממשק ה-Wi-Fi, מריצים את הפקודה
adb shell ifconfig
.(אופציונלי) אם ה-DUT תומך בפעילות בו-זמנית של STA או STA ב-Wi-Fi, צריך להגדיר לפחות שתי רשתות Wi-Fi. רשתות ה-Wi-Fi האלה צריכות לפעול בתדרים שונים עם מזהי SSID שונים, או באותו מזהה SSID עם מזהי BSSID שונים.
(אופציונלי) אם מכשיר ה-DUT תומך בזמן נסיעה הלוך ושוב (RTT) ב-Wi-Fi, מגדירים מכשיר שתומך ב-RTT ב-Wi-Fi:
- מניחים את מכשיר ה-Wi-Fi RTT במרחק של 12 מטרים מה-DUT.
- מפעילים את מכשיר ה-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:
מתקינים את הגרסאות העדכניות ביותר של 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 ואילך, מתקינים את virtualenv. הכלי virtualenv נדרש לבדיקות במכשירים מרובים.
כדי לוודא ש-Python מותקנת, מקלידים
python3
. הגרסה והתאריך של Python אמורים להופיע, מה שמציין ש-Python מותקן כראוי.מורידים ומפתחים את חבילות ה-CTS מהורדות של ערכת בדיקות התאימות שתואמות לגרסה של Android במכשירים ולכל ממשקי ה-ABI (Application Binary Interface) שהמכשירים תומכים בהם.
מורידים את הגרסה האחרונה של קובצי המדיה של 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
כדי להגדיר את ה-DUT:
מוודאים שבמכשיר הבדיקה פועל קובץ אימג' של מערכת שמבוסס על גרסה תואמת של build למשתמש (Android 4.0 ואילך) משמות קוד, תגים ומספרי build, ומשתמשים בגרסה
user
של build. מידע נוסף על וריאנטים של גרסאות build זמין במאמר בחירת יעד.אם ב-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 או גרסאות קודמות).
אם המכשיר תומך בניהול חבילות APEX:
- מורידים את חבילת ה-shim של APEX לגרסה הספציפית של Android ולארכיטקטורת החומרה. שתי העמודות הימניות בטבלה shim packages מספקות קישורים לחבילה שצריך להוריד.
- מעתיקים את החבילה שהורדתם אל
/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) של ה-DUT או בכרטיס ה-SIM שבו ה-DUT משתמש. מידע נוסף זמין במאמר בדיקת CTS לרכיב מאובטח.
אם למכשיר אין מסך מובנה, צריך לחבר מסך למכשיר.
אם במכשיר יש חריץ לכרטיס זיכרון, מחברים כרטיס SD ריק. כדי לוודא שהכרטיס עובר את הבדיקה CTS, צריך להשתמש בכרטיס SD שתומך באוטובוס במהירות גבוהה במיוחד (UHS) עם קיבולת SDHC או SDXC, או בכרטיס עם סיווג מהירות 10 ומעלה.
אם במכשיר יש חריצים לכרטיסי SIM, צריך להכניס כרטיס SIM מופעל לכל חריץ. אם המכשיר תומך ב-SMS, צריך לאכלס את שדה המספר של כל כרטיס SIM בנפרד. במכשירים עם Android מגרסה 12 ואילך, כל כרטיסי ה-SIM חייבים לתמוך באחסון של מספרי חיוג מקוצרים (ADN). כרטיסי GSM ו-USIM עם הקובץ הייעודי לטלקום (DFTelecom) עומדים בדרישות האלה.
מוודאים שבמכשיר יש כרטיס SIM עם הרשאות ספק CTS שעומדות בדרישות שמפורטות בקטע הכנת ה-UICC.
הגדרת ה-DUT
כדי להגדיר את ה-DUT לשימוש ב-CTS, פועלים לפי השלבים הבאים:
ב-DUT:
איפוס המכשיר לנתוני היצרן.
מגדירים את השפה במכשיר ל-אנגלית (ארצות הברית).
אם המכשיר תומך בהתאמה אישית של גופנים שמוגדרים כברירת מחדל, חשוב לוודא שמשפחת הגופנים sans-serif מוגדרת כברירת מחדל כ-Roboto.
אם יש במכשיר תכונה של GPS, Wi-Fi או רשת סלולרית, מפעילים את הגדרת המיקום.
מתחברים לרשת Wi-Fi שתומכת ב-IPv6, יכולה להתייחס ל-DUT כלקוח מבודד ויש לה חיבור לאינטרנט. הסבר על לקוחות מבודדים זמין במאמר הגדרת סביבה פיזית.
מוודאים שלא הוגדרו קו ביטול נעילה או סיסמה.
מפעילים את ניפוי הבאגים ב-USB:
עוברים אל הגדרות > מידע על הטלפון ומקישים על מספר Build שבע פעמים. האפשרות אפשרויות למפתחים מופיעה בקטגוריית ההגדרות מערכת.
מקישים על ניפוי באגים ב-USB.
כדי להפעיל ניפוי באגים ב-USB ב-Android מגרסה 10 ומטה, תוכלו לעיין במאמר הגדרת CTS (AOSP מגרסה 10 ומטה).
מגדירים את הזמן בפורמט של 12 שעות.
מפעילים את האפשרות אפשרויות למפתחים > מצב 'לא ישן'.
משביתים את האימות של אפליקציות באמצעות USB:
עוברים אל אפשרויות למפתחים.
מקישים על אימות אפליקציות באמצעות USB.
ב-Android מגרסה 13 ואילך, מפעילים את ההגדרה 'מודם מדומה':
עוברים אל אפשרויות למפתחים.
מקישים על הרשאה לשימוש במודם מדומה.
ההגדרה הזו נדרשת לבדיקות טלפוניה ספציפיות.
במחשב:
פותחים את הדפדפן ומבטלים את כל מסך ההפעלה או ההגדרה.
מחברים את ה-DUT למחשב השולחני באמצעות כבל USB.
אם המערכת מבקשת לאשר מפתח RSA שמאפשר ניפוי באגים דרך המחשב הזה, לוחצים על אישור ניפוי באגים ב-USB.
מגדירים את Roboto2 כגופן סנס-סריפ באמצעות הגדרה נגישה למשתמש (לא מוסתרת).
מעתיקים את קובצי המדיה של CTS ל-DUT:
- עוברים (
cd
) לנתיב שבו הורדתם את קובצי המדיה ופרסמתם את הארכיון. משנים את הרשאות הקובץ:
chmod u+x copy_media.sh
מעתיקים את הקבצים:
כדי להעתיק קליפים ברזולוציה של עד 720x480, מריצים את הפקודה:
./copy_media.sh 720x480
אם אתם לא בטוחים מה הרזולוציה המקסימלית, כדאי להעתיק את כל הקבצים:
./copy_media.sh all
אם יש כמה מכשירי DUT, מוסיפים בסוף את האפשרות הסידרונית (
-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 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 אוטומטיות.