Network Stack adalah modul Mainline yang dapat diupdate dan memastikan Android dapat beradaptasi dengan standar jaringan yang terus berkembang serta memungkinkan interoperabilitas dengan implementasi baru. Misalnya, update pada kode login dan deteksi captive portal memungkinkan Android tetap mengikuti perkembangan model captive portal, dan update pada APF memungkinkan Android menghemat daya di Wi-Fi karena jenis paket baru menjadi umum.
Komponen yang disertakan
Modul Network Stack berisi komponen berikut. Di perangkat yang menggunakan modul, layanan ini dipindahkan ke proses lain dan diakses melalui antarmuka AIDL yang stabil.
Layanan IP.
IpClient(sebelumnyaIpManager) adalah komponen yang bertanggung jawab atas penyediaan dan pemeliharaan lapisan IP. Di Android 9, komponen ini sudah digunakan lintas proses oleh komponen seperti Bluetooth, dan dalam proses oleh komponen seperti Wi-Fi.DhcpClientmendapatkan alamat IP dari server DHCP sehingga dapat ditetapkan ke antarmuka.NetworkMonitor. Komponen
NetworkMonitormenguji jangkauan internet saat terhubung ke jaringan baru atau saat terjadi kegagalan jaringan, saat mendeteksi captive portal, dan saat memvalidasi jaringan.Aplikasi login captive portal. Aplikasi yang telah diinstal sebelumnya dan bertanggung jawab untuk mengelola login di captive portal. Aplikasi ini telah menjadi aplikasi terpisah sejak Android 5.0, tetapi berinteraksi dengan
NetworkMonitoruntuk meneruskan beberapa pilihan pengguna ke sistem.
Jalur yang terpengaruh
Jalur yang dipindahkan ke modul Network Stack oleh refaktor tercantum di bawah.
Layanan IP. Di
frameworks/base/services/net/java/android/net/:apfdhcpipnetlinkutil(sebagian)
Deteksi dan login captive portal. Di
frameworks/base/:core/java/android/net/captiveportal/services/core/java/com/android/server/connectivity/NetworkMonitor.javapackages/CaptivePortalLogin/*
Lokasi baru kode yang dipindahkan berada di packages/modules/NetworkStack, packages/modules/CaptivePortalLogin, dan beberapa lokasi bersama lainnya. Jalur di atas merujuk ke lokasi file sebelum dipindahkan ke sana untuk Mainline.
File di packages/modules/NetworkStack dan packages/modules/CaptivePortalLogin adalah bagian dari modul Mainline dan tidak dapat diubah.
Format paket
Modul Network Stack berisi komponen berikut dalam format APK:
- Layanan IP
- Login captive portal (
com.google.android.captiveportallogin)
Modul ini disertai dengan modul Konfigurasi Izin Network Stack, yang merupakan file APK yang telah diinstal sebelumnya dan menentukan izin yang diperlukan untuk komponen Network Stack.
Dependensi
Modul Network Stack bergantung pada hal berikut:
Metode @hide yang memiliki hak istimewa di server sistem (misalnya, di
IConnectivityManager.aidl). API ini telah dibuat@SystemApidan dilindungi dengan tepat sehingga dapat diakses oleh modul Mainline, tetapi tidak dapat diakses oleh aplikasi lain yang memiliki hak istimewa (misalnya, menggunakan izin tanda tangan baru).Binder IPC ke
netdyang ditentukan dalamINetd.aidl. Antarmuka ini telah dikonversi ke AIDL yang stabil dan tunduk pada pengujian kesesuaian.