我正在尝试从 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 访问它。