החל מ-Android 14, ממשק ה-HAL של האודיו מוגדר באמצעות Stable AIDL. מומלץ לשותפים ולספקי SoC להטמיע מחדש את Audio HAL כדי לספק ממשק AIDL.
הרחבת הספרייה libaudiohal מוסיפה תמיכה במסגרת ל-AIDL HAL.
בהטמעה של AIDL, מפרט ההגדרה של מדיניות האודיו מועבר ל-AIDL HAL. בעקבות השינוי הזה, מנהל מדיניות האודיו (APM) מקבל את ההגדרה מ-HAL במקום להשתמש בה מקובץ ה-XML שסופק על ידי הספק.
Audio AIDL HAL API
בקטע הזה מתוארים ממשקי ה-API של Core, Effects ו-Common HAL ל-AIDL.
אפשר להשתמש בהטמעה שמוגדרת כברירת מחדל של AIDL API בכתובת /hardware/interfaces/audio/aidl/default/ כהפניה כשמטמיעים גרסאות חדשות של Audio HALs שפועלות באינטראקציה עם מנהלי התקנים של ליבת המערכת.
בקובץ ה-README של Audio HAL מוסבר על מבנה הספריות של Audio HAL ב-AIDL.
Core HAL
אלה כמה ממשקים מרכזיים של Core HAL, שמשתמשים ב-AIDL:
-
IModule.aidlהיא נקודת הכניסה ל-API. - הזרמים הם חד-כיווניים, ומשמשים את AudioFlinger לשליחה או לקבלה של אודיו אל ומ-HAL דרך
IStreamOut.aidlו-IStreamIn.aidl. -
ITelephony.aidlמספקת אמצעי בקרה ספציפיים לפונקציות של טלפוניה. -
IBluetooth.aidlמספק אמצעי בקרה על BT SCO ו-HFP שהיו ב-IPrimaryModuleב-HIDL API. -
IConfig.aidlמספקת פרמטרים להגדרת המערכת כולה. -
ISoundDose.aidlמספק תמיכה במינון צלילים. מידע נוסף זמין במאמר בנושא מינון של צלילים. - הגרסה האחרונה של Core HAL API בפיתוח נמצאת בכתובת
/hardware/interfaces/audio/aidl/android/hardware/audio/core/. - הגרסה האחרונה של Core HAL API שפורסמה נמצאת ב-
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/.
Effects HAL
אלה כמה מהממשקים העיקריים של Effects HAL, באמצעות AIDL:
-
IFactory.aidlהיא נקודת הכניסה ל-API. -
Descriptor.aidlמכיל את כל המידע, כמו היכולות והמאפיינים של הטמעת האפקט. -
Capability.aidlמגדיר יכולות של אפקטים שלא משתנות בזמן הריצה. -
Parameter.aidlמגדיר את כל הפרמטרים שנתמכים על ידי מופע האפקט. -
IEffect.aidlמשמש להגדרה ולשליטה במופעים ספציפיים של אפקטים. אובייקטים ספציפיים לאפקט מסוג Parcelable שנקראים על שם האפקט.
הגרסה האחרונה של Effects HAL API בפיתוח נמצאת ב-
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/.הגרסה האחרונה של Effects HAL API שפורסמה נמצאת בכתובת
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect.
מידע נוסף זמין במאמר בנושא אפקטים קוליים.
Common HAL
מבני נתונים וממשקי משתמש שמשותפים בין ממשקי HAL שונים, כמו BT HAL, core ו-effects Audio HAL, נמצאים ב-Common HAL.
הגרסה האחרונה של Common AIDL HAL בפיתוח נמצאת ב-
/hardware/interfaces/audio/aidl/android/hardware/audio/common/.הגרסה האחרונה של Common HAL API שפורסמה נמצאת בכתובת
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/.
סוגים נפוצים של נתונים יציבים
הגדרות יציבות של מבנה הנתונים משמשות גם את HAL וגם את המסגרת.
הגרסה האחרונה של סוגי הנתונים היציבים בפיתוח נמצאת בכתובת
/system/hardware/interfaces/media/aidl/android/media/audio/common/.הגרסה העדכנית של סוגי הנתונים היציבים נמצאת בכתובת
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/.
בדיקה של Audio AIDL HAL API
מבחני VTS חדשים מסופקים לממשק AIDL.
אין שינויים בגרסה החדשה של HAL שיכולים להשפיע על האבטחה.