סקירה כללית

Android מספק הטמעה של Android framework שמוגדרת כברירת מחדל, וכוללת תמיכה במגוון פרוטוקולים ומצבים של Wi-Fi, כולל:

  • תשתית Wi-Fi (STA)
  • נקודת Wi-Fi לשיתוף אינטרנט (Soft AP) במצבים של חיבור קווי או מקומי בלבד
  • Wi-Fi ישיר (p2p)
  • Wi-Fi Aware‏ (NAN)
  • Wi-Fi RTT (IEEE 802.11mc FTM)

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

ארכיטקטורת Wi-Fi

איור 1. ארכיטקטורת ה-Wi-Fi של Android

מסגרת אפליקציה

ברמת מסגרת האפליקציה נמצא קוד האפליקציה, שמשתמש בממשקי ה-API השונים של android.net.wifi כדי לקיים אינטראקציה עם מסגרת ה-Wi-Fi והחומרה. באופן פנימי, הקוד הזה קורא לתהליך ה-Wi-Fi באמצעות מנגנון Binder IPC.

שירותי Wi-Fi

שירותי ה-Wi-Fi פועלים בשירות המערכת, והם נמצאים ב-packages/modules/Wifi/service/. שירות ה-Wi-Fi מתקשר עם ה-HAL של Wi-Fi דרך AIDL.

יש מגוון שירותי Wi-Fi:

  • שירות Wi-Fi: מנגנון ראשי לשליטה במצבים של תשתית ה-Wi-Fi (גם ב-STA וגם ב-AP).
  • שירות Wi-Fi P2P: ניהול מצב Wi-Fi ישיר.
  • שירות מודעות ל-Wi-Fi: ניהול של מצב Wi-Fi Aware.
  • שירות Wi-Fi RTT: ניהול הפונקציונליות של IEEE 802.11mc FTM.

מסגרת ה-Wi-Fi כוללת גם תהליך עצמאי, wificond, שנמצא בכתובת system/connectivity/wificond. תהליך wificond מתקשר עם מנהל התקן ה-Wi-Fi באמצעות פקודות nl80211 רגילות.

ממשקי HAL ל-Wi-Fi

במסגרת ה-Wi-Fi יש שלוש פלטפורמות Wi-Fi HAL, שמיוצגים על ידי שלושה ממשקים שונים: Vendor HAL, Supplicant HAL ו-Hostapd HAL.

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