Network Stack là một mô-đun Mainline 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 đang phát triển và cho phép khả năng tương tác với các cách triển khai mới. Ví dụ: các bản cập nhật cho tính năng phát hiện cổng thông tin giam giữ và mã đăng nhập giúp Android luôn cập nhật các mô hình cổng thông tin giam giữ đang thay đổi, đồng thời các bản cập nhật cho APF giúp Android tiết kiệm pin khi dùng Wi-Fi khi các loại gói mới trở nên phổ biến.
Các thành phần trong gói
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, những dịch vụ này đã được chuyển sang một quy trình khác và được truy cập thông qua một 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 cung cấp và duy trì lớp IP. Trong Android 9, các thành phần như Bluetooth đã sử dụng quy trình này trên nhiều quy trình và các thành phần như Wi-Fi đã sử dụng quy trình này trong quy trình.DhcpClient
lấy địa chỉ IP từ máy chủ DHCP để có thể được chỉ định cho các giao diện.NetworkMonitor. Thành phần
NetworkMonitor
kiểm thử khả năng truy cập Internet khi kết nối với một mạng mới hoặc khi mạng gặp sự cố, 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. Ứng dụng được cài đặt sẵn chịu trách nhiệm quản lý hoạt động đă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 ứng dụng này 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.
Các đường dẫn bị ảnh hưởng
Dưới đây là danh sách các đường dẫn được di chuyển đến mô-đun Network Stack (Ngăn xếp mạng) bằng cách tái cấu trúc.
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 qua 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ã đã di chuyển nằm trong packages/modules/NetworkStack
, packages/modules/CaptivePortalLogin
và một số vị trí dùng chung khác. Các đường dẫn trên đề cập đến vị trí của tệp trước khi được di chuyển đến đó cho Mainline.
Các tệp trong packages/modules/NetworkStack
và packages/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ụ IP
- Đă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 của ngăn xếp mạng, đây 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 thành phần sau:
Các phương thức @hide có đặ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 để có thể truy cập vào mô-đun Mainline nhưng không thể truy cập vào các ứng dụng có đặc quyền khác (ví dụ: sử dụng quyền chữ ký mới).Binder IPC đến
netd
được xác định trongINetd.aidl
. Giao diện này đã được chuyển đổi thành AIDL ổn định và phải tuân thủ các kiểm thử về sự phù hợp.