想写个android程序来实时监听内核的log信息,并将其存储在sdcard的某一地方。
现思路如下:Process process = Runtime.getRuntime().exec(mCmd);     //mCmd为cat /proc/kmsg
                     读取process.getInputStream()的输入流并通过BufferedWriter写到SD卡上
但是一直没有办法实现,更改了kmsg文件的权限也不可以,将应用的AndroidManifest.xml文件中加上android:sharedUserId="android.uid.system"也不可以。
实在没有办法了谁还有思路或是解决过类似问题,不胜感激(dmesg不够全,所以必须是kmsg中的内容)。Androidkmsg

解决方案 »

  1.   

    实在是没有什么思路,其他/proc下的文件都可以,logcat命令通过该种方式也可以,就偏偏kmsg不行,本人有Android源码开发环境,难道底层需要改什么吗?
      

  2.   

    好像是改system下的代码,添加一条类似logcat的命令,只不过之读取kmsg文件的内容,这样上层调用该命令就可以读出log数据了。
      

  3.   

    怎么不可以呢?有出错信息吗.
    要获取kmsg信息,需要root的,所以在编译源码时,你用ENG编译试试
      

  4.   

    改动挺多的,这个后来不是我做的了,你可以参考下logcat命令创建的流程,创建一个catkmsg命令来执行cat /proc/kmsg。