USB HAL(하드웨어 추상화 계층) API를 지원하려면 기기 제조업체는 해당 USB HAL 버전을 구현해야 합니다. USB HAL API를 사용하려면 시스템 권한 앱이 필요합니다.
USB HAL은 USB HAL v2.0이 필요하고 Android 13 이상을 실행하는 기기에서 사용할 수 있는 USB 포트 재설정 API를 지원합니다. 이 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(Vendor Test Suite)의 테스트 사례와 연결됩니다.
USB 포트 재설정 API
USB 포트 재설정 API에 대한 VTS 테스트 사례를 찾으려면 다음으로 이동하세요.
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
USB HAL v1.2용 VTS 테스트 사례는 이러한 작업을 수행하는 데 사용할 수 있는 호스트 측 테스트 사례입니다.
USB 포트 재설정 API를 호출하려면
adb shell
명령(#svc usb resetUsbPort
)을 사용하십시오.테스트 중인 장치(DUT)의 연결을 끊었다가 다시 연결할 수 있는지 확인합니다.