首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用代码阅读android dmesg

用代码阅读android dmesg
EN

Stack Overflow用户
提问于 2010-09-05 03:04:01
回答 2查看 2.8K关注 0票数 3

如何在我的程序中读取dmesg输出?

谢谢..

EN

回答 2

Stack Overflow用户

发布于 2012-10-03 23:24:38

您可以编写一些调用klogctl函数的Android NDK代码。类似于:

代码语言:javascript
复制
#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:

代码语言:javascript
复制
echo 0 > /proc/sys/kernel/dmesg_restrict

此外,最近的一些设备启用了SELinux,在这种情况下,您需要执行以下操作

代码语言:javascript
复制
setenforce 0

如果您没有root访问权限,那么您就很倒霉了。

票数 7
EN

Stack Overflow用户

发布于 2010-09-05 03:37:20

Runtime.getruntime.exec

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3643599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档