Android 判斷Root的方法

來源:互聯網
上載者:User

    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;    }  &nbsp;

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.