ב-Android מגרסה 14 ואילך, ממשק ה-HAL של האודיו מוגדר באמצעות Stable AIDL. מומלץ לשותפים ולספקי SoC להטמיע מחדש את ה-HAL של האודיו כדי לספק ממשק AIDL.
הרחבת ספריית libaudiohal מוסיפה תמיכה במסגרת ל-AIDL HAL.
בהטמעה של AIDL, מפרט ההגדרה של מדיניות האודיו מועבר ל-AIDL HAL. בעקבות השינוי הזה, Audio Policy Manager (APM) מקבל את ההגדרה מ-HAL במקום להשתמש בה מקובץ ה-XML שסופק על ידי הספק.
Audio AIDL HAL API
בקטע הזה מתוארים ממשקי ה-API של AIDL ל-HAL: Core, Effects ו-Common.
אפשר להשתמש בהטמעה שמוגדרת כברירת מחדל של 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 החדשה שיכולים להשפיע על האבטחה.