尝试在 audioflinger (AOSP) 中打开输出文件
Attempting to open output file inside audioflinger (AOSP)
我正在尝试从 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 时,它告诉我这个特定文件夹有 "audioserver" 组,这就是它起作用的原因。
我从这个 link 找到了这个文件夹:https://source.android.com/devices/audio/debugging.html
但是这个文件夹在 Nexus 5X 上似乎无法访问 - 无法使用 shell 访问它,即使使用 su root 也是如此。
我找到了解决权限问题的方法。
首先,将日志文件写入/data/misc/audioserver
然后:
adb shell su root cp /data/misc/audioserver/log_before.pcm sdcard/.
等等
然后我可以拉取文件:
adb pull /sdcard/log_before.pcm .
我正在尝试从 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 时,它告诉我这个特定文件夹有 "audioserver" 组,这就是它起作用的原因。
我从这个 link 找到了这个文件夹:https://source.android.com/devices/audio/debugging.html
但是这个文件夹在 Nexus 5X 上似乎无法访问 - 无法使用 shell 访问它,即使使用 su root 也是如此。
我找到了解决权限问题的方法。
首先,将日志文件写入/data/misc/audioserver
然后:
adb shell su root cp /data/misc/audioserver/log_before.pcm sdcard/.
等等
然后我可以拉取文件:
adb pull /sdcard/log_before.pcm .