首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试打开audioflinger (AOSP)中的输出文件

尝试打开audioflinger (AOSP)中的输出文件
EN

Stack Overflow用户
提问于 2017-03-07 19:32:03
回答 1查看 508关注 0票数 1

我正在尝试从av/services/audioflinger/AudioStreamOut.cpp内部编写一个简单的日志文件,用于测试自定义ROM。我需要它在Nexus 5X (牛头)上工作。

代码语言:javascript
复制
if (logFile1 == NULL)
    logFile1 = fopen("/sdcard/log_before.pcm", "ab");


if (logFile1 == NULL)
    ALOGE("can't open 1, errno %d", errno);

我的许可被拒绝了(ERRNO是13)。

我尝试通过添加以下内容来修改framework/base/data/etc/platform.xml:

代码语言:javascript
复制
<assign-permission name="android.permission.WRITE_EXTERNAL_STORAGE" uid="media" />
<assign-permission name="android.permission.WRITE_EXTERNAL_STORAGE" uid="audioserver" />
<assign-permission name="android.permission.WRITE_EXTERNAL_STORAGE" uid="audio" />

仍然没有变化。我怎么才能让它工作呢?或者,在文件系统中还有其他地方可以使用像audioflinger这样的系统服务来写入文件吗?

更新:

我刚刚找到了一个适用于模拟器的解决方案--在Android N中,写到/data/misc/audioserver。

当我使用ADB shell时,它显示这个特定的文件夹有"audioserver“组,这就是它工作的原因。

我通过这个链接找到了这个文件夹:https://source.android.com/devices/audio/debugging.html

但是这个文件夹在Nexus 5X上似乎是无法访问的--即使使用su root,也无法使用shell访问它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-07 20:05:26

我找到了一个绕过许可问题的方法。

首先,将日志文件写入/data/misc/audioserver

然后:

代码语言:javascript
复制
adb shell su root cp /data/misc/audioserver/log_before.pcm sdcard/.

等。

然后我就可以拉出这个文件:

代码语言:javascript
复制
adb pull /sdcard/log_before.pcm .
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42647223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档