مكدس الشبكة

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

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

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

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

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

  • تطبيق تسجيل الدخول إلى البوابة الأسيرة. تطبيق مثبت مسبقًا مسؤول عن إدارة تسجيل الدخول على البوابات المقيدة. لقد كان هذا تطبيقًا منفصلاً منذ Android 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 وبعض المواقع المشتركة الأخرى. تشير المسارات أعلاه إلى موقع الملفات قبل نقلها إلى هناك للخط الرئيسي. تعد الملفات الموجودة في packages/modules/NetworkStack packages/modules/CaptivePortalLogin جزءًا من الوحدة النمطية Mainline ولا يمكن تعديلها.

تنسيق الحزمة

تحتوي وحدة Network Stack على المكونات التالية بتنسيق APK:

  • خدمات IP
  • تسجيل الدخول إلى البوابة المقيدة ( com.google.android.captiveportallogin )

هذه الوحدة مصحوبة بوحدة تكوين أذونات Network Stack ، وهي عبارة عن ملف APK مثبت مسبقًا يحدد الأذونات اللازمة لمكونات Network Stack.

التبعيات

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

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

  • ربط IPCs إلى netd المعرفة في INetd.aidl . تم تحويل هذه الواجهة إلى AIDL مستقر وتخضع لاختبارات المطابقة.