AudioFlinger PCM Dump 使用 Tee Sink
主要是一种用于音频调试的功能,它允许开发者获取最近音频的短片段以供日后分析。这有助于比较实际播放或录制的内容与预期内容,从而帮助解决可能存在的音频问题。
Tee Sink 是 Android 系统中 AudioFlinger 组件的一部分,并且仅在定制的构建版本(如 userdebug 或eng 版本)中提供。默认情况下,出于隐私考虑,Tee Sink在编译时和运行时都处于停用状态。如果需要使用,必须重新编译并设置相关属性来启用它。完成调试后,务必停用此功能,因为在正式构建版本中不应启用。
在使用 Tee Sink 进行 PCM Dump时,生成的日志或数据会包含音频的详细信息,这对于分析和解决音频问题非常有价值。这些日志通常包含音频流的内容、参数、时间戳等信息,可以帮助开发者深入了解音频流的传输和处理过程。
1. start_pcm_dump_enable.bat
adb shell rm /data/misc/audioserver/. -rf
adb shell ls -al /data/misc/audioserver/.
adb root
adb shell setprop log.dump.pcm.AF 1
adb shell setprop log.dump.pcm.AF_Effect 1
adb shell setprop log.dump.pcm.AF_MultiChannels 1
adb shell setprop vendor.dolby.debug.dap_pcm_dump 1
adb shell setprop vendor.dolby.debug.vsv_pcm_dump 1
adb shell setprop vendor.dolby.debug.udc_audio_dump 1
adb shell setprop vendor.dolby.debug.ac4dec_audio_dump 0
adb shell setprop vendor.dolby.dap.param.tee 1
adb shell setenforce 0
adb root && adb shell chmod 777 /data/misc/audioserver
@echo ========START HOOK
adb shell logcat -c && adb shell logcat > main_log.txt
2. stop_pcm_dump_disable.bat
adb root
adb shell setprop log.dump.pcm.AF 0
adb shell setprop log.dump.pcm.AF_Effect 0
adb shell setprop log.dump.pcm.AF_MultiChannels 0
adb shell setprop vendor.dolby.debug.dap_pcm_dump 0
adb shell setprop vendor.dolby.debug.vsv_pcm_dump 0
adb shell setprop vendor.dolby.debug.udc_audio_dump 0
adb shell setprop vendor.dolby.dap.param.tee 0
3. pull.bat
adb root
rmdir fw_hook_pcm /s /q
mkdir fw_hook_pcm
adb pull /data/misc/audioserver fw_hook_pcm
pause