试图在audioflinger(AOSP)中打开输出文件

时间:2017-03-07 11:32:03

标签: android android-permissions android-source audioflinger android-rom

我试图从av / services / audioflinger / AudioStreamOut.cpp中编写一个简单的日志文件,用于测试自定义ROM。 我需要它来使用Nexus 5X(bullhead)。

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


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

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

我尝试通过添加以下内容来修改frameworks / base / data / 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这样的系统服务应该用来编写文件吗?

更新:

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

当我使用ADB shell时,它告诉我这个特定文件夹有&#34; audioserver&#34;小组,这就是它起作用的原因。

我在此链接中找到了有关此文件夹的信息:https://source.android.com/devices/audio/debugging.html

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

1 个答案:

答案 0 :(得分:0)

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

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

然后:

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

然后我可以拉文件:

adb pull /sdcard/log_before.pcm .