试图打开audioflinger(AOSP)内的输出文件

问题描述:

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

if (logFile1 == NULL) 
    logFile1 = fopen("/sdcard/log_before.pcm", "ab"); 


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

我得到了权限被拒绝(ERRNO为13)。

我试图通过添加以下修改框架/碱/数据的/ etc/platform.xml:

<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这样的系统服务应该用于写文件?

UPDATE:

我刚刚发现,仿真器有效的解决方案 - 在Android的N,写入/数据/其它/ AUDIOSERVER。

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

我发现了大约从这个链接到此文件夹:https://source.android.com/devices/audio/debugging.html

但该文件夹似乎不是在Nexus 5X访问 - 不能得到它与外壳,即使苏根。

我找到了解决权限问题的方法。

首先,写日志文件/数据/其它/ AUDIOSERVER

然后:

adb shell su root cp /data/misc/audioserver/log_before.pcm sdcard/. 

等等

,然后我可以拉文件:

adb pull /sdcard/log_before.pcm .