شبکه سازی

اندروید 10 شامل ماژول های شبکه زیر است:

  • ماژول Networking Components خدمات مشترک IP، نظارت بر اتصال شبکه و تشخیص پورتال ورود به سیستم را ارائه می دهد.
  • ماژول Network Stack Permission Config مجوزی را تعریف می کند که ماژول ها را قادر می سازد وظایف مربوط به شبکه را انجام دهند.

ماژول اجزای شبکه

ماژول Networking Components تضمین می‌کند که Android می‌تواند با استانداردهای شبکه در حال تحول سازگار شود و امکان همکاری با پیاده‌سازی‌های جدید را فراهم می‌کند. به عنوان مثال، به‌روزرسانی‌های شناسایی پورتال محصور و کد ورود به سیستم به اندروید اجازه می‌دهد تا با تغییر مدل‌های پورتال محصور به‌روز بماند، و به‌روزرسانی‌های فایروال خط‌مشی پیشرفته (APF) به Android اجازه می‌دهد تا با رایج شدن انواع جدید بسته‌ها، در مصرف برق Wi-Fi صرفه‌جویی کند.

تغییرات اندروید 10

ماژول Networking Components شامل اجزای زیر است.

  • خدمات IP مؤلفه IpClient (IpManager سابق) تأمین و نگهداری لایه IP را مدیریت می کند. در اندروید 9، توسط اجزایی مانند بلوتوث از فرآیند متقاطع و اجزایی مانند Wi-Fi در فرآیند استفاده می‌شد. جزء DhcpClient آدرس های IP را از سرورهای DHCP دریافت می کند تا بتوان آنها را به اینترفیس ها اختصاص داد.
  • مانیتور شبکه. مؤلفه NetworkMonitor دسترسی به اینترنت را هنگام اتصال به یک شبکه جدید یا در صورت خرابی شبکه، هنگام شناسایی پورتال های محصور، و هنگام تأیید اعتبار شبکه ها آزمایش می کند.
  • برنامه ورود به پورتال اسیر. برنامه ورود به پورتال Captive یک برنامه از پیش نصب شده است که مسئولیت مدیریت ورود در پورتال های محبوس را بر عهده دارد. این یک برنامه جداگانه از اندروید 5.0 بوده است، اما با NetworkMonitor تعامل دارد تا برخی از انتخاب های کاربر را به سیستم ارسال کند.

در دستگاه‌هایی که از ماژول Networking Components استفاده می‌کنند، سرویس‌های فوق به یک فرآیند متفاوت تبدیل می‌شوند و با استفاده از رابط‌های AIDL پایدار قابل دسترسی هستند. مسیرهای Refactor در جداول زیر نشان داده شده است.

مسیرهای بازساز خدمات IP

اندروید 9 و پایین تر در frameworks/base/services/net/java/android/net/ :
  • apf
  • dhcp
  • ip
  • netlink
  • util (تا حدی)
اندروید 10 و بالاتر packages/modules/NetworkStack

مسیرهای بازساز ورود پورتال اسیر

اندروید 9 و پایین تر در frameworks/base/ :
  • core/java/android/net/captiveportal/
  • services/core/java/com/android/server/connectivity/NetworkMonitor.java
  • packages/CaptivePortalLogin/* (جایی که * = عام)
اندروید 10 و بالاتر packages/modules/CaptivePortalLogin (و برخی مکان های مشترک دیگر)

قالب و وابستگی ها

ماژول Networking Components به‌عنوان سه APK ارائه می‌شود: یکی برای سرویس‌های IP، یکی برای ورود به پورتال محرمانه و دیگری برای Network Stack Permission Config .

ماژول Networking Components به موارد زیر بستگی دارد:

  • روش های @hide امتیاز در سرور سیستم (به عنوان مثال، در IConnectivityManager.aidl ). این APIها با @SystemApi حاشیه‌نویسی شده‌اند و به‌طور مناسب محافظت شده‌اند تا به ماژول دسترسی داشته باشند، اما دیگر برنامه‌های ممتاز (مثلاً با استفاده از مجوز امضای جدید) قابل دسترسی باشند.
  • اتصال IPC به netd INetd.aidl شده است. این رابط به AIDL پایدار تبدیل شده است و تحت آزمایشات انطباق قرار دارد.

ماژول پیکربندی مجوز پشته شبکه

ماژول پیکربندی مجوز پشته شبکه حاوی هیچ کدی نیست، اما در عوض مجوزی را برای استفاده توسط ماژول‌های Network Stack و Captive Portal Login تعریف می‌کند. این سیستم به ماژول هایی که این اجازه را دارند اجازه می دهد تا وظایف پیکربندی شبکه مرتبط را روی دستگاه انجام دهند.