2010-09-04 104 views

回答

0

Runtime.getruntime.exec

7

你可以寫一些的Android NDK代碼調用klogctl功能。例如:

#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消息的安全功能。上面的代碼將失敗,出現「操作不允許」錯誤。如果你必須給設備的root訪問權限,你可以關閉dmesg_restrict:

echo 0 > /proc/sys/kernel/dmesg_restrict 

而且,最近的一些設備已經啓用SELinux的,在這種情況下,你需要做的

setenforce 0 

如果你不」沒有root權限,你幾乎不走運。