Android 判断Root的方法
16lz
2021-01-23
方法一:(不弹框)
方法二:(会弹框)
方法三:(会弹框)
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; }
更多相关文章
- Android简单实现启动画面的方法
- android 获取锁屏,解锁的方法
- android中的activity里获得context方法
- android paint设置字体 中文字体 楷体 和自动换行方法(zhuan)
- Android发送短信,并监听短信发送后是否发送成功的实现方法
- 找不到R.java 解决方法
- Android Toast的几种简单调用方法
- android java调用命令行给文件赋权限