2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
네트워크 스택
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
네트워크 스택은 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
와 상호작용하여 일부 사용자 선택을 시스템에 전달합니다.
영향을 받는 경로
리팩터링을 통해 네트워크 스택 모듈로 이동된 경로는 다음과 같습니다.
이동한 코드의 새 위치는 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로 변환되었으며 적합성 테스트를 거칩니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Network Stack is an updatable Mainline module that ensures that Android can\nadapt to evolving network standards and allows for interoperability with new\nimplementations. For example, updates to captive portal detection and login code\nallow Android to stay up to date with changing captive portal models, and\nupdates to APF allow Android to save power on Wi-Fi as new types of packets\nbecome common.\n\nIncluded components\n-------------------\n\nThe Network Stack module contains the following components. On devices using the\nmodule, these services were moved to a different process and are accessed\nthrough a stable AIDL interface.\n\n- **IP services.** `IpClient` (formerly `IpManager`) is a component in charge of\n IP layer provisioning and maintenance. In Android 9, it was already used\n cross-process by components such as Bluetooth, and in-process by components\n such as Wi-Fi. `DhcpClient` obtains IP addresses from DHCP servers so they can\n be assigned to interfaces.\n\n- **NetworkMonitor.** The `NetworkMonitor` component tests for internet\n reachability when connecting to a new network or upon network failures, when\n detecting captive portals, and when validating networks.\n\n- **Captive portal login app.** A preinstalled app in charge of managing login\n on captive portals. This has been a separate app since Android 5.0, but it\n interacts with `NetworkMonitor` to forward some user choices to the system.\n\nAffected paths\n--------------\n\nThe paths moved to the Network Stack module by the refactor are listed below.\n\n- **IP services.** In `frameworks/base/services/net/java/android/net/`:\n\n - `apf`\n - `dhcp`\n - `ip`\n - `netlink`\n - `util` (partly)\n- **Captive portal detection and login.** In `frameworks/base/`:\n\n - `core/java/android/net/captiveportal/`\n - `services/core/java/com/android/server/connectivity/NetworkMonitor.java`\n - `packages/CaptivePortalLogin/*`\n\nThe new location of the moved code is in `packages/modules/NetworkStack`,\n`packages/modules/CaptivePortalLogin` and some other shared locations. The above\npaths refer to the location of files before being moved there for Mainline.\nFiles in `packages/modules/NetworkStack` and\n`packages/modules/CaptivePortalLogin` are part of the Mainline module and cannot\nbe modified.\n\nPackage format\n--------------\n\nThe Network Stack module contains the following components in APK format:\n\n- IP services\n- Captive portal login (`com.google.android.captiveportallogin`)\n\nThis module is accompanied by the Network Stack Permission Config module,\nwhich is a pre-installed APK file that defines the necessary permissions for the\nNetwork Stack components.\n\nDependencies\n------------\n\nThe Network Stack module depends on the following:\n\n- Privileged @hide methods in the system server (e.g., in\n `IConnectivityManager.aidl`). These APIs have been made `@SystemApi` and\n appropriately protected so that they are accessible to the Mainline module but\n not other privileged apps (e.g., using a new signature permission).\n\n- Binder IPCs to `netd` defined in\n [`INetd.aidl`](https://android.googlesource.com/platform/system/netd/+/android16-release/server/binder/android/net/INetd.aidl).\n This interface has been converted to stable AIDL and is subject to conformance\n tests."]]