如果apk拥有权限

private String execCmd(String cmd){
        Runtime runtime = Runtime.getRuntime();
        Process p = null;
        try{
            p = runtime.exec(cmd);
            try(InputStream inputStream = p.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream))){
                String line;
                String result = "";
                while ((line = bufferedReader.readLine()) != null ){
                    result += line;
                }
                return result;
            }
        }catch (Exception e){
            Log.i("yangyu",e+"");
            e.printStackTrace();
        }finally {
            if(p != null){
                p.destroy();
            }
        }
        return null;
    }

 

如果没有权限

private String execCmd(String cmd){
        Runtime runtime = Runtime.getRuntime();
        Process p = null;
        try{
            p = runtime.exec("su");
            try(OutputStream outputStream = p.getOutputStream();
            DataOutputStream dataOutputStream = new DataOutputStream(outputStream)){
                dataOutputStream.writeBytes(cmd);
                dataOutputStream.flush();
            }
            try(InputStream inputStream = p.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream))){
                String line;
                String result = "";
                while ((line = bufferedReader.readLine()) != null ){
                    result += line;
                }
                return result;
            }
        }catch (Exception e){
            Log.i("yangyu",e+"");
            e.printStackTrace();
        }finally {
            if(p != null){
                p.destroy();
            }
        }
        return null;
    }

 

 

 

 

 

 

 

 

 

 

 

 

 

参考