如何在我的程序中读取dmesg输出?
谢谢..
发布于 2012-10-03 23:24:38
您可以编写一些调用klogctl函数的Android NDK代码。类似于:
#include <sys/klog.h>
#define KLOG_READ_ALL 3
#define KLOG_LEN (1 << 17)
char buf[KLOG_LEN];
if (klogctl(KLOG_READ_ALL, buf, KLOG_LEN) < 0)
{
printf("Error %s reading dmesg\n", strerror(errno));
}
else
{
/* do something with contents of buf */
}然而,在Android 4.1 Jelly Bean中,他们实现了一个安全功能,该功能禁止访问dmesg消息。上面的代码将失败,并显示“不允许操作”错误。如果您拥有设备的超级用户访问权限,则可以关闭dmesg_restrict:
echo 0 > /proc/sys/kernel/dmesg_restrict此外,最近的一些设备启用了SELinux,在这种情况下,您需要执行以下操作
setenforce 0如果您没有root访问权限,那么您就很倒霉了。
发布于 2010-09-05 03:37:20
Runtime.getruntime.exec
https://stackoverflow.com/questions/3643599
复制相似问题