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.
איור 1. הארכיטקטורה של Wi-Fi ב-Android
מסגרת אפליקציה
ברמת מסגרת האפליקציה נמצא קוד האפליקציה, שמשתמש בממשקי ה-API השונים של android.net.wifi כדי לקיים אינטראקציה עם מסגרת ה-Wi-Fi והחומרה. באופן פנימי, הקוד הזה קורא לתהליך ה-Wi-Fi דרך מנגנון ה-IPC של Binder.
שירותי 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 Direct.
- שירות Wi-Fi Aware: ניהול המצב Wi-Fi Aware.
- שירות RTT ב-Wi-Fi: שירות שמנהל את הפונקציונליות של FTM ב-IEEE 802.11mc.
מסגרת ה-Wi-Fi כוללת גם תהליך עצמאי, wificond, שנמצא ב-system/connectivity/wificond
. התהליך wificond מתקשר עם מנהל ה-Wi-Fi באמצעות פקודות nl80211
רגילות.
ממשקי HAL ל-Wi-Fi
למסגרת ה-Wi-Fi יש שלוש פלטפורמות HAL של Wi-Fi שמיוצגות על ידי שלושה ממשקים שונים: Vendor HAL, Supplicant HAL ו-Hostapd HAL.
פרטים על הטמעות של ממשקי ה-HAL השונים זמינים במאמר Wi-Fi HAL.