我试图从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进行访问。
答案 0 :(得分:0)
我找到了解决权限问题的方法。
首先,将日志文件写入/ data / misc / audioserver
然后:
adb shell su root cp /data/misc/audioserver/log_before.pcm sdcard/.
等
然后我可以拉文件:
adb pull /sdcard/log_before.pcm .