加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android 判断Root的方法

发布时间:2020-12-14 23:52:03 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 ??? private final static int kSystemRootStateUnknow = -1;??? private final static int kSystemRootStateDisable = 0;??? private final static i

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

??? 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("exitn");  
        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;  
  }  

?

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读