API сброса порта USB

Для поддержки USB Hardware Abstraction Layer (HAL) API производители устройств должны реализовать соответствующую версию USB HAL. Для использования USB HAL API требуется системно-привилегированное приложение.

USB HAL поддерживает USB Port Reset API, который требует USB HAL v2.0 и доступен для устройств под управлением Android 13 и выше. Используйте этот API для сброса USB-соединения с подключенным хостом.

Найдите USB HAL и его API

Производители устройств должны реализовать USB HAL для поддержки API.

  1. Чтобы найти реализацию USB HAL по умолчанию, используйте следующие пути:

    Версия AIDL (последняя): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. Чтобы найти файл заголовка аппаратного интерфейса, используйте следующий путь:

    Версия AIDL (последняя): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. Чтобы найти API, используйте следующий путь для поиска API в файле заголовка AIDL. Этот путь также является точкой входа Android Framework для API:

    android.hardware.usb : <aosp>/core/java/android/hardware/usb

Реализовать USB HAL

Для работы с USB HAL API реализуйте:

  1. Правильная версия USB HAL. Реализация системного пользовательского интерфейса не требуется.

  2. USB AIDL HAL для API сброса порта USB путем сброса USB-соединения между целевым устройством и хостом.

Понять архитектуру USB HAL API

USB HAL API встроен в пакет android.hardware.usb и использует USB HAL для взаимодействия с устройством. Подробная информация об архитектуре API представлена ​​на рисунке ниже.

API сброса порта USB

На следующем рисунке показан поток кода API сброса порта USB в фреймворке, включая реализацию USB HAL.

Пример потока кода API USB Port Reseat

Рисунок 1.1. Пример потока кода API USB-порта Reseat.

Проверьте свою реализацию

Каждая версия USB HAL и соответствующий ей API связаны с тестовым случаем в Vendor Test Suite (VTS).

API сброса порта USB

Чтобы найти тестовый пример VTS для API сброса порта USB, перейдите по ссылке:

<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/

Тестовый случай VTS для USB HAL v1.2 — это тестовый случай на стороне хоста, который можно использовать для выполнения этих действий.

  • Чтобы вызвать API сброса порта USB, используйте команду adb shell ( #svc usb resetUsbPort ).

  • Убедитесь, что тестируемое устройство (DUT) может отключаться и подключаться повторно.