Back to project page turbo-editor.
The source code is released under:
GNU General Public License
If you think the Android project turbo-editor listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2014 Vlad Mihalachi// w ww .j a v a2 s. c om * * This file is part of Turbo Editor. * * Turbo Editor is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Turbo Editor is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package sharedcode.turboeditor.root; import android.util.Log; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; public class LinuxShell { private static final String UNIX_ESCAPE_EXPRESSION = "(\\(|\\)|\\[|\\]|\\s|\'|\"|`|\\{|\\}|&|\\\\|\\?)"; public static String getCommandLineString(String input) { return input.replaceAll(UNIX_ESCAPE_EXPRESSION, "\\\\$1"); } public static BufferedReader execute(String cmd) { BufferedReader reader = null; try { Process process = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream( process.getOutputStream()); os.writeBytes(cmd + "\n"); os.writeBytes("exit\n"); reader = new BufferedReader(new InputStreamReader( process.getInputStream())); String err = (new BufferedReader(new InputStreamReader( process.getErrorStream()))).readLine(); os.flush(); if (process.waitFor() != 0 || (!"".equals(err) && null != err) && containsIllegals(err) != true) { Log.e("Root Error, cmd: " + cmd, err); return null; } return reader; } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; } public static boolean containsIllegals(String toExamine) { // checks for "+" sign so the program doesn't throw an error when its // not erroring. Pattern pattern = Pattern.compile("[+]"); Matcher matcher = pattern.matcher(toExamine); return matcher.find(); } }