התכונה Wi-Fi Direct, שנקראת גם Wi-Fi P2P, מאפשרת למכשירים שתומכים בה לזהות אחד את השני ולהתחבר ישירות ביניהם באמצעות פרוטוקול Wi-Fi Direct, בלי גישה לאינטרנט או לרשת סלולרית. התכונה הזו, שמבוססת על מפרט Wi-Fi ישיר של Wi-Fi Alliance (WFA), מאפשרת לשתף נתונים בתפוקה גבוהה בין אפליקציות ומכשירים מהימנים שנמצאים מחוץ לרשת.
דוגמאות ומקור
כדי להשתמש בתכונה הזו, יצרני המכשירים צריכים להטמיע את הממשקים של ספק ה-Wi-Fi והממשקים של Supplicant 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 Direct: נדרש דגל תכונה
- תמיכה ב-HAL ב-Wi-Fi ישיר (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 ישיר מוטמעת ב-'wpa_supplicant' ונשלטת על ידי שתי הגדרות: p2p_device_random_mac_addr
ו-p2p_interface_random_mac_addr
.
כדי להפעיל את התכונה הזו, יצרני המכשירים צריכים:
- מטמיעים את ה-API של Wi-Fi Supplicant
ISupplicantP2pIface::setMacRandomization
. בהתאם לממשק שהוטמע, הערך הבא:hardware/interface/wifi/supplicant/1.2
ל-HIDLhardware/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
הבדיקות של CTS Verifier מאמתות את התנהגות ה-Wi-Fi ישיר באמצעות שני מכשירים: מכשיר בדיקה ומכשיר טוב ידוע. כדי להריץ את הבדיקות, פותחים את CTS Verifier ועוברים לקטע Wi-Fi Direct Tests.