2014-02-25 90 views
1

我已经看到其他解决方案,但没有一个似乎适用。无法打开日志设备'/ dev/log/main':权限被拒绝

我试图读取执行“logcat -d”的进程,并且在标题中收到错误。

我的AndroidManifest.xml包括:

<uses-permission android:name="android.permission.READ_LOGS" /> 

利用亚行外壳,我可以执行命令就好了。

这是一个代码段:

  ProcessBuilder procBuilder = new ProcessBuilder(); 
      procBuilder.redirectErrorStream(true); 
      procBuilder.command("logcat", "-d"); 
      procBuilder.directory(new File("/")); 
      Process process = procBuilder.start(); 
      //Process process = Runtime.getRuntime().exec("logcat -d"); 

      process.waitFor(); 

      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); 
      StringBuilder log = new StringBuilder(); 
      String line = ""; 
      while ((line = bufferedReader.readLine()) != null) { 
       log.append(line + "\n"); 
      } 

在执行时,我看到的第一行作为标题中的错误,这是所有。

我在网上读到logcat不能在没有su的情况下执行,但是还有大量的代码文章就像这样......工作得很好。

任何其他想法,我可能做错了或可以尝试?

+1

的许可不会对JB +无根的工作。请参阅http://stackoverflow.com/questions/11461650/read-logs-permission-on-jelly-bean-api-16 – Matthew

+0

您是否拥有设备上的root访问权限? – Kakarot

+0

@Matthew谢谢。你可以补充说,作为答案?在这一点上似乎是正确的。 – valheru

回答

2

它归类于前10名坏权限和豆形软糖中关闭,从谷歌回答:

丹贾沛年:读系统日志。现在,我对你们有坏消息。如果 您还没有看过我们的其他演示文稿,请阅读系统日志 实际上已经不存在了。您没有更多的读取系统日志,您可以获得 。但是,您可以在未经许可的情况下为 读取适用于您自己的应用程序的系统日志。所以好消息是不会让人毛骨悚然的 通过打开他们的读取系统日志 权限来监视用户正在做什么。同时,如果我们在Google Play上的崩溃记录和所有 内容不够用,您仍然可以获得有用的日志 ,以帮助您进行调试。

编号:http://youtu.be/WDDgoxvQsrQ?t=22m3s

相关问题