android修改sdk支持adb录音

这篇具有很好参考价值的文章主要介绍了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
作者:帅得不敢出门文章来源地址https://www.toymoban.com/news/detail-473446.html

到了这里,关于android修改sdk支持adb录音的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android(安卓) 无线ADB调试手机(WiFi 调试、蓝牙调试)

    1. 手机和电脑连接同一局域网(连同一个 WiFi、手机开热点电脑连接、电脑开热点手机连接) 2.手机打开USB调试模式 3. 查找你需要连接的Android(安卓)设备的ip (方式一)手机开热点电脑连接(手机分享蓝牙网络给电脑连接): 1)电脑打开cmd窗口(win+R) 输入: 2)在cmd里面输入:

    2024年02月09日
    浏览(74)
  • Android Studio配置adb使用WIFI连接手机调试安卓程序

    安装adb参考:https://www.linmeimei.top/2023/03/02/flutter-adb 手机设置 打开开发者模式(用HUAWEI举例) 【设置】→【关于手机】→【版本号】→ 连续点击5次即可进入开发者模式 打开USB调试 【设置】→【系统和更新】→【开发人员选项】→开启【USB调试】开关→开启【\\\"仅充电\\\"模式下允许

    2024年02月04日
    浏览(55)
  • 锤科HandShaker修改版,支持安卓14、澎湃OS

    如今几乎各家手机厂商都在布局生态,但PC端往往是最容易被忽略的一环,哪怕是很强的华为鸿蒙、小米澎湃,想要做到手机和电脑互联,也限制了笔记本机型 虽然我一直致力于解锁非小米电脑安装小米电脑管家,比如前几天刚刚更新在CSDN上的文章妙享中心升级,小米电脑管

    2024年02月02日
    浏览(192)
  • adb修改android系统时间 adb shell date必须要root权限

    以下是一个示例代码,展示如何实现这个格式化: 请注意, GetSystemTime 函数获取的是 GMT 时间,所以如果你需要的是本地时间的毫秒数,应该使用 GetLocalTime 函数替换 GetSystemTime 。同时,这种方法假定系统时区设置是正确的。如果系统时区设置不正确,计算出的时间可能会有

    2024年02月02日
    浏览(55)
  • adb shell date 命令修改Android系统时间

    1.关掉自动时间同步 settings put global auto_time 0 2.关掉自动时区同步 settings put global auto_time_zone 0 3.挂载 adb remount 4.adb shell date “时间格式”    日期格式为 yyyymmdd.hhmmss 或者是 yyyy-mm-dd hh:mm:ss adb shell date \\\"2023-12-05 10:00:00\\\" 5.查看时间是否设置成功 adb shell date 6.设置时区。先将自动

    2024年02月01日
    浏览(50)
  • Android 使用adb修改手机分辨率、dpi

    为了适配不同尺寸屏幕的手机,最简单的方式就是通过adb修改分辨率和dpi Android Studio 安装adb(Android Debug Bridge) https://developer.android.com/studio/releases/platform-tools?hl=zh-cn 查看分辨率 修改分辨率 查看dpi 修改dpi 恢复默认的size和dpi android利用adb修改手机的分辨率和dpi

    2024年02月11日
    浏览(62)
  • [Android Studio]查看和修改Android API SDK的配置

         🟧🟨🟩🟦🟪 Android Debug 🟧🟨🟩🟦🟪 Topic 发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 📋笔记目录    📒一.  Android Studio更换配置sdk 💻问题描述  🎯解决方法 ⏸️GIF演示  📒二. 查看修改Android Modules模块的SDK版本 💻问

    2024年01月17日
    浏览(42)
  • Android Stuido中修改项目SDK版本号

    通过Android Studio创建项目时,只能选择项目支持的最低SDK版本号,而无法选择当前编译使用的版本号,如图1所示。                                                  图1 选择项目支持的最小版本号 而编译项目的SDK版本号默认是Android Studio安装的最新S

    2024年02月08日
    浏览(32)
  • 安卓原生电视盒子首次激活连不上wifi? Google tv adb命令 修改网络访问限制,禁用本地桌面 启用emotnUI

    安卓原生电视盒子首次激活连不上wifi? 软路由里把time.android.com劫持到 203.107.6.88(阿里云的ntp服务器)就能解决原生安卓时间不对的问题 了 clash 规则加入 - DOMAIN-SUFFIX,googleapis.com,xxxx #xxxx是你需要配置的名字 OpenWRT 具体步骤:openwrt—网络----dhcp/dns----host和解析文件拉到最下边-

    2024年02月04日
    浏览(43)
  • Android Studio 支持安卓手机投屏

    有时当我们在线上做技术分享或者功能演示时,希望共享连接中的手机屏幕,此时我们会求助 ApowerMirror,LetsView,Vysor,Scrcpy 等工具。如果你是一个 Android Developer,那么现在你有了更好的选择。 自 Android Studio Electric Eel (电鳗)起支持了手机投屏,且功能非常强大: 手机屏幕

    2024年01月17日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包