כדי לתמוך ב-API של שכבת ההפשטה של חומרת ה-USB (HAL), יצרני המכשירים חייבים להטמיע את גרסת ה-HAL המתאימה של USB. כדי להשתמש ב-USB HAL API, נדרשת אפליקציה עם הרשאות מערכת.
ה-HAL של USB תומך ב-USB Port Reset API, שדורש USB HAL v2.0 וזמין במכשירים עם Android 13 ואילך. אפשר להשתמש ב-API הזה כדי לאפס את חיבור ה-USB למארח המחובר.
איך למצוא את ה-HAL של USB ואת ממשקי ה-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, עוברים אל הקובץ הבא: AIDL header file. הנתיב הזה הוא גם נקודת הכניסה של ה-API ל-Android Framework:
android.hardware.usb
:<aosp>/core/java/android/hardware/usb
הטמעת ה-HAL של USB
כדי לעבוד עם USB HAL API, צריך להטמיע את:
גרסת USB HAL נכונה. אין צורך בהטמעה של ממשק משתמש מערכת.
USB AIDL HAL ל-USB Port Reset API על ידי איפוס החיבור של ה-USB בין מכשיר היעד למארח.
הסבר על הארכיטקטורה של USB HAL API
ממשק ה-USB HAL API מובנה בחבילה android.hardware.usb
ומשתמש ב-USB HAL כדי לקיים אינטראקציה עם המכשיר. פרטים על הארכיטקטורה של ה-API מופיעים באיור שבהמשך.
USB Port Reset API
בתרשים הבא מוצג תהליך הקוד של USB Port Reset API במסגרת, כולל הטמעת ה-USB HAL.
איור 1.1 דוגמה לתהליך קוד API לאיפוס יציאת USB.
אימות ההטמעה
כל גרסה של USB HAL וה-API התואם שלה משויכים לתרחיש בדיקה ב-Vendor Test Suite (VTS).
USB Port Reset API
כדי למצוא את תרחיש הבדיקה של 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) יכול להתנתק ולהתחבר מחדש.