Android Open Source - FileManager Linux Shell






From Project

Back to project page FileManager.

License

The source code is released under:

GNU General Public License

If you think the Android project FileManager listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 *   920 Text 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.
 *// w w  w. j  av a2s  .  c o m
 *   920 Text 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 920 Text Editor.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.ankur.coreutils;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import android.util.Log;

public class LinuxShell {

  public static String getCmdPath(String path) {
    return path.replace(" ", "\\ ").replace("'", "\\'");
  }

  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)) {
        Log.e("Root Error", 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 isRoot() {
    boolean retval = false;
    Process suProcess;

    try {
      suProcess = Runtime.getRuntime().exec("su");

      DataOutputStream os = new DataOutputStream(
          suProcess.getOutputStream());
      BufferedReader osRes = new BufferedReader(new InputStreamReader(
          suProcess.getInputStream()));

      if (null != os && null != osRes) {
        // Getting the id of the current user to check if this is root
        os.writeBytes("id\n");
        os.flush();

        String currUid = osRes.readLine();
        boolean exitSu = false;
        if (null == currUid) {
          retval = false;
          exitSu = false;
          Log.e("ROOT", "Can't get root access or denied by user");
        } else if (true == currUid.contains("uid=0")) {
          retval = true;
          exitSu = true;
        } else {
          retval = false;
          exitSu = true;
          Log.e("ROOT", "Root access rejected: " + currUid);
        }

        if (exitSu) {
          os.writeBytes("exit\n");
          os.flush();
        }
      }
    } catch (Exception e) {
      // Can't get root !

      retval = false;
      Log.d("ROOT", "Root access rejected [" + e.getClass().getName()
          + "] : " + e.getMessage());
    }
    return retval;
  }
}




Java Source Code List

com.ankur.core.AppManager.java
com.ankur.core.DirectoryInfo.java
com.ankur.core.EventHandler.java
com.ankur.core.FileUtils.java
com.ankur.core.InfoDialog.java
com.ankur.core.Main.java
com.ankur.core.Settings.java
com.ankur.coreutils.Bookmarks.java
com.ankur.coreutils.CheckBoxActivity.java
com.ankur.coreutils.ClearSearchSuggestions.java
com.ankur.coreutils.Compress.java
com.ankur.coreutils.Decompress.java
com.ankur.coreutils.ImagePreview.java
com.ankur.coreutils.LinuxShell.java
com.ankur.coreutils.SearchSuggestions.java
com.ankur.coreutils.VideoPreview.java