USB Port Reset API

כדי לתמוך ב-USB Hardware Abstraction Layer (HAL) API, יצרני המכשירים צריכים להטמיע את גרסת ה-USB HAL המתאימה. כדי להשתמש ב-USB HAL API, נדרשת אפליקציה עם הרשאות מערכת.

ה-HAL של USB תומך ב-API של איפוס יציאת USB, שנדרש ל-USB HAL v2.0 וזמין למכשירים עם Android 13 ומעלה. אפשר להשתמש ב-API הזה כדי לאפס את חיבור ה-USB עם המארח המחובר.

איתור ה-HAL של ה-USB וממשקי ה-API שלו

יצרני מכשירים חייבים להטמיע את USB HAL כדי לתמוך בממשקי ה-API.

  1. כדי למצוא את הטמעת ברירת המחדל של USB HAL, משתמשים בנתיבים הבאים:

    Version AIDL (הגרסה האחרונה): <aosp>/hardware/interfaces/usb/gadget/1.2/default/

  2. כדי למצוא את קובץ הכותרת של ממשק החומרה, משתמשים בנתיב הבא:

    Version AIDL (הגרסה האחרונה): <aosp>/hardware/interfaces/usb/gadget/1.2/IUsbGadget.hal

  3. כדי למצוא את ממשקי ה-API, משתמשים בנתיב הבא כדי לאתר את ממשקי ה-API בקובץ הכותרת של AIDL. הנתיב הזה הוא גם נקודת הכניסה של Android Framework ל-API:

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

הטמעה של USB HAL

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

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

  2. ‫USB AIDL HAL עבור ה-API לאיפוס יציאת ה-USB על ידי איפוס חיבור ה-USB בין מכשיר היעד לבין המארח.

הסבר על ארכיטקטורת ה-API של USB HAL

ממשק ה-API של USB HAL מוטמע בחבילה android.hardware.usb ומשתמש ב-USB HAL כדי ליצור אינטראקציה עם המכשיר. פרטים על הארכיטקטורה של ה-API מופיעים באיור שלמטה.

‫USB Port Reset API

באיור הבא מוצג תהליך הקוד של USB Port Reset API במסגרת, כולל ההטמעה של USB HAL.

דוגמה לזרימת קוד של USB Port Reseat API

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