Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行su-c“命令”进程_Java_Android - Fatal编程技术网

Java 运行su-c“命令”进程

Java 运行su-c“命令”进程,java,android,Java,Android,我想使用su启动命令并读取其输出。 我尝试了以下代码: String line; Process cat=Runtime.getRuntime().exec("su -c \"cat /etc/media_codecs.xml\""); BufferedReader catStream= new BufferedReader(new InputStreamReader(cat.getInputStream())); Buffered

我想使用su启动命令并读取其输出。 我尝试了以下代码:

        String line;
        Process cat=Runtime.getRuntime().exec("su -c \"cat /etc/media_codecs.xml\"");
        BufferedReader catStream= new BufferedReader(new InputStreamReader(cat.getInputStream()));
        BufferedReader catSerr= new BufferedReader(new InputStreamReader(cat.getErrorStream()));
        cat.waitFor();
        while((line=catSerr.readLine())!=null)
        {
            System.out.println(line);
        }
         while((line=catStream.readLine())!=null)
        {
            System.out.println(line);
        }
如果我在adb外壳中手动插入此命令,它可以工作,但使用此代码,手机会向我请求root权限,如果我接受,我只能向stderr读取此字符串:

tmp mksh:cat/etc/media_codecs.xml:未找到


并且没有标准输出。原因?

文件可能没有为应用程序进程装载,但更可能的是,错误消息暗示,该文件被解释为cat程序名称的一部分,而不是其参数。请注意,对于“su”程序的行为没有标准-任何实际用于此目的的都是第三方黑客。谢谢。我能做些什么来解决这个问题呢?