यूएसबी हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) एपीआई के साथ काम करने के लिए, डिवाइस बनाने वाली कंपनियों को यूएसबी एचएएल का सही वर्शन लागू करना होगा. यूएसबी एचएएल एपीआई का इस्तेमाल करने के लिए, सिस्टम-प्रिविलेज्ड ऐप्लिकेशन की ज़रूरत होती है.
यूएसबी एचएएल, यूएसबी पोर्ट रीसेट एपीआई के साथ काम करता है. इसके लिए, यूएसबी एचएएल v2.0 की ज़रूरत होती है. यह Android 13 और इसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए उपलब्ध है. इस एपीआई का इस्तेमाल करके, कनेक्ट किए गए होस्ट के साथ यूएसबी कनेक्शन रीसेट करें.
यूएसबी एचएएल और उसके एपीआई ढूंढना
डिवाइस बनाने वाली कंपनियों को, एपीआई के साथ काम करने के लिए यूएसबी एचएएल को लागू करना होगा.
यूएसबी एचएएल के डिफ़ॉल्ट वर्शन को ढूंढने के लिए, इन पाथ का इस्तेमाल करें:
एआईडीएल का वर्शन (नया):
<aosp>/hardware/interfaces/usb/gadget/1.2/default/
हार्डवेयर इंटरफ़ेस की हेडर फ़ाइल ढूंढने के लिए, इस पाथ का इस्तेमाल करें:
एआईडीएल का वर्शन (नया):
<aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal
एपीआई ढूंढने के लिए, AIDL हेडर फ़ाइल में जाकर एपीआई ढूंढने के लिए, यहां दिया गया पाथ इस्तेमाल करें. यह पाथ, एपीआई के लिए Android फ़्रेमवर्क का एंट्री पॉइंट भी है:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
यूएसबी एचएएल को लागू करना
USB HAL API का इस्तेमाल करने के लिए, इन्हें लागू करें:
यूएसबी एचएएल का सही वर्शन. सिस्टम यूज़र इंटरफ़ेस (यूआई) को लागू करने की ज़रूरत नहीं है.
यूएसबी पोर्ट रीसेट एपीआई के लिए यूएसबी एआईडीएल एचएएल, टारगेट डिवाइस और होस्ट के बीच यूएसबी कनेक्शन को रीसेट करके.
यूएसबी एचएएल एपीआई के आर्किटेक्चर के बारे में जानकारी
यूएसबी एचएएल एपीआई, android.hardware.usb
पैकेज में पहले से मौजूद होता है. यह डिवाइस के साथ इंटरैक्ट करने के लिए, यूएसबी एचएएल का इस्तेमाल करता है. एपीआई के आर्किटेक्चर के बारे में जानकारी, यहां दी गई इमेज में दी गई है.
यूएसबी पोर्ट रीसेट करने वाला एपीआई
इस इमेज में, फ़्रेमवर्क में USB पोर्ट रीसेट करने वाले एपीआई के कोड फ़्लो को दिखाया गया है. इसमें यूएसबी एचएएल को लागू करने का तरीका भी शामिल है.
पहली इमेज यूएसबी पोर्ट रीसीट एपीआई के कोड फ़्लो का सैंपल.
लागू करने की पुष्टि करना
यूएसबी एचएएल के हर वर्शन और उससे जुड़े एपीआई को Vendor Test Suite (VTS) में मौजूद टेस्ट केस से जोड़ा जाता है.
यूएसबी पोर्ट रीसेट करने वाला एपीआई
यूएसबी पोर्ट रीसेट एपीआई के लिए वीटीएस टेस्ट केस ढूंढने के लिए, यहाँ जाएँ:
<aosp>/test/vts-testcase/hal/usb/gadget/V1_2/
यूएसबी एचएएल v1.2 के लिए वीटीएस टेस्ट केस, होस्ट-साइड टेस्ट केस है. इसका इस्तेमाल इन कार्रवाइयों को करने के लिए किया जा सकता है.
यूएसबी पोर्ट रीसेट एपीआई को शुरू करने के लिए,
adb shell
कमांड (#svc usb resetUsbPort
) का इस्तेमाल करें.पुष्टि करें कि टेस्ट किए जा रहे डिवाइस (डीयूटी) को डिसकनेक्ट और फिर से कनेक्ट किया जा सकता है.