מחסנית הרשת

מקבץ רשתות הוא מודול ראשי ניתן לעדכון שמבטיח ש-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 יציב והוא כפוף לתאימות בדיקות.