Después de crear una configuración de política de audio, debes empaquetar la implementación de HAL en una biblioteca compartida y copiarla en la ubicación adecuada:
- Crea un directorio
device/<company>/<device>/audiopara que contenga los archivos de origen de tu biblioteca. - Crea un archivo
Android.mkpara compilar la biblioteca compartida. Asegúrate de que el archivo Makefile contenga la siguiente línea:
LOCAL_MODULE := audio.primary.<device>
Tu biblioteca debe llamarse
audio.primary.<device>.sopara que Android pueda cargarla correctamente. La parteprimaryde este nombre de archivo indica que esta biblioteca compartida es para el hardware de audio principal ubicado en el dispositivo. Los nombres de los módulosaudio.a2dp.<device>yaudio.usb.<device>también están disponibles para las interfaces de audio Bluetooth y USB. Este es un ejemplo de unAndroid.mkdel hardware de audio del Galaxy Nexus:LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := audio.primary.tuna LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_SRC_FILES := audio_hw.c ril_interface.c LOCAL_C_INCLUDES += \ external/tinyalsa/include \ $(call include-path-for, audio-utils) \ $(call include-path-for, audio-effects) LOCAL_SHARED_LIBRARIES := liblog libcutils libtinyalsa libaudioutils libdl LOCAL_MODULE_TAGS := optional include $(BUILD_SHARED_LIBRARY) - Si tu producto admite audio de baja latencia, como lo especifica el CDD de Android, copia el archivo de funciones XML correspondiente en tu producto. Por ejemplo, en el archivo Makefile
device/<company>/<device>/device.mkde tu producto:PRODUCT_COPY_FILES := ... PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.audio.low_latency.xml:system/etc/permissions/android.hardware.audio.low_latency.xml \
- Copia el archivo de configuración de la política de audio que creaste antes al directorio
system/etc/en el archivo makefiledevice/<company>/<device>/device.mkde tu producto. Por ejemplo:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf - Declara los módulos compartidos de tu HAL de audio que requiere tu producto en el archivo makefile
device/<company>/<device>/device.mkdel producto. Por ejemplo, el Galaxy Nexus requiere los módulos HAL de audio principal y Bluetooth:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default