Wi-Fi RTT (IEEE 802.11mc)

התכונה זמן הלוך ושוב של Wi-Fi (RTT) ב-Android 9 מאפשרת למכשירים תומכים למדוד מרחק למכשירים תומכים אחרים: נקודות גישה (AP) או אפליקציות להשוואה ל-Wi-Fi (אם יש תמיכה ב-Wi-Fi Aware במכשיר). התכונה הזו, שמבוססת על פרוטוקול IEEE 802.11mc, מאפשרת לאפליקציות לשפר את המוּדעוּת ורמת הדיוק של המיקום.

דוגמאות ומקור

כדי להשתמש בתכונה הזו, צריך להטמיע את ממשק HAL של הספק. ב-Android מגרסה 14 ואילך, ממשק HAL של הספק מוגדר באמצעות AIDL. ב-Android מגרסה 13 ומטה, ממשק HAL של הספק מוגדר באמצעות HIDL. ב-Android 8.0, HIDL החליפה את המבנה הקודם של שכבת הפשטה של החומרה (HAL) ששימש לייעול הטמעות, על ידי ציון סוגים וקריאות שיטות שנאספים בתוך ממשקים וחבילות.

פועלים לפי ממשק ה-Wi-Fi כדי להשתמש בתכונת ה-RTT ב-Wi-Fi. בהתאם לממשק יוטמע, אלה:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0 ואילך.

תוכלו לעיין בגרסה הקודמת של ה-Wi-Fi HAL כדי לראות מה ההתאמה שלה לממשקים AIDL ו-HIDL: hardware/libhardware_ Mobile/+/main/include/hardware_Legacy/rtt.h.

הטמעה

כדי להטמיע RTT ב-Wi-Fi, צריך לספק גם framework וגם תמיכה ב-HAL/בקושחה:

  • מסגרת:

    • קוד AOSP
    • הפעלת RTT ב-Wi-Fi: נדרש מאפיין דגל
  • תמיכת HAL ב-Wi-Fi RTT (IEEE 802.11mc) (שמרמזת על תמיכה בקושחה)

כדי להטמיע את התכונה הזו, צריך להטמיע את ממשק ה-Wi-Fi AIDL או HIDL ולהפעיל את דגל התכונה:

  • ב-device.mk שבכתובת device/<oem>/<device>, משנים את משתנה הסביבה PRODUCT_COPY_FILES כך שיכלול תמיכה בתכונה RTT ב-Wi-Fi:

    PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
    

אחרת, כל מה שנדרש לתכונה הזו כלול ב-AOSP.

רנדומיזציה של MAC

כדי לשפר את הפרטיות, כתובת ה-MAC שמשמשת אותך במהלך טרנזקציות RTT ב-Wi-Fi חייבת להיות אקראית, כלומר היא לא יכולה להיות זהה לכתובת ה-MAC המקורית של ממשק ה-Wi-Fi. עם זאת, באופן חריג, כשמכשיר משויך ל-AP, הוא עשוי להשתמש בכתובת ה-MAC שאליה הוא משויך לכל עסקאות RTT עם ה-AP הזה או עם נקודות AP אחרות.

אימות

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

בדיקות יחידה (unit testing)

הבדיקות של חבילת Wi-Fi RTT מבוצעות באמצעות:

בדיקות שירות:

atest com.android.server.wifi.rtt

בדיקות מנהל:

atest android.net.wifi.rtt

CTS

קיימות בדיקות של הכלי לבדיקת תאימות ל-Android (CTS) של Android לתכונה הזו. CTS מזהה מתי התכונה מופעלת וכולל באופן אוטומטי את הבדיקות המשויכות. נקודת גישה שתומכת ב-Wi-Fi RTT (IEEE 802.11mc) חייבת להיות בטווח של המכשיר שנמצא בבדיקה.

ניתן להפעיל את בדיקות ה-CTS באמצעות:

atest WifiRttTest

כיול

כדי שחיבור RTT ב-Wi-Fi יניב ביצועים טובים, הטווחים שמוחזרים בפרוטוקול 802.11mc יהיו מדויקים במיוחד באינדיקטור הביצועים המרכזיים (KPI). במקרה של שגיאת 90% CDF, רוחבי הפס שמופיעים ברשימה צפויים להכיל את הסיבולות הבאות של ה-KPI המומלץ להערכה של הטווח:

  • 80MHz: 2 מטר
  • 40MHz: 4 מטרים
  • 20MHz: 8 מטרים

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

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

  1. מעבדה פתוחה גדולה או מסדרון שאין בו הרבה חפצים ממתכת, שעלולים לגרום למופעים גבוהים באופן חריג של מספר נתיבים.
  2. לפחות מסלול או נתיב באורך 25 מטר.
  3. סמנים במרווחים של 0.5 מטר מקצה אחד של המסלול לקצה השני.
  4. מקום לאבטח נקודת גישה שתומכת ב-RTT בקצה אחד של מסלול שמותקן במרחק 20 ס"מ מעל הקרקע, ותושבת ניידת לטלפון Android (או מכשיר נייד אחר עם Android בבדיקה), שאפשר להזיז לאורך המסלול, וליישר אותו לסמנים למרחק של 0.5 מ', גם בגובה 20 ס"מ מעל הרצפה.

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

מהתוצאות בשלב 5 אפשר ליצור תרשים של אמת קרקע (ציר ה-X) על פני הטווח המשוער (ציר y) ולהעריך את קו הרגרסיה המתאים ביותר. כיול אידיאלי של המכשיר יוביל לקו הדרגתי 1.0, עם היסט של 0.0 מ' על ציר ה-Y. סטיות מהערכים האלו מותרות אם הם נמצאים ב-KPI של רוחב הפס התואם. אם התוצאות מחוץ ל-KPI, צריך לכייל מחדש את התכונה של המכשיר כדי להתאים את התוצאות למפרט ה-KPI.