我正在尝试从av/services/audioflinger/AudioStreamOut.cpp内部编写一个简单的日志文件,用于测试自定义ROM。我需要它在Nexus 5X (牛头)上工作。
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:
<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访问它。
发布于 2017-03-07 20:05:26
我找到了一个绕过许可问题的方法。
首先,将日志文件写入/data/misc/audioserver
然后:
adb shell su root cp /data/misc/audioserver/log_before.pcm sdcard/.等。
然后我就可以拉出这个文件:
adb pull /sdcard/log_before.pcm .https://stackoverflow.com/questions/42647223
复制相似问题