当前位置: 代码迷 >> Android >> Android 判断Root的步骤
  详细解决方案

Android 判断Root的步骤

热度:103   发布时间:2016-04-28 03:10:09.0
Android 判断Root的方法
方法一:(不弹框)
    private final static int kSystemRootStateUnknow = -1;      private final static int kSystemRootStateDisable = 0;      private final static int kSystemRootStateEnable = 1;      private static int systemRootState = kSystemRootStateUnknow; 

public static boolean isRootSystem() {          if (systemRootState == kSystemRootStateEnable) {              return true;          } else if (systemRootState == kSystemRootStateDisable) {              return false;          }          File f = null;          final String kSuSearchPaths[] = { "/system/bin/", "/system/xbin/",                  "/system/sbin/", "/sbin/", "/vendor/bin/" };          try {              for (int i = 0; i < kSuSearchPaths.length; i++) {                  f = new File(kSuSearchPaths[i] + "su");                  if (f != null && f.exists()) {                      systemRootState = kSystemRootStateEnable;                      return true;                  }              }          } catch (Exception e) {          }          systemRootState = kSystemRootStateDisable;          return false;      }


方法二:(会弹框)
public synchronized boolean getRootAhth()    {        Process process = null;        DataOutputStream os = null;        try        {            process = Runtime.getRuntime().exec("su");            os = new DataOutputStream(process.getOutputStream());            os.writeBytes("exit\n");            os.flush();            int exitValue = process.waitFor();            if (exitValue == 0)            {                return true;            } else            {                return false;            }        } catch (Exception e)        {            Log.d("*** DEBUG ***", "Unexpected error - Here is what I know: "                    + e.getMessage());            return false;        } finally        {            try            {                if (os != null)                {                    os.close();                }                process.destroy();            } catch (Exception e)            {                e.printStackTrace();            }        }    }


方法三:(会弹框)
//判断机器 Android是否已经root,即是否获取root权限       protected static boolean haveRoot()      {        int i = execRootCmdSilent("echo test"); //通过执行测试命令来检测         if (i != -1)  return true;        retrun false;      }
  相关解决方案