ממשק API לאיפוס יציאת USB

כדי לתמוך ב-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.

  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, עוברים אל הקובץ הבא: ‎AIDL header file. הנתיב הזה הוא גם נקודת הכניסה של ה-API ל-Android Framework:

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

הטמעת ה-HAL של USB

כדי לעבוד עם USB HAL API, צריך להטמיע את:

  1. גרסת USB HAL נכונה. אין צורך בהטמעה של ממשק משתמש מערכת.

  2. 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.

דוגמה לתהליך קוד API לאיפוס יציאת USB

איור 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) יכול להתנתק ולהתחבר מחדש.