עם חיבור ל-Wi-Fi

מוּדעוּת ל-Wi-Fi שנוספה ב-Android 8.0, מאפשרת למכשירים תומכים לגלות, להתחבר והטווח (שנוספו ב-Android 9) זה לזה ישירות באמצעות פרוטוקול Wi-Fi Aware ללא גישה לאינטרנט או לרשת סלולרית. הזה על בסיס ברית Wi-Fi (WFA) מפרט Wi-Fi Aware (גרסאות 2.0, 3.0, 3.1 ו-4.0), מאפשרת שיתוף קל של נתוני תפוקה גבוהה אפליקציות ומכשירים מהימנים שנמצאים מחוץ לרשת.

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

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

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

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

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

הטמעה

יצרני המכשירים צריכים לספק תמיכה ב-framework וגם ב-HAL/בקושחה:

  • מסגרת:
    • קוד AOSP
    • הפעלת מודעוּת: נדרשים גם feature flag של התכונה וגם דגל build
  • תמיכת Wi-Fi Aware (NAN) HAL (שמרמזת על תמיכה בקושחה)

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

  • ב-BoardConfig.mk או ב-BoardConfig-common.mk נמצאים ב: device/<oem>/<device>, יש להוסיף את הדגל הבא:

    WIFI_HIDL_FEATURE_AWARE := true
    
  • ב-device.mk שנמצא בתוך device/<oem>/<device>, משנים את משתנה סביבה PRODUCT_COPY_FILES כדי לכלול תמיכה ב-Wi-Fi תכונה רלוונטית:

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

Wi-Fi Aware כולל מגוון של מכשירים תואמים המשתמשים בפרוטוקול IEEE 802.11mc, נקרא גם 'זמן הלוך ושוב' (RTT). תכונת המשנה הזו של Wi-Fi Aware היא תלויה במכשיר שתומך בתכונת RTT ב-Wi-Fi, כלומר המכשיר תומך גם ב-Wi-Fi Aware וגם ב-RTT ב-Wi-Fi. פרטים נוספים זמינים במאמר RTT ב-Wi-Fi.

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

המערכת תתעלם מהדגל WIFI_HIDL_FEATURE_AWARE אם WIFI_HAL_INTERFACE_COMBINATIONS מצוין. מידע נוסף זמין במאמר הבא: ריבוי ממשקים של Wi-Fi בו-זמנית.

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

ל-Android נדרשת כתובת MAC של גילוי Wi-Fi Aware (NMI) והנתונים צריך להגדיר ממשקים אקראיים (NDPs) שלא יהיו זהים לכתובת ה-MAC האמיתית של המכשיר. כתובות ה-MAC חייבות להיות:

  • שינוי רנדומלי בכל פעם שחיבור Wi-Fi Aware מופעל או מופעל מחדש.
  • כאשר Wi-Fi Aware מופעל, כתובת ה-MAC צריכה להיות אקראית של מרווח מוגדר על ידי הפרמטר NanConfigRequest.macAddressRandomizationIntervalSec. הזה מוגדר על ידי framework כברירת מחדל ל-30 דקות.

השעיה והמשך

ב-Android מגרסה 14 ואילך, Wi-Fi Aware תומך יכולת של אפליקציות בעלות הרשאות להשעות ולהמשיך סשנים של גילוי פעיל (כולל כל נתיבי הנתונים המשויכים לסשנים האלה). תמיכה בכך היכולת מאפשרת למכשירים לחזור לסשנים של גילוי מהר יותר ולצרוך פחות חשמל, יכול להיות שנשעה סשנים של גילוי נאות.

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

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

כדי לתמוך באפשרות להשעות ולהמשיך סשנים של גילוי, היצרנים צריכים לספק תמיכה ב-HAL ובקושחה. פרטים נוספים זמינים במאמר IWifiNanIface.java

יצרני מכשירים יכולים להשתמש בתקשורת מחוץ למסגרת (למשל, BLE) כדי לסנכרן ולהמשיך לפעול במכשירים מרובים.

אימות

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

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

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

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

atest com.android.server.wifi.aware

בדיקות מנהל:

atest android.net.wifi.aware

בדיקות של הכלי לבדיקת תאימות (CTS)

שימוש בבדיקות CTS כדי לאמת את תכונת Wi-Fi Aware. CTS מזהה מתי התכונה מופעלת וכוללת באופן אוטומטי את הבדיקות המשויכות.

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

atest SingleDeviceTest

בדיקות CTS לאימות

הבדיקות של CTS Verifier מאמתות את התנהגות המודעות ל-Wi-Fi באמצעות שני מכשירים: בדיקה במכשיר ומכשיר טוב ידוע. כדי להריץ את הבדיקות, צריך לפתוח את CTS Verifier יש לעבור לקטע 'בדיקות מודעות ל-Wi-Fi'.