android修改sdk支持adb录音

需求

为方便安卓设备测试,要支持adb命令录音

修改方法

内置tinycap和tinymix

tinycap和tinymix 是tinyalsa下的可执行程序,源码在external\tinyalsa下
我们只需要在对应平台的device下的mk 内添加
PRODUCT_PACKAGES += tinycap
PRODUCT_PACKAGES += tinymix
编译即可
类似文件为./device/xx/xx.mk

权限

还需要配置权限,否则需要root权限,无root权限会运行出如下错误
$ tinymix
Failed to open mixer

$ tinycap /sdcard/Music/22.wav -D 0 -d 0 -r 16000 -b 16 -T 5
Unable to open PCM device (cannot open device ‘/dev/snd/pcmC0D0c’: Permission denied)
Captured 0 frames

在device下的对应平台mk中,添加类似如下内容
chmod 666 /dev/snd/controlC0
chmod 666 /dev/snd/pcmC0D0c
再编译出固件烧录进设备,再执行tinycap指令就正常.

录音

录音与播放需要使用tinymix修改功放寄存器,确定tinymix参数可使用两种方法
一种是根据驱动代码确认
另一种

  1. 在非录音状态下执行一次tinymix,把打印保存起来
  2. 然后再打开原生录音APP点击录音后,执行一次tinymix,把打印保存起来.
  3. 对比两次打印得到类似下面打印
diff -uN /tmp/1.txt /tmp/2.txt   
--- /tmp/1.txt  2023-06-06 14:36:36.000000000 +0800
+++ /tmp/2.txt  2023-06-06 14:35:29.941530661 +0800
@@ -17,7 +17,7 @@
 12      INT     1       VBC_SRC_FM                               0
 13      INT     2       VBC DAC0 DG Set                          0 0
 14      INT     2       VBC DAC1 DG Set                          0 0
-15      INT     2       VBC ADC0 DG Set                          0 0
+15      INT     2       VBC ADC0 DG Set                          46 46
 16      INT     2       VBC ADC1 DG Set                          0 0
 17      INT     2       VBC ADC2 DG Set                          0 0
 18      INT     2       VBC ADC3 DG Set                          0 0
@@ -88,8 +88,8 @@
 83      ENUM    1       VBC_UL_MUTE                              disable
 84      ENUM    1       VBC_DL_MUTE                              disable
 85      ENUM    1       VBC IIS Master Setting                   disable_iis0
-86      BOOL    1       agdsp_access_en                          Off
-87      BOOL    1       agdsp_access_a2dp_en                     Off
+86      BOOL    1       agdsp_access_en                          On
+87      BOOL    1       agdsp_access_a2dp_en                     On
 88      INT     1       VBC_VOLUME                               0
 89      INT     1       Audio Structure Profile Update           1
 90      INT     1       DSP VBC Profile Update                   1
@@ -104,7 +104,7 @@
 99      ENUM    1       VBC_IIS_TX2_WD_SEL                       WD_16BIT
 100     ENUM    1       VBC_IIS_RX0_WD_SEL                       WD_24BIT
 101     ENUM    1       VBC_IIS_RX1_WD_SEL                       WD_24BIT
-102     ENUM    1       VBC_IIS_RX2_WD_SEL                       WD_16BIT
+102     ENUM    1       VBC_IIS_RX2_WD_SEL                       WD_24BIT
 103     ENUM    1       VBC_IIS_RX3_WD_SEL                       WD_16BIT
 104     ENUM    1       VBC_IIS_TX0_LRMOD_SEL                    LEFT_HIGH
 105     ENUM    1       VBC_IIS_TX1_LRMOD_SEL                    LEFT_HIGH
@@ -123,7 +123,7 @@
 118     ENUM    1       VBC_DSP_MAINMIC_REF_PATH_SEL             MAINMIC_FROM_LEFT
 119     ENUM    1       IVSENCE_FUNC_DSP                         disable
 120     ENUM    1       ag_iis0_ext_sel                          disable
-121     ENUM    1       ag_iis1_ext_sel                          disable
+121     ENUM    1       ag_iis1_ext_sel                          enable
 122     ENUM    1       ag_iis2_ext_sel                          disable
 123     ENUM    1       SYS_IIS0                                 vbc_iis0
 124     ENUM    1       SYS_IIS1                                 vbc_iis0
@@ -143,8 +143,8 @@
 138     ENUM    1       Aud Codec Info                           (null)
 139     INT     1       Inter PA Config                          303
 140     ENUM    1       DAC LRCLK Select                         normal
-141     ENUM    1       ADC LRCLK Select                         normal
-142     ENUM    1       ADC1 LRCLK Select                        normal
+141     ENUM    1       ADC LRCLK Select                         invert
+142     ENUM    1       ADC1 LRCLK Select                        invert
 143     INT     1       HP mix mode                              0
 144     INT     1       SPK DG fall                              1
 145     ENUM    1       DAS Input Mux                            L+R
@@ -156,7 +156,7 @@
 151     BOOL    1       Earpiece Function                        Off
 152     BOOL    1       HeadPhone Function                       Off
 153     BOOL    1       Line Function                            Off
-154     BOOL    1       Mic Function                             Off
+154     BOOL    1       Mic Function                             On
 155     BOOL    1       Aux Mic Function                         Off
 156     BOOL    1       HP Mic Function                          Off
 157     BOOL    1       DMic Function                            Off
@@ -167,18 +167,18 @@
 162     BOOL    1       HeadPhone Mute                           Off
 163     BOOL    1       Earpiece Mute                            Off
 164     ENUM    1       SmartAmp Boost                           Bypass
-165     BOOL    1       ADCL Mixer MainMICADCL Switch            Off
+165     BOOL    1       ADCL Mixer MainMICADCL Switch            On
 166     BOOL    1       ADCL Mixer HPMICADCL Switch              Off
 167     BOOL    1       ADCL Mixer VSENSEL Switch                Off
 168     BOOL    1       ADCR Mixer AuxMICADCR Switch             Off
 169     BOOL    1       ADCR Mixer HPMICADCR Switch              Off
 170     BOOL    1       ADCR Mixer ISENSER Switch                Off
-171     BOOL    1       AUD ADC0L Switch                         Off
-172     BOOL    1       AUD ADC0R Switch                         Off
+171     BOOL    1       AUD ADC0L Switch                         On
+172     BOOL    1       AUD ADC0R Switch                         On
 173     BOOL    1       AUD ADC1L Switch                         Off
 174     BOOL    1       AUD ADC1R Switch                         Off
-175     INT     1       ADCL Gain ADCL Capture Volume            0
-176     INT     1       ADCR Gain ADCR Capture Volume            0
+175     INT     1       ADCL Gain ADCL Capture Volume            6
+176     INT     1       ADCR Gain ADCR Capture Volume            6
 177     INT     1       DAC Gain DAC Playback Volume             0
 178     INT     1       SPKL Gain SPKL Playback Volume           0
 179     BOOL    1       SPKL Mixer DACLSPKL Switch               Off
@@ -200,19 +200,19 @@
 195     ENUM    1       Digital ADC In Sel                       ADC
 196     ENUM    1       Digital ADC1 In Sel                      ADC
 197     BOOL    1       S_NORMAL_AP01_P_CODEC SWITCH             Off
-198     BOOL    1       S_NORMAL_AP01_C_CODEC SWITCH             Off
+198     BOOL    1       S_NORMAL_AP01_C_CODEC SWITCH             On
 199     BOOL    1       S_NORMAL_AP23_P_CODEC SWITCH             Off
-200     BOOL    1       S_NORMAL_AP23_C_CODEC SWITCH             Off
-201     BOOL    1       S_CAPTURE_DSP_CODEC SWITCH               Off
+200     BOOL    1       S_NORMAL_AP23_C_CODEC SWITCH             On
+201     BOOL    1       S_CAPTURE_DSP_CODEC SWITCH               On
 202     BOOL    1       S_FAST_P_CODEC SWITCH                    Off
 203     BOOL    1       S_OFFLOAD_CODEC SWITCH                   Off
 204     BOOL    1       S_VOICE_P_CODEC SWITCH                   Off
-205     BOOL    1       S_VOICE_C_CODEC SWITCH                   Off
+205     BOOL    1       S_VOICE_C_CODEC SWITCH                   On
 206     BOOL    1       S_VOIP_P_CODEC SWITCH                    Off
-207     BOOL    1       S_VOIP_C_CODEC SWITCH                    Off
+207     BOOL    1       S_VOIP_C_CODEC SWITCH                    On
 208     BOOL    1       S_FM_CODEC SWITCH                        Off
 209     BOOL    1       S_LOOP_P_CODEC SWITCH                    Off
-210     BOOL    1       S_LOOP_C_CODEC SWITCH                    Off
+210     BOOL    1       S_LOOP_C_CODEC SWITCH                    On
 211     BOOL    1       S_FM_DSP_CODEC SWITCH                    Off
 212     BOOL    1       S_NORMAL_AP01_P_USB SWITCH               Off
 213     BOOL    1       S_NORMAL_AP01_C_USB SWITCH               Off

可根据差异打印,得出tinymix参数
比如上面一处差异
-207 BOOL 1 S_VOIP_C_CODEC SWITCH Off
+207 BOOL 1 S_VOIP_C_CODEC SWITCH On
则命令为
adb shell tinymix -D 0 “S_VOIP_C_CODEC SWITCH” 1
其他省略,有一些参数显示有差异但是可能不需要
设置完,调用tinycap开始录音
adb shell tinycap /data/mmic.wav -D -0 -d 0 -r 16000 -b 16 -T 3
作者:帅得不敢出门

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android SDK Platform-Tools(包括ADB)可以在这里下载: https://developer.android.com/studio/releases/platform-tools 请确保您下载的是适用于您操作系统的版本(Windows、Mac或Linux)。 ### 回答2: Android ADB SDKAndroid系统非常重要的组件之一,它可以帮助我们与Android设备进行通信,实现ADB调试、安装APP、备份恢复数据、执行命令等功能,有了它,开发Android应用能够更加轻松、高效。那么下面我就来介绍一下Android ADB SDK下载地址。 1. Android 官方网站下载 在Android官方网站(https://developer.android.com/studio/releases/platform-tools)中,您可以下载最新的Android SDK平台工具,包含最新的ADB二进制文件,适用于Windows、Linux和macOS。下载完成后,解压该文件,您就可以轻松找到ADB二进制文件。 2. 码云镜像下载 在码云(https://gitee.com/mirrors/adb-sync)上,有一个非常流行的ADB的同步镜像,您可以通过它来下载ADB二进制文件、ADB Sync和ADB Wifi工具。以ADB Sync为例,只需执行以下命令即可: git clone https://gitee.com/mirrors/adb-sync.git cd adb-sync make 3. 其他下载工具 在GitHub(https://github.com/android/platform_system_core/tree/master/adb)和F-Droid(https://f-droid.org/zh_Hans/packages/org.ligi.android.donateme.adb/)中,您也可以找到Android ADB SDK的下载地址。同时,在部分国内优秀的第三方Android应用市场中,也提供有ADB下载服务。不过需要注意的是,由于不同平台不同版本的ADB二进制文件具有不同的兼容性,所以需要针对应用的具体环境下载相应的版本。 总的来说,下载Android ADB SDK最好还是到官方网站获取最新的版本,平时我们也应多注意更新ADB,以保证其稳定性和兼容性。希望我的回答可以帮到你。 ### 回答3: Android adb sdkAndroid开发者桥接工具(Android Debug Bridge),这个工具可以用来连接Android设备或者虚拟设备,以便于进行开发、测试和调试Android应用程序。ADB通常是作为Android SDK的一部分提供的。那么,Android adb sdk下载地址是什么呢? 首先,我们需要明确ADB的下载方式。ADB除了同Android SDK一起提供下载,也可以单独下载。同时,ADB的下载包常常随着Android SDK版本的更新而更新,因此,我们需要根据不同的使用需求选择下载不同版本的ADB。 下面是关于如何下载ADB的几个步骤: 步骤1:访问谷歌官方网站,进入Android SDK Tools下载页面。 步骤2:下载并安装Android Studio,在安装过程中会默认下载Android SDK,包括ADB。 步骤3:如果已经安装了Android Studio,那么可以在SDK Manager中找到ADB,并下载最新版本。 步骤4:如果需要单独下载ADB,那么可以通过第三方网站下载,如Github、CSDN等。 总体来说,下载ADB sdk的方式比较容易,最主要的是下载的版本要和自己使用的环境相匹配,这样才能保证最好的使用效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值