כדי לתמוך ב-API של שכבת ההפשטה של חומרת ה-USB (HAL), יצרני המכשירים חייבים להטמיע את גרסת ה-HAL המתאימה של USB. כדי להשתמש ב-USB HAL API, צריך אפליקציה עם הרשאות מערכת.
התקן USB HAL תומך בממשק API של יציאת USB לאיפוס יציאת USB, שדורש USB HAL גרסה 2.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 התואם שלה משויכים לתרחיש בדיקה בחבילת הבדיקות של הספק (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) יכול להתנתק ולהתחבר מחדש.