מחסנית רשת

Network Stack הוא מודול Mainline הניתן לעדכון המבטיח ש-Android יכול להסתגל לתקני רשת מתפתחים ומאפשר יכולת פעולה הדדית עם יישומים חדשים. לדוגמה, עדכונים לזיהוי פורטל שבוי וקוד כניסה מאפשרים לאנדרואיד להישאר מעודכן בדגמי פורטל שבויים משתנים, ועדכונים ל-APF מאפשרים לאנדרואיד לחסוך בחשמל ב-Wi-Fi כאשר סוגים חדשים של מנות הופכים נפוצים.

רכיבים כלולים

מודול Network Stack מכיל את הרכיבים הבאים. במכשירים המשתמשים במודול, שירותים אלה הועברו לתהליך אחר וניגשים אליהם באמצעות ממשק AIDL יציב.

  • שירותי IP. IpClient (לשעבר IpManager ) הוא רכיב שאחראי על הקצאה ותחזוקה של שכבת IP. באנדרואיד 9, זה כבר היה בשימוש צולב תהליכים על ידי רכיבים כגון Bluetooth, ובתהליך על ידי רכיבים כגון Wi-Fi. DhcpClient משיג כתובות IP משרתי DHCP כך שניתן להקצות אותן לממשקים.

  • NetworkMonitor. רכיב NetworkMonitor בודק את נגישות האינטרנט בעת התחברות לרשת חדשה או בעת כשלים ברשת, בעת זיהוי פורטלים שבויים, ובעת אימות רשתות.

  • אפליקציית התחברות לפורטל שבוי. אפליקציה מותקנת מראש שאחראית על ניהול התחברות בפורטלים שבויים. זו הייתה אפליקציה נפרדת מאז אנדרואיד 5.0, אך היא מקיימת אינטראקציה עם NetworkMonitor כדי להעביר כמה אפשרויות של משתמש למערכת.

שבילים מושפעים

הנתיבים שהועברו למודול Network Stack על ידי הרפקטור מפורטים להלן.

  • שירותי 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 Permission Config, שהוא קובץ APK מותקן מראש המגדיר את ההרשאות הדרושות לרכיבי Network Stack.

תלות

מודול ה-Network Stack תלוי בדברים הבאים:

  • Privileged @hide שיטות בשרת המערכת (למשל, ב- IConnectivityManager.aidl ). ממשקי API אלה הפכו ל- @SystemApi ומוגנים כראוי כך שהם נגישים למודול Mainline אך לא לאפליקציות מורשות אחרות (למשל, באמצעות הרשאת חתימה חדשה).

  • IPCs של Binder ל- netd המוגדרים ב- INetd.aidl . ממשק זה הומר ל-AIDL יציב ונתון למבחני התאמה.