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

תכונת Wi-Fi Aware שנוספה ב-Android 8.0 מאפשרת למכשירים תומכים לגלות את הנתונים, להתחבר אליהם ולטווח תאריכים אחד (ב-Android 9) אחד לשני ישירות באמצעות פרוטוקול Wi-Fi Aware ללא גישה לאינטרנט או לרשת סלולרית. התכונה הזו, שמבוססת על מפרט Wi-Fi Aware של Wi-Fi Alliance (WFA) (גרסאות 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_HAL_INTERFACE_COMBINATIONS, המערכת תתעלם מהדגל WIFI_HIDL_FEATURE_AWARE. אפשר לקרוא מידע נוסף במאמר בו-זמניות ב-Wi-Fi בריבוי ממשקים.

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

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

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

השעיה והמשך

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

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

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

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

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

אימות

Android מספקת קבוצה של בדיקות יחידה, בדיקות של חבילה לבדיקת תאימות (CTS) ובדיקות של CTS Verifier כדי לאמת את התכונה מבוססת-Wi-Fi. אפשר לבדוק את החיבור ל-Wi-Fi גם באמצעות חבילת הבדיקה של הספק (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.