Here you can find the source of deviceBeRoot()
public static boolean deviceBeRoot()
//package com.java2s; /*//from w w w. j av a 2 s .co m * Copyright (C) 2014 The AppCan Open Source Project. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * This program 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 Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ import java.io.DataOutputStream; import java.io.File; import java.io.OutputStream; public class Main { static boolean isSilent = true; public static boolean deviceBeRoot() { if (isSilent) { return isRootSystem(); } int i = execRootCmdSilent("echo test"); if (i != -1) { return true; } return false; } public static boolean isRootSystem() { String paths[] = { "/system/bin/", "/system/xbin/", "/system/sbin/", "/sbin/", "/vendor/bin/" }; try { File file = null; String su = "su"; for (String dir : paths) { file = new File(dir + su); if (file != null && file.exists()) { return true; } } } catch (Exception e) { e.printStackTrace(); } return false; } public static int execRootCmdSilent(String cmd) { try { Process p = Runtime.getRuntime().exec("su "); Object obj = p.getOutputStream(); DataOutputStream dOutStream = new DataOutputStream( (OutputStream) obj); String str = String.valueOf(cmd); obj = str + "\n"; dOutStream.writeBytes((String) obj); dOutStream.flush(); dOutStream.writeBytes("exit\n"); dOutStream.flush(); p.waitFor(); int result = p.exitValue(); return (Integer) result; } catch (Exception e) { e.printStackTrace(); return -1; } } }