Network Stack هي وحدة Mainline قابلة للتحديث، وتضمن قدرة 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
لإعادة توجيه بعض خيارات المستخدمين إلى النظام.
المسارات المتأثرة
في ما يلي المسارات التي تم نقلها إلى وحدة "حِزم الشبكة" من خلال عملية إعادة التنظيم.
خدمات 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 ولا يمكن
تعديلها.
تنسيق الحزمة
تحتوي وحدة "حِزمة بروتوكول الإنترنت" على المكوّنات التالية بتنسيق APK:
- خدمات الملكية الفكرية
- تسجيل الدخول إلى مدخل مشروط الوصول إليه (
com.google.android.captiveportallogin
)
تصاحب هذه الوحدة وحدة إعدادات أذونات حِزمة Network Stack، وهي ملف APK مثبَّت مسبقًا يحدِّد الأذونات اللازمة لمكونات حِزمة Network Stack.
التبعيات
تعتمد وحدة "حِزم الشبكات" على ما يلي:
طرق الإخفاء المميّزة باستخدام @في خادم النظام (مثل في
IConnectivityManager.aidl
). وقد تمت حماية واجهات برمجة التطبيقات هذه@SystemApi
وحمايتها بشكل مناسب حتى يمكن الوصول إليها من خلال وحدة Mainline بدون الوصول إليها من التطبيقات المتميزة الأخرى (مثل استخدام إذن توقيع جديد).ربط IPCs بـ
netd
المحددة فيINetd.aidl
. تم تحويل هذه الواجهة إلى تنسيق AIDL الثابتة وتخضع لاختبارات المطابقة.