네트워크 스택은 Android가 진화하는 네트워크 표준을 수용하고 새로운 구현과의 상호 운용이 가능하도록 보장하기 위한 업데이트 가능한 Mainline 모듈입니다. 예를 들어 종속 포털 감지 및 로그인 코드를 업데이트하면 Android를 변화하는 종속 포털 모델에 맞게 최신 상태로 유지할 수 있으며, 새로운 유형의 패킷이 보편화되고 있는 상황 속에서 APF 업데이트를 통해 Wi-Fi에 대한 Android의 전력 소모를 절감할 수 있습니다.
포함된 구성요소
네트워크 스택 모듈에는 다음과 같은 구성요소가 포함됩니다. 모듈을 사용하는 기기에서는 다음 서비스가 다른 프로세스로 이동되었으며 안정된 AIDL 인터페이스를 통해 액세스됩니다.
IP 서비스.
IpClient
(이전의IpManager
)는 IP 레이어 프로비저닝 및 유지보수를 담당하는 구성요소입니다. Android 9에서는 이미 이 구성요소가 블루투스 등의 구성요소에 의해 크로스-프로세스에 사용되었으며 Wi-Fi 등의 구성요소에 의해서는 인-프로세스에 사용되었습니다.DhcpClient
는 DHCP 서버에서 IP 주소를 가져오기 때문에 인터페이스에 할당될 수 있습니다.NetworkMonitor.
NetworkMonitor
구성요소는 새 네트워크 연결 또는 네트워크 장애 시, 종속 포털 감지 시 그리고 네트워크 인증 시의 인터넷 연결 가능성을 테스트합니다.종속 포털 로그인 앱. 종속 포털에서 로그인을 관리하는 사전 설치된 앱입니다. 이 앱은 Android 5.0부터 별개의 앱이었지만
NetworkMonitor
와 상호작용하여 일부 사용자 선택을 시스템에 전달합니다.
영향을 받는 경로
리팩터링을 통해 네트워크 스택 모듈로 이동된 경로는 다음과 같습니다.
IP 서비스.
frameworks/base/services/net/java/android/net/
의 경우:apf
dhcp
ip
netlink
util
(일부)
종속 포털 감지 및 로그인.
frameworks/base/
의 경우:core/java/android/net/captiveportal/
services/core/java/com/android/server/connectivity/NetworkMonitor.java
packages/CaptivePortalLogin/*
이동한 코드의 새 위치는 packages/modules/NetworkStack
과 packages/modules/CaptivePortalLogin
및 일부 다른 공유 위치에 있습니다. 위 경로는 Mainline으로 이동하기 전에 파일 위치를 나타냅니다.
packages/modules/NetworkStack
및 packages/modules/CaptivePortalLogin
의 파일은 Mainline 모듈의 일부이며 수정할 수 없습니다.
패키지 형식
네트워크 스택 모듈에는 APK 형식의 다음 구성요소가 포함됩니다.
- IP 서비스
- 종속 포털 로그인(
com.google.android.captiveportallogin
)
이 모듈은 네트워크 스택 구성요소에 필요한 권한을 정의하는 사전 설치된 APK 파일인 네트워크 스택 권한 구성 모듈과 함께 제공됩니다.
종속 항목
네트워크 스택 모듈은 다음 항목에 종속됩니다.
시스템 서버(예:
IConnectivityManager.aidl
)에 있는 권한 있는 @hide 메서드. 이러한 API는 Mainline 모듈에는 액세스할 수 있지만 다른 권한 있는 앱(예: 새 서명 권한을 사용하는 앱)에는 액세스할 수 없도록@SystemApi
형태로 만들어져 적절하게 보호되었습니다.INetd.aidl
에서 정의된netd
의 바인더 IPC. 이 인터페이스는 안정적인 AIDL로 변환되었으며 적합성 테스트를 거칩니다.