试图打开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 .