Ngăn xếp mạng

Network Stack là mô-đun Mainline có thể cập nhật nhằm đảm bảo Android có thể thích ứng với các tiêu chuẩn mạng đang phát triển và cho phép khả năng tương tác với các triển khai mới. Ví dụ: các bản cập nhật về mã đăng nhập và phát hiện cổng bị khóa cho phép Android luôn cập nhật các mô hình cổng bị khóa đang thay đổi và các bản cập nhật lên APF cho phép Android tiết kiệm năng lượng trên Wi-Fi khi các loại gói mới trở nên phổ biến.

Các thành phần đi kèm

Mô-đun Network Stack chứa các thành phần sau. Trên các thiết bị sử dụng mô-đun này, các dịch vụ này đã được chuyển sang một quy trình khác và được truy cập thông qua giao diện AIDL ổn định.

  • dịch vụ IP. IpClient (trước đây là IpManager ) là thành phần chịu trách nhiệm cung cấp và bảo trì lớp IP. Trong Android 9, nó đã được sử dụng trong quá trình xử lý chéo bởi các thành phần như Bluetooth và trong quá trình xử lý bởi các thành phần như Wi-Fi. DhcpClient lấy địa chỉ IP từ máy chủ DHCP để có thể gán chúng cho các giao diện.

  • Giám sát mạng. Thành phần NetworkMonitor kiểm tra khả năng truy cập Internet khi kết nối với mạng mới hoặc khi mạng bị lỗi, khi phát hiện các cổng bị khóa và khi xác thực mạng.

  • Ứng dụng đăng nhập cổng thông tin bị giam cầm. Một ứng dụng được cài đặt sẵn chịu trách nhiệm quản lý đăng nhập trên các cổng bị khóa. Đây là một ứng dụng riêng biệt kể từ Android 5.0, nhưng nó tương tác với NetworkMonitor để chuyển tiếp một số lựa chọn của người dùng tới hệ thống.

Đường dẫn bị ảnh hưởng

Các đường dẫn được bộ tái cấu trúc chuyển đến mô-đun Ngăn xếp Mạng được liệt kê bên dưới.

  • dịch vụ IP. Trong frameworks/base/services/net/java/android/net/ :

    • apf
    • dhcp
    • ip
    • netlink
    • util (một phần)
  • Phát hiện và đăng nhập cổng bị khóa. Trong frameworks/base/ :

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

Vị trí mới của mã được di chuyển là trong packages/modules/NetworkStack , packages/modules/CaptivePortalLogin và một số vị trí được chia sẻ khác. Các đường dẫn trên đề cập đến vị trí của tệp trước khi được chuyển đến đó cho Mainline. Các tệp trong packages/modules/NetworkStackpackages/modules/CaptivePortalLogin là một phần của mô-đun Mainline và không thể sửa đổi được.

Định dạng gói

Mô-đun Network Stack chứa các thành phần sau ở định dạng APK:

  • dịch vụ IP
  • Đăng nhập cổng bị khóa ( com.google.android.captiveportallogin )

Mô-đun này đi kèm với mô-đun Cấu hình quyền ngăn xếp mạng, đây là tệp APK được cài đặt sẵn để xác định các quyền cần thiết cho các thành phần Ngăn xếp mạng.

phụ thuộc

Mô-đun Network Stack phụ thuộc vào những điều sau:

  • Các phương thức @hide đặc quyền trong máy chủ hệ thống (ví dụ: trong IConnectivityManager.aidl ). Các API này đã được tạo @SystemApi và được bảo vệ thích hợp để chúng có thể truy cập được vào mô-đun Mainline chứ không phải các ứng dụng đặc quyền khác (ví dụ: sử dụng quyền chữ ký mới).

  • IPC liên kết với netd được xác định trong INetd.aidl . Giao diện này đã được chuyển đổi sang AIDL ổn định và phải trải qua các cuộc kiểm tra tuân thủ.