1

我正在尝试从 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)。

我尝试通过添加以下内容来修改 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 时,它告诉我这个特定的文件夹有“audioserver”组,这就是它起作用的原因。

我从这个链接找到了这个文件夹:https ://source.android.com/devices/audio/debugging.html

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

4

1 回答 1

0

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

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

然后:

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

等等。

然后我可以拉文件:

adb pull /sdcard/log_before.pcm .
于 2017-03-07T12:05:26.260 回答