네트워킹

Android 10에는 다음과 같은 네트워킹 모듈이 포함되어 있습니다.

  • 네트워킹 구성요소 모듈은 일반적인 IP 서비스, 네트워크 연결 모니터링 및 종속 로그인 포털 감지 기능을 제공합니다.
  • 네트워크 스택 권한 구성 모듈은 모듈이 네트워크 관련 작업을 수행할 수 있도록 권한을 정의합니다.

네트워킹 구성요소 모듈

네트워킹 구성요소 모듈은 Android가 진화하는 네트워크 표준에 적응하고 새로운 구현과의 상호운영성을 감안하도록 해줍니다. 예를 들어 종속 포털 감지 및 로그인 코드를 업데이트하면 Android를 변화하는 종속 포털 모델에 맞게 최신 상태로 유지할 수 있으며, 새로운 유형의 패킷이 보편화되고 있는 상황 속에서 APF(Advanced Policy Firewall) 업데이트를 통해 Wi-Fi에 대한 Android의 전력 소모를 절감할 수 있습니다.

Android 10 변경사항

네트워킹 구성요소 모듈에 포함되는 구성요소는 다음과 같습니다.

  • IP 서비스. IpClient(이전의 IpManager) 구성요소는 IP 레이어 프로비저닝 및 유지관리를 처리합니다. Android 9에서는 이 구성요소가 블루투스 등의 구성요소에 의해 크로스-프로세스에 사용되었으며 Wi-Fi 등의 구성요소에 의해서는 인-프로세스에 사용되엇습니다. DhcpClient 구성요소는 DHCP 서버에서 IP 주소를 가져오기 때문에 인퍼테이스에 할당할 수 있습니다.
  • NetworkMonitor. NetworkMonitor는 새 네트워크 연결 또는 네트워크 장애 시, 종속 포털 감지 시 그리고 네트워크 인증 시의 인터넷 연결 가능성을 테스트합니다.
  • 종속 포털 로그인 앱. 종속 포털 로그인 앱은 종속 포털에서 로그인을 관리하는 사전 설치된 앱입니다. 이 앱은 Android 5.0부터 별개의 앱이었지만 NetworkMonitor와 상호작용하여 일부 사용자 선택을 시스템에 전달합니다.

네트워킹 구성요소 모듈을 사용하는 기기에서는 위에서 언급한 서비스가 다른 프로세스로 리팩터링되어 안정적인 AIDL 인터페이스를 통해 액세스됩니다. 리팩터 경로는 아래 표에 나와 있습니다.

IP 서비스 리팩터 경로

Android 9 이하 frameworks/base/services/net/java/android/net/에서:
  • apf
  • dhcp
  • ip
  • netlink
  • util(일부)
Android 10 이상 packages/modules/NetworkStack

종속 포털 로그인 리팩터 경로

Android 9 이하 frameworks/base/에서:
  • core/java/android/net/captiveportal/
  • services/core/java/com/android/server/connectivity/NetworkMonitor.java
  • packages/CaptivePortalLogin/*(여기서 * = 와일드 카드)
Android 10 이상 packages/modules/CaptivePortalLogin(및 기타 공유 위치)

형식 및 종속 항목

네트워킹 구성요소 모듈은 각각 IP 서비스, 종속 포털 로그인 및 네트워크 스택 권한 구성을 위한 3개의 APK로 전달됩니다.

네트워킹 구성요소 모듈은 다음 내용에 따라 다릅니다.

  • 시스템 서버(예: IConnectivityManager.aidl)의 권한이 있는 @hide 메서드. 이러한 API는 @SystemApi으로 주석 처리되어 적절히 보호되므로 모듈에는 액세스할 수 있지만 다른 특권이 있는 앱에는 액세스할 수 없습니다(예: 새로운 서명 권한 사용).
  • INetd.aidl에서 정의된 netd의 바인더 IPC. 이 인터페이스는 안정적인 AIDL로 변환되었으며 적합성 테스트를 거칩니다.

네트워크 스택 권한 구성 모듈

네트워크 스택 권한 구성 모듈에는 코드가 포함되지 않지만 대신 네트워크 스택 및 종속 포털 로그인 모듈에 의한 사용이 의도된 권한을 정의합니다. 시스템에서는 모듈이 이러한 권한을 부여받아 기기에서 관련 네트워크 구성 작업을 실행할 수 있도록 허용합니다.