Tumpukan Jaringan

Network Stack adalah modul Mainline yang dapat diperbarui yang memastikan bahwa Android dapat beradaptasi dengan standar jaringan yang terus berkembang dan memungkinkan interoperabilitas dengan implementasi baru. Misalnya, pembaruan pada deteksi portal captive dan kode login memungkinkan Android tetap mengikuti perkembangan model portal captive, dan pembaruan pada APF memungkinkan Android menghemat daya pada Wi-Fi seiring dengan semakin banyaknya jenis paket baru.

Komponen yang disertakan

Modul Network Stack berisi komponen berikut. Pada perangkat yang menggunakan modul, layanan ini dipindahkan ke proses berbeda dan diakses melalui antarmuka AIDL yang stabil.

  • layanan kekayaan intelektual. IpClient (sebelumnya IpManager ) adalah komponen yang bertanggung jawab atas penyediaan dan pemeliharaan lapisan IP. Di Android 9, sudah digunakan proses silang oleh komponen seperti Bluetooth, dan dalam proses oleh komponen seperti Wi-Fi. DhcpClient memperoleh alamat IP dari server DHCP sehingga dapat ditugaskan ke antarmuka.

  • Monitor Jaringan. Komponen NetworkMonitor menguji keterjangkauan internet saat menyambung ke jaringan baru atau saat terjadi kegagalan jaringan, saat mendeteksi portal captive, dan saat memvalidasi jaringan.

  • Aplikasi masuk portal tawanan. Aplikasi prainstal yang bertugas mengelola login di portal captive. Ini telah menjadi aplikasi terpisah sejak Android 5.0, namun berinteraksi dengan NetworkMonitor untuk meneruskan beberapa pilihan pengguna ke sistem.

Jalur yang terkena dampak

Jalur yang dipindahkan ke modul Network Stack oleh refactor tercantum di bawah.

  • layanan kekayaan intelektual. Dalam frameworks/base/services/net/java/android/net/ :

    • apf
    • dhcp
    • ip
    • netlink
    • util (sebagian)
  • Deteksi dan login portal tawanan. Dalam frameworks/base/ :

    • core/java/android/net/captiveportal/
    • services/core/java/com/android/server/connectivity/NetworkMonitor.java
    • packages/CaptivePortalLogin/*

Lokasi baru dari kode yang dipindahkan ada di packages/modules/NetworkStack , packages/modules/CaptivePortalLogin dan beberapa lokasi bersama lainnya. Jalur di atas mengacu pada lokasi file sebelum dipindahkan ke sana untuk Mainline. File dalam packages/modules/NetworkStack dan packages/modules/CaptivePortalLogin adalah bagian dari modul Mainline dan tidak dapat dimodifikasi.

Format paket

Modul Network Stack berisi komponen berikut dalam format APK:

  • layanan kekayaan intelektual
  • Login portal tawanan ( com.google.android.captiveportallogin )

Modul ini disertai dengan modul Network Stack Permission Config, yang merupakan file APK pra-instal yang menentukan izin yang diperlukan untuk komponen Network Stack.

Ketergantungan

Modul Network Stack bergantung pada hal berikut:

  • Metode @hide yang diistimewakan di server sistem (misalnya, di IConnectivityManager.aidl ). API ini telah dibuat @SystemApi dan dilindungi dengan tepat sehingga dapat diakses oleh modul Mainline tetapi tidak dapat diakses oleh aplikasi istimewa lainnya (misalnya, menggunakan izin tanda tangan baru).

  • Binder IPC ke netd ditentukan di INetd.aidl . Antarmuka ini telah diubah menjadi AIDL yang stabil dan harus melalui uji kesesuaian.