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 테스트 사례는 이러한 작업을 실행하는 데 사용할 수 있는 호스트 측 테스트 사례입니다.
USB Port Reset API를 호출하려면
adb shell
명령어 (#svc usb resetUsbPort
)를 사용합니다.DUT (테스트 대상 기기)가 연결을 해제하고 다시 연결할 수 있는지 확인합니다.