首页 > 解决方案 > 如何在 JNI 代码中获取 Android 上的 root 访问权限

问题描述

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

我的 Android 设备已被 root 并且我的应用程序成功获得 root 权限。

我试图通过这种方式获得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){

            }
        }

标签: javac

解决方案


推荐阅读