首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的Dumpsys权限拒绝

java中的Dumpsys权限拒绝
EN

Stack Overflow用户
提问于 2012-06-20 13:31:55
回答 4查看 11.4K关注 0票数 5

我正在尝试获取dumpsys的统计数据,比如dumpsys cpuinfo,dumpsys。我用java执行这些代码,并把它写到一个文件中。但我得到了,

代码语言:javascript
复制
2012.06.20 07:32:19
Permission Denial: can't dump cpuinfo from from pid=862, uid=10040 without permission android.permission.DUMP
for all dumpsys commands.

我已经在android.manifest中添加了权限"android.permission.DUMP""android.permission.BATTERY_STATS"。但是,我使用的cmd代码没有获得resulyPlease帮助,如下所示,其中cmd包含哑元cpuinfo或哑元电池任何人

代码语言:javascript
复制
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
System.setOut(new PrintStream(new FileOutputStream("/sdcard/Monitor/"+file+".txt",false)));
System.out.println("\n\n"+sdf.format(cal.getTime()));           
Log.w("cmd-fn", cmd);
process=Runtime.getRuntime().exec(cmd);
process.waitFor();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String buffer="";

while((buffer=bufferedReader.readLine())!=null)
      {
    //fileobj.write(buffer);
    System.out.println(buffer);
    //output.write(buffer);
}
    buffer="";
    BufferedReader buffered = new BufferedReader(new InputStreamReader(process.getErrorStream()));
    while((buffer=buffered.readLine())!=null)
        {
        Log.w("exception",buffer);
        }

下面是我的清单条目

代码语言:javascript
复制
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.DUMP" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
EN

回答 4

Stack Overflow用户

发布于 2012-06-20 16:39:50

转储权限被定义为android:protectionLevel="signatureOrSystem",因此除非您的应用程序使用平台密钥签名,或者安装在系统分区中,否则您无法获取它。

票数 11
EN

Stack Overflow用户

发布于 2015-01-27 20:24:32

android开发团队决定停止向第三方应用程序授予这些权限。现在只有系统应用程序才能获取它们。

更多细节:https://code.google.com/p/acra/issues/detail?id=100

票数 2
EN

Stack Overflow用户

发布于 2012-06-26 08:56:03

您可以通过检查/proc/meminfo文件来访问一些内存信息,在/proc/下还有其他有趣的文件。希望这些文件在将来的版本中是可读的

获取meminfo的代码示例:

代码语言:javascript
复制
    public static String showMemInfo() {
    StringBuilder meminfo = new StringBuilder();
    try {
        ArrayList<String> commandLine = new ArrayList<String>();
        commandLine.add("cat");
        commandLine.add("/proc/meminfo");

        Process process = Runtime.getRuntime().exec(commandLine.toArray(new String[commandLine.size()]));
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));

        String line;
        while ((line = bufferedReader.readLine()) != null) {
            meminfo.append(line);
            meminfo.append("\n");
        }

    } catch (IOException e) {
        Log.e(LOG_TAG, "Could not read /proc/meminfo", e);
    }

    return meminfo.toString();
}

附言:我知道它不像哑巴那样冗长;)

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

https://stackoverflow.com/questions/11113349

复制
相关文章

相似问题

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