החל מ-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 שיכולים להשפיע על האבטחה.