‫Wi-Fi ישיר

התכונה Wi-Fi Direct, שנקראת גם Wi-Fi P2P, מאפשרת למכשירים שתומכים בה לזהות אחד את השני ולהתחבר ישירות ביניהם באמצעות פרוטוקול Wi-Fi Direct, בלי גישה לאינטרנט או לרשת סלולרית. התכונה הזו, שמבוססת על מפרט Wi-Fi Direct של Wi-Fi Alliance‏ (WFA), מאפשרת לשתף נתונים עם תפוקה גבוהה בין אפליקציות ומכשירים מהימנים שלא מחוברים לרשת.

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

כדי להשתמש בתכונה הזו, יצרני המכשירים צריכים להטמיע את הממשקים של Wi-Fi Vendor ו-Supplicant HAL.

ב-Android 13, ממשק Supplicant משתמש ב-AIDL להגדרת ה-HAL. ב-Android מגרסה 14 ואילך, ממשק ה-HAL של הספק משתמש ב-AIDL. ב-Android מגרסה 12 ומטה, הממשקים של Supplicant ו-Vendor HAL מוגדרים באמצעות HIDL.

כדי להשתמש בתכונה Wi-Fi Direct, נדרשות פלטפורמות ה-HAL הבאות של Wi-Fi:

  • hardware/interfaces/wifi/aidl או hardware/interfaces/wifi/1.3 ומעלה
  • hardware/interfaces/wifi/supplicant/aidl או hardware/interfaces/wifi/supplicant/1.2 ומעלה

הטמעה

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

  • מסגרת:
    • קוד AOSP
    • הפעלת Wi-Fi ישיר: נדרש דגל תכונה
  • תמיכה ב-HAL של Wi-Fi Direct‏ (P2P) (הכוללת תמיכה בקושחה)

כדי להטמיע את התכונה הזו, יצרני המכשירים מטמיעים את ממשקי Wi-Fi HIDL או AIDL ומפעילים את דגל התכונה של Wi-Fi Direct. בקובץ device.mk שנמצא ב-device/<oem>/<device>, משנים את משתנה הסביבה PRODUCT_COPY_FILES כך שיכלול תמיכה בתכונה Wi-Fi Direct:

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

כל שאר הדרישות לתמיכה ב-Wi-Fi Direct כלולות ב-AOSP.

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

ב-Android נדרש שהכתובת המכשיר וכתובת הממשק של Wi-Fi Direct יהיו אקראיות. הן חייבות להיות שונות מכתובת ה-MAC האמיתית של המכשיר, ועומדות בדרישות הבאות:

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

הרנדומיזציה של כתובות ה-MAC ב-Wi-Fi Direct מיושמת ב-wpa_supplicant ומנוהלת על ידי שתי הגדרות, p2p_device_random_mac_addr ו-p2p_interface_random_mac_addr.

כדי להפעיל את התכונה הזו, יצרני המכשירים צריכים:

  • מטמיעים את ה-API של Wi-Fi Supplicant ISupplicantP2pIface::setMacRandomization. בהתאם לממשק שהוחל, הוא נמצא ב:
    • hardware/interface/wifi/supplicant/1.2 ל-HIDL
    • hardware/interface/wifi/supplicant/aidl ל-AIDL
  • מגדירים את config_wifi_p2p_mac_randomization_supported לערך 'true' בשכבת-על בהתאמה אישית של המכשיר.

אימות

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

בדיקות יחידה

מאמתים את חבילת Wi-Fi Direct באמצעות הבדיקות הבאות.

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

atest com.android.server.wifi.p2p

בדיקות של חשבון ניהול:

atest android.net.wifi.p2p

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

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

כדי להפעיל את בדיקות CTS, מריצים את הפקודה:

% atest android.net.wifi.p2p.cts

בדיקות של CTS Verifier

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