A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
API USB Port Reset
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Para oferecer suporte à API HAL (camada de abstração de hardware USB), os fabricantes de dispositivos
precisam implementar a versão correspondente da HAL USB. Para usar a API USB HAL, é necessário um
app com privilégios do sistema.
O HAL do USB oferece suporte à API USB Port Reset, que exige o HAL do USB v2.0 e está
disponível para dispositivos com o Android 13 e versões mais recentes. Use essa API para redefinir a
conexão USB com o host conectado.
Encontrar o HAL USB e as APIs dele
Os fabricantes de dispositivos precisam implementar a HAL USB para oferecer suporte às APIs.
Para encontrar a implementação padrão do HAL USB, use os seguintes caminhos:
Versão AIDL (mais recente):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
Para encontrar o arquivo de cabeçalho da interface de hardware, use o seguinte caminho:
Versão AIDL (mais recente):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
Para encontrar as APIs, use o caminho a seguir para localizá-las no
arquivo de cabeçalho AIDL. Esse caminho também é o ponto de entrada do Android Framework para a API:
android.hardware.usb
:
<aosp>/core/java/android/hardware/usb
Implementar a HAL de USB
Para trabalhar com a API USB HAL, implemente:
Versão correta da HAL do USB. Nenhuma implementação da interface do sistema é necessária.
HAL AIDL USB para a API USB Port Reset redefinindo a conexão USB entre o dispositivo de destino e o host.
Entender a arquitetura da API HAL do USB
A API USB HAL está integrada ao pacote android.hardware.usb
e usa o HAL USB para interagir com o dispositivo. Confira detalhes sobre a arquitetura da API na figura abaixo.
API USB Port Reset
A figura a seguir ilustra o fluxo de código da API USB Port Reset em um framework, incluindo a implementação do HAL USB.
Figura 1.1 Exemplo de fluxo de código da API USB Port Reseat.
Validar sua implementação
Cada versão da HAL USB e a API correspondente são associadas a um caso de teste no
Conjunto de teste de fornecedor (VTS, na sigla em inglês).
API USB Port Reset
Para encontrar o caso de teste do VTS para a API USB Port Reset, acesse:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
O caso de teste VTS para USB HAL v1.2 é um caso de teste do host que pode ser usado para
realizar essas ações.
Para invocar a API USB Port Reset, use o comando adb shell
(#svc usb resetUsbPort
).
Confirme se o dispositivo em teste (DUT) pode ser desconectado e conectado novamente.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]