حزمة الشبكة

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 الثابتة وتخضع لاختبارات المطابقة.