2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
USB Port Reset API
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
USB 하드웨어 추상화 계층 (HAL) API를 지원하려면 기기 제조업체에서 해당 USB HAL 버전을 구현해야 합니다. USB HAL API를 사용하려면 시스템 권한 앱이 필요합니다.
USB HAL은 USB 포트 재설정 API를 지원합니다. 이 API는 USB HAL v2.0이 필요하며 Android 13 이상을 실행하는 기기에서 사용할 수 있습니다. 이 API를 사용하여 연결된 호스트와의 USB 연결을 재설정합니다.
USB HAL 및 관련 API 찾기
기기 제조업체는 API를 지원하기 위해 USB HAL을 구현해야 합니다.
USB HAL의 기본 구현을 찾으려면 다음 경로를 사용합니다.
버전 AIDL (최신):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
하드웨어 인터페이스 헤더 파일을 찾으려면 다음 경로를 사용합니다.
버전 AIDL (최신):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
API를 찾으려면 다음 경로를 사용하여 AIDL 헤더 파일에서 API를 찾습니다. 이 경로는 API의 Android 프레임워크 진입점이기도 합니다.
android.hardware.usb
:
<aosp>/core/java/android/hardware/usb
USB HAL 구현
USB HAL API를 사용하려면 다음을 구현하세요.
올바른 USB HAL 버전 시스템 UI 구현은 필요하지 않습니다.
대상 기기와 호스트 간의 USB 연결을 재설정하여 USB 포트 재설정 API용 USB AIDL HAL
USB HAL API 아키텍처 이해
USB HAL API는 android.hardware.usb
패키지에 내장되어 있으며 USB HAL을 활용하여 기기와 상호작용합니다. API의 아키텍처에 관한 세부정보는 아래 그림에 나와 있습니다.
USB 포트 재설정 API
다음 그림은 USB HAL 구현을 포함하여 프레임워크에서 USB 포트 재설정 API의 코드 흐름을 보여줍니다.
그림 1.1 샘플 USB 포트 재설정 API 코드 흐름
구현 확인
각 USB HAL 버전 및 해당 API는 공급업체 테스트 모음 (VTS)의 테스트 사례와 연결됩니다.
USB 포트 재설정 API
USB 포트 재설정 API의 VTS 테스트 사례를 찾으려면 다음으로 이동하세요.
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
USB HAL v1.2의 VTS 테스트 사례는 이러한 작업을 실행하는 데 사용할 수 있는 호스트 측 테스트 사례입니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 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,["# USB Port Reset API\n\nTo support the USB Hardware Abstraction Layer (HAL) API, device manufacturers\nmust implement the corresponding USB HAL version. To use the USB HAL API, a\nsystem-privileged app is required.\n\nThe USB HAL supports the USB Port Reset API, which requires USB HAL v2.0 and is\navailable for devices running Android 13 and higher. Use this API to reset the\nUSB connection with the connected host.\n\nFind the USB HAL and its APIs\n-----------------------------\n\nDevice manufacturers must implement the USB HAL to support the APIs.\n\n1. To find the default implementation of USB HAL, use the following paths:\n\n **Version AIDL (latest):**\n [`\u003caosp\u003e/hardware/interfaces/usb/gadget/1.2/default/`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/usb/gadget/1.2/default/)\n2. To find the hardware interface header file, use the following path:\n\n **Version AIDL (latest):**\n [`\u003caosp\u003e/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal`](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/usb/gadget/1.2/IUsbGadget.hal)\n3. To find the APIs, use the following path to locate the APIs under the\n AIDL header file. This path is also the Android Framework entry point for the API:\n\n `android.hardware.usb`:\n [`\u003caosp\u003e/core/java/android/hardware/usb`](https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android16-release/core/java/android/hardware/usb/IUsbManager.aidl)\n\nImplement the USB HAL\n---------------------\n\nTo work with the USB HAL API, implement the:\n\n1. Correct USB HAL version. No system UI implementation is required.\n\n2. USB AIDL HAL for the USB Port Reset API by resetting the USB connection between the target device and the host.\n\nUnderstand the USB HAL API architecture\n---------------------------------------\n\nThe USB HAL API is built into the `android.hardware.usb` package and leverages the USB HAL to interact with the device. Details about the architecture for the API is provided in the figure below.\n\n### USB Port Reset API\n\nThe following figure illustrates the code flow of the USB Port Reset API in a framework, including the implementation of the USB HAL.\n\n**Figure 1.1** Sample USB Port Reseat API code flow.\n\nValidate your implementation\n----------------------------\n\nEach USB HAL version and its corresponding API is associated with a test case in\nthe Vendor Test Suite (VTS).\n\n### USB Port Reset API\n\nTo find the VTS test case for the USB Port Reset API, go to:\n\n[`\u003caosp\u003e/test/vts-testcase/hal/usb/gadget/V1_2/`](https://android.googlesource.com/platform/test/vts-testcase/hal/+/refs/heads/android16-release/usb/gadget/V1_2)\n\nThe VTS test case for USB HAL v1.2 is a host-side test case you can use to\nperform these actions.\n\n- To invoke the USB Port Reset API, use the `adb shell`\n command (`#svc usb resetUsbPort`).\n\n- Confirm that the device under test (DUT) can disconnect and reconnect."]]