Wi-Fi ישיר

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

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

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

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

פלטפורמות ה-Wi-Fi עם ממשק ה-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 ישיר (P2P) (שמרמזת על תמיכה בקושחה)

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

```
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 ישיר נכללות ב-AOSP.

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

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

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

רנדומיזציה של כתובות MAC ב-Wi-Fi ישיר מוטמעת ב-'wpa_supplicant' מבוקרים באמצעות שתי מערכים של הגדרות אישיות: p2p_device_random_mac_addr p2p_interface_random_mac_addr.

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

  • הטמעת ממשק ה-API של ISupplicantP2pIface::setMacRandomization מספק ה-Wi-Fi. בהתאם לממשק שהוטמע, הסטטוס הבא:
    • 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 תכונה ישירה. ניתן לבדוק את ה-Wi-Fi ישיר גם באמצעות חבילת בדיקה של ספקים (VTS).

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

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

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

atest com.android.server.wifi.p2p

בדיקות מנהל:

atest android.net.wifi.p2p

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

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

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

% atest android.net.wifi.p2p.cts

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

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