Ngăn xếp mạng

Ngăn xếp mạng là mô-đun Dòng chính có thể cập nhật để đảm bảo rằng Android có thể thích ứng với các tiêu chuẩn mạng ngày càng phát triển và cho phép tương tác với thực tế. Ví dụ: các bản cập nhật cho tính năng phát hiện cổng thông tin và mã đăng nhập cho phép Android luôn cập nhật các mô hình cổng thông tin đang thay đổi, đồng thời các bản cập nhật cho APF cho phép Android tiết kiệm pin 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 có sẵn

Mô-đun Ngăn xếp mạng 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à một thành phần chịu trách nhiệm về Cấp phép và bảo trì lớp IP. Trong Android 9, thuộc tính này đã được sử dụng xuyên quá trình xử lý của các thành phần như Bluetooth và trong quá trình của các thành phần chẳng hạn như Wi-Fi. DhcpClient lấy địa chỉ IP từ máy chủ DHCP để có thể chỉ định cho các giao diện.

  • NetworkMonitor. Kiểm thử thành phần NetworkMonitor cho Internet phạm vi kết nối khi kết nối với một mạng mới hoặc khi gặp lỗi mạng, khi phát hiện trang xác thực và khi xác thực mạng.

  • Ứng dụng đăng nhập trang xác thực. Một ứng dụng được cài đặt sẵn, chịu trách nhiệm quản lý việc đăng nhập trên các trang xác thực. Đâ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 đến hệ thống.

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

Các đường dẫn được tái cấu trúc chuyển đến mô-đun Network Stack được liệt kê bên dưới.

  • Dịch vụ IP. Sau frameworks/base/services/net/java/android/net/:

    • apf
    • dhcp
    • ip
    • netlink
    • util (một phần)
  • Phát hiện và đăng nhập vào trang xác thực. 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à ở packages/modules/NetworkStack, packages/modules/CaptivePortalLogin và một số vị trí đã chia sẻ khác. Các đường dẫn trên tham chiếu đến vị trí của các 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.

Đị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ụ về quyền sở hữu trí tuệ
  • Đăng nhập trang xác thực (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, là một 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ần phụ thuộc

Mô-đun Network Stack phụ thuộc vào những yếu tố sau:

  • Các phương thức @ẩn có đặc quyền trong máy chủ hệ thống (ví dụ: trong IConnectivityManager.aidl). Các API này đã được thiết kế @SystemApi và được bảo vệ thích hợp để mô-đun Mainline có thể truy cập được nhưng 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 thành AIDL ổn định và phải tuân theo các quy trình kiểm thử về việc tuân thủ.