Depois de criar uma configuração de política de áudio, empacote a implementação do HAL em uma biblioteca compartilhada e copie para o local apropriado:
- Crie um diretório
device/<company>/<device>/audio
para conter os arquivos de origem da biblioteca. - Crie um arquivo
Android.mk
para criar a biblioteca compartilhada. Verifique se o Makefile contém a seguinte linha:
LOCAL_MODULE := audio.primary.<device>
Sua biblioteca precisa ser chamada de
audio.primary.<device>.so
para que o Android possa carregá-la corretamente. A parteprimary
do nome do arquivo indica que essa biblioteca compartilhada é para o hardware de áudio principal localizado no dispositivo. Os nomes de móduloaudio.a2dp.<device>
eaudio.usb.<device>
também estão disponíveis para interfaces de áudio Bluetooth e USB. Confira um exemplo deAndroid.mk
do hardware de áudio 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)
- Se o produto oferecer suporte a áudio de baixa latência conforme especificado pelo CDD do Android,
copie o arquivo de recurso XML correspondente para o produto. Por exemplo, no
Makefile
device/<company>/<device>/device.mk
do produto: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 \
- Copie o arquivo de configuração da política de áudio que você criou anteriormente para o
diretório
system/etc/
no Makefiledevice/<company>/<device>/device.mk
do produto. Exemplo:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Declare os módulos compartilhados do HAL de áudio que são necessários para o
produto no
makefile
device/<company>/<device>/device.mk
. Por exemplo, o Galaxy Nexus exige os módulos HAL de áudio principal e Bluetooth:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default