حزم الشبكات

‫Network Stack هو وحدة Mainline قابلة للتحديث تضمن إمكانية تكيّف Android مع معايير الشبكة المتطوّرة وتتيح التشغيل التفاعلي مع عمليات التنفيذ الجديدة. على سبيل المثال، تتيح تحديثات ميزة "رصد المدخل المشروط الوصول إليه" ورمز تسجيل الدخول لأجهزة Android مواكبة التغييرات في نماذج المدخل المشروط الوصول إليه، كما تتيح تحديثات ميزة "توفير الطاقة في Wi-Fi" لأجهزة Android توفير الطاقة عند استخدام شبكة Wi-Fi مع انتشار أنواع جديدة من الحِزم.

المكوّنات المضمّنة

تحتوي وحدة Network Stack على المكوّنات التالية. على الأجهزة التي تستخدم الوحدة، تم نقل هذه الخدمات إلى عملية مختلفة ويمكن الوصول إليها من خلال واجهة AIDL ثابتة.

  • خدمات الملكية الفكرية:IpClient (المعروف سابقًا باسم IpManager) هو أحد المكوّنات المسؤولة عن توفير طبقة IP وصيانتها. في نظام التشغيل Android 9، كان يتم استخدامها في عمليات متعددة من خلال مكوّنات مثل البلوتوث، وفي عمليات فردية من خلال مكوّنات مثل شبكة Wi-Fi. يحصل DhcpClient على عناوين IP من خوادم DHCP حتى يمكن تعيينها للواجهات.

  • NetworkMonitor. يختبر المكوّن NetworkMonitor إمكانية الوصول إلى الإنترنت عند الاتصال بشبكة جديدة أو عند حدوث أعطال في الشبكة، وعند رصد بوابات مشروطة الوصول، وعند التحقّق من صحة الشبكات.

  • تطبيق تسجيل الدخول إلى المدخل المشروط الوصول إليه: هو تطبيق مثبَّت مسبقًا ومسؤول عن إدارة تسجيل الدخول إلى المداخل المشروطة الوصول إليها. كان هذا التطبيق منفصلاً منذ الإصدار Android 5.0، ولكنّه يتفاعل مع NetworkMonitor لإعادة توجيه بعض خيارات المستخدم إلى النظام.

المسارات المتأثرة

في ما يلي قائمة بالمسارات التي تم نقلها إلى وحدة Network Stack النمطية من خلال إعادة البناء.

  • خدمات الملكية الفكرية: في 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:

  • خدمات الملكية الفكرية
  • تسجيل الدخول إلى مدخل مشروط الوصول إليه (com.google.android.captiveportallogin)

تتضمّن هذه الوحدة أيضًا وحدة Network Stack Permission Config، وهي ملف APK مثبَّت مسبقًا يحدّد الأذونات اللازمة لمكوّنات Network Stack.

الطلبات التابعة

يعتمد وحدة Network Stack على ما يلي:

  • طُرق hide ذات الامتيازات في خادم النظام (على سبيل المثال، في IConnectivityManager.aidl). تم إعداد واجهات برمجة التطبيقات هذه على أنّها @SystemApi وتمت حمايتها بشكل مناسب حتى يتمكّن "وحدة Mainline" من الوصول إليها، ولكن ليس التطبيقات الأخرى ذات الامتيازات (على سبيل المثال، باستخدام إذن توقيع جديد).

  • عمليات Binder IPC في netd المحدّدة في INetd.aidl تم تحويل هذه الواجهة إلى AIDL ثابتة وتخضع لاختبارات التوافق.