Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.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 如何在JNI代码中获得Android上的root访问权限_Java_C - Fatal编程技术网

Java 如何在JNI代码中获得Android上的root访问权限

Java 如何在JNI代码中获得Android上的root访问权限,java,c,Java,C,我添加了一些Java代码以获得根访问权限,只需创建一个新进程并执行su命令。但是我的一些JNIC代码需要root权限。例如,我调用了open(“/dev/block/mmcblk0”,ordonly),这需要根访问权限。但它仍然失败,尽管我有根访问权限。为什么会这样?如何解决这个问题 我的Android设备已根目录,我的应用程序已成功获得根目录权限 我试图通过以下方式获得root访问权限: Process process=null; DataOutputStream os=nul

我添加了一些Java代码以获得根访问权限,只需创建一个新进程并执行su命令。但是我的一些JNIC代码需要root权限。例如,我调用了open(“/dev/block/mmcblk0”,ordonly),这需要根访问权限。但它仍然失败,尽管我有根访问权限。为什么会这样?如何解决这个问题

我的Android设备已根目录,我的应用程序已成功获得根目录权限

我试图通过以下方式获得root访问权限:

Process process=null;
        DataOutputStream os=null;
        try{
            process=Runtime.getRuntime().exec("su");
            os=new DataOutputStream(process.getOutputStream());
            os.writeBytes(command+"\n");
            os.writeBytes("exit\n");
            os.flush();
            process.waitFor();
        } catch (Exception e) {
            Log.d("###DEBUG###",e.getMessage());
            return false;
        } finally {
            try{
                if(os!=null){
                    os.close();
                }
                process.destroy();
            }catch(Exception e){

            }
        }

它怎么会失败?当dmesg或logcat出现故障时,您是否看到任何错误消息?不,dmesg中没有任何消息。open调用返回-1I使用strerror显示错误消息,其权限被拒绝。我的uid是10111,为什么?它怎么会失败?当dmesg或logcat出现故障时,您是否看到任何错误消息?不,dmesg中没有任何消息。open调用返回-1I使用strerror显示错误消息,其权限被拒绝。我的uid是10111,为什么?