现在的位置: 首页 > 综合 > 正文

Android 判断Root的方法

2017年11月02日 ⁄ 综合 ⁄ 共 2419字 ⁄ 字号 评论关闭
分类: Android App 691人阅读 评论(0) 收藏 举报

方法一:(不弹框)

[java] view
plain
copy

  1.     private final static int kSystemRootStateUnknow = -1;  
  2.     private final static int kSystemRootStateDisable = 0;  
  3.     private final static int kSystemRootStateEnable = 1;  
  4.     private static int systemRootState = kSystemRootStateUnknow;  
[java] view
plain
copy

  1. public static boolean isRootSystem() {  
  2.         if (systemRootState == kSystemRootStateEnable) {  
  3.             return true;  
  4.         } else if (systemRootState == kSystemRootStateDisable) {  
  5.             return false;  
  6.         }  
  7.         File f = null;  
  8.         final String kSuSearchPaths[] = { "/system/bin/""/system/xbin/",  
  9.                 "/system/sbin/""/sbin/""/vendor/bin/" };  
  10.         try {  
  11.             for (int i = 0; i < kSuSearchPaths.length; i++) {  
  12.                 f = new File(kSuSearchPaths[i] + "su");  
  13.                 if (f != null && f.exists()) {  
  14.                     systemRootState = kSystemRootStateEnable;  
  15.                     return true;  
  16.                 }  
  17.             }  
  18.         } catch (Exception e) {  
  19.         }  
  20.         systemRootState = kSystemRootStateDisable;  
  21.         return false;  
  22.     }  

 

方法二:(会弹框)

[java] view
plain
copy

  1. public synchronized boolean getRootAhth()    
  2. {    
  3.     Process process = null;    
  4.     DataOutputStream os = null;    
  5.     try    
  6.     {    
  7.         process = Runtime.getRuntime().exec("su");    
  8.         os = new DataOutputStream(process.getOutputStream());    
  9.         os.writeBytes("exit\n");    
  10.         os.flush();    
  11.         int exitValue = process.waitFor();    
  12.         if (exitValue == 0)    
  13.         {    
  14.             return true;    
  15.         } else    
  16.         {    
  17.             return false;    
  18.         }    
  19.     } catch (Exception e)    
  20.     {    
  21.         Log.d("*** DEBUG ***""Unexpected error - Here is what I know: "    
  22.                 + e.getMessage());    
  23.         return false;    
  24.     } finally    
  25.     {    
  26.         try    
  27.         {    
  28.             if (os != null)    
  29.             {    
  30.                 os.close();    
  31.             }    
  32.             process.destroy();    
  33.         } catch (Exception e)    
  34.         {    
  35.             e.printStackTrace();    
  36.         }    
  37.     }    
  38. }    


方法三:(会弹框)

[java] view
plain
copy

  1. //判断机器 Android是否已经root,即是否获取root权限     
  2.   protected static boolean haveRoot()    
  3.   {    
  4.     int i = execRootCmdSilent("echo test"); //通过执行测试命令来检测     
  5.     if (i != -1)  return true;    
  6.     retrun false;    
  7.   }    
  8.   
  9.    

抱歉!评论已关闭.