حزم الشبكات

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

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

تحتوي وحدة "حزمة الشبكة" على المكونات التالية. على الأجهزة التي تستخدم تم نقل هذه الخدمات إلى عملية مختلفة ويتم الوصول إليها من خلال واجهة AIDL مستقرة

  • خدمات IP:IpClient (المعروفة سابقًا باسم IpManager) هي مكوّن مسؤول عن توفير طبقة IP وصيانتها. في Android 9، سبق أن تم استخدامه المعالجة المشتركة بين عدة مكوّنات مثل البلوتوث، والمعالجة المتبادلة بين العناصر مثل شبكة 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 الثابتة وتخضع للتوافق. الاختبار.