מקבץ רשתות הוא מודול ראשי ניתן לעדכון שמבטיח ש-Android להסתגל לתקני הרשת המתפתחים ולאפשר יכולת פעולה הדדית עם רשתות בפועל. לדוגמה, עדכונים לזיהוי פורטל שבוי ולקוד ההתחברות מאפשרים ל-Android להתעדכן בשינויים במודלים של פורטלים שבויים, וגם עדכונים ל-APF מאפשרים ל-Android לחסוך בסוללה דרך Wi-Fi כשסוגים חדשים של חבילות נתונים נעשות נפוצות.
הרכיבים הכלולים
המודול 'ערימת רשת' מכיל את הרכיבים הבאים. במכשירים שמשתמשים במודול, השירותים האלה הועברו לתהליך אחר והגישה אליהם מתבצעת דרך ממשק AIDL יציב.
שירותי IP.
IpClient
(לשעברIpManager
) הוא רכיב שאחראי על הקצאה ותחזוקה של שכבת ה-IP. ב-Android 9 כבר נעשה שימוש בשיטה הזו בין תהליכים שונים באמצעות רכיבים כמו Bluetooth ועיבוד של רכיבים שונים כמו Wi-Fi. האפליקציהDhcpClient
מקבלת כתובות IP משרתי DHCP כדי יוקצו לממשקים.NetworkMonitor. רכיב ה
NetworkMonitor
בודק את האינטרנט הזמינות בעת התחברות לרשת חדשה או במקרה של כשלים ברשת, כאשר זיהוי פורטלים שבויים ואימות רשתות.אפליקציית התחברות לפורטל שבוי: אפליקציה מותקנת מראש שמנהלת את ההתחברות לפורטלים שבויים. זוהי אפליקציה נפרדת מאז Android 5.0, אבל היא פועלת בשילוב עם
NetworkMonitor
כדי להעביר למערכת חלק מהבחירות של המשתמשים.
נתיבים מושפעים
הנתיב שעבר למערכי המודולים של Network Stack במסגרת ה-refactor מפורט בהמשך.
שירותי IP. באמצעות
frameworks/base/services/net/java/android/net/
:apf
dhcp
ip
netlink
util
(באופן חלקי)
זיהוי פורטלים שבויים והתחברות אליהם באמצעות
frameworks/base/
:core/java/android/net/captiveportal/
services/core/java/com/android/server/connectivity/NetworkMonitor.java
packages/CaptivePortalLogin/*
המיקום החדש של הקוד שהועבר הוא ב-packages/modules/NetworkStack
,
packages/modules/CaptivePortalLogin
ומיקומים נוספים משותפים. הנתיבים שלמעלה מתייחסים למיקום של הקבצים לפני שהם הועברו לשם עבור Mainline.
קבצים בתיקייה packages/modules/NetworkStack
ו
packages/modules/CaptivePortalLogin
הם חלק מהמודול Mainline ולא ניתן להשתמש בהם
ניתן לשנות.
פורמט החבילה
מודול Network Stack מכיל את הרכיבים הבאים בפורמט APK:
- שירותי IP
- התחברות לפורטל שבוי (
com.google.android.captiveportallogin
)
המודול הזה מלווה במודול Network Stack Author Config, שהוא קובץ APK מותקן מראש שמגדיר את ההרשאות הנחוצות רכיבי מקבץ רשת.
יחסי תלות
המודול של סטאק הרשתות תלוי בגורמים הבאים:
שיטות @hide בעלות הרשאות בשרת המערכת (למשל, ב-
IConnectivityManager.aidl
). ממשקי ה-API האלה הוגדרו כ-@SystemApi
והוגנו כראוי כדי שיהיו נגישים למודול Mainline, אבל לא לאפליקציות אחרות עם הרשאות (למשל, באמצעות הרשאת חתימה חדשה).קישור IPC ל-
netd
מוגדר ב-INetd.aidl
. הממשק הזה הומר ל-AIDL יציב והוא כפוף לתאימות בדיקות.