Stack Jaringan adalah modul Mainline yang dapat diupdate yang memastikan Android dapat beradaptasi dengan standar jaringan yang berkembang dan memungkinkan interoperabilitas dengan implementasi baru. Misalnya, update pada deteksi captive portal dan kode login memungkinkan Android terus mendapatkan info terbaru dengan perubahan model captive portal, dan update pada APF memungkinkan Android menghemat daya pada Wi-Fi saat jenis paket baru menjadi umum.
Komponen yang disertakan
Modul Stack Jaringan berisi komponen berikut. Pada perangkat yang menggunakan modul, layanan ini dipindahkan ke proses yang berbeda 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, fitur ini sudah digunakan lintas proses oleh komponen seperti Bluetooth, dan dalam proses oleh komponen seperti Wi-Fi.DhcpClient
mendapatkan alamat IP dari server DHCP sehingga dapat ditetapkan ke antarmuka.NetworkMonitor. Komponen
NetworkMonitor
menguji keterjangkauan internet saat terhubung ke jaringan baru atau saat terjadi kegagalan jaringan, saat mendeteksi captive portal, dan saat memvalidasi jaringan.Aplikasi login captive portal. Aplikasi bawaan yang bertanggung jawab untuk mengelola login di captive portal. Aplikasi ini telah menjadi aplikasi terpisah sejak Android 5.0, tetapi berinteraksi dengan
NetworkMonitor
untuk meneruskan beberapa pilihan pengguna ke sistem.
Jalur yang terpengaruh
Jalur yang dipindahkan ke modul Tumpukan Jaringan oleh pemfaktoran ulang tercantum di bawah ini.
Layanan IP. Di
frameworks/base/services/net/java/android/net/
:apf
dhcp
ip
netlink
util
(sebagian)
Deteksi dan login captive portal. Di
frameworks/base/
:core/java/android/net/captiveportal/
services/core/java/com/android/server/connectivity/NetworkMonitor.java
packages/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 Stack Jaringan berisi komponen berikut dalam format APK:
- Layanan IP
- Login captive portal (
com.google.android.captiveportallogin
)
Modul ini disertai dengan modul Konfigurasi Izin Stack Jaringan, yang merupakan file APK bawaan yang menentukan izin yang diperlukan untuk komponen Stack Jaringan.
Dependensi
Modul Stack Jaringan bergantung pada hal berikut:
Metode @hide dengan hak istimewa di server sistem (misalnya, di
IConnectivityManager.aidl
). API ini telah dibuat@SystemApi
dan dilindungi dengan tepat sehingga dapat diakses oleh modul Mainline, tetapi bukan aplikasi dengan hak istimewa lainnya (misalnya, menggunakan izin tanda tangan baru).Binder IPC ke
netd
yang ditentukan dalamINetd.aidl
. Antarmuka ini telah dikonversi ke AIDL yang stabil dan tunduk pada pengujian konformitas.