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