Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
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.
Чтобы найти реализацию USB HAL по умолчанию, используйте следующие пути:
Версия AIDL (последняя): <aosp>/hardware/interfaces/usb/gadget/1.2/default/
Чтобы найти файл заголовка аппаратного интерфейса, используйте следующий путь:
Версия AIDL (последняя): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
Чтобы найти API, используйте следующий путь для поиска API в файле заголовка AIDL. Этот путь также является точкой входа Android Framework для API:
android.hardware.usb
: <aosp>/core/java/android/hardware/usb
Реализовать USB HAL
Для работы с USB HAL API реализуйте:
Правильная версия USB HAL. Реализация системного пользовательского интерфейса не требуется.
USB AIDL HAL для API сброса порта USB путем сброса USB-соединения между целевым устройством и хостом.
Понять архитектуру USB HAL API
USB HAL API встроен в пакет android.hardware.usb
и использует USB HAL для взаимодействия с устройством. Подробная информация об архитектуре API представлена на рисунке ниже.
API сброса порта USB
На следующем рисунке показан поток кода API сброса порта USB в фреймворке, включая реализацию USB HAL.

Рисунок 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) может отключаться и подключаться повторно.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 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-29 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."]]