Android判断手机是否Root

本文非原创,方法来自Stack Overflow的大神。

原文链接

代码如下

public class RootUtil {

 public static boolean isDeviceRooted() { 

 return checkRootMethod1() || checkRootMethod2() || checkRootMethod3(); 

 } 

 private static boolean checkRootMethod1() { 

 String buildTags = android.os.Build.TAGS; 

 return buildTags != null && buildTags.contains("test-keys"); 

 } 

 private static boolean checkRootMethod2() {

 String[] paths = { 

"/system/app/Superuser.apk", "/sbin/su", "/system/bin/su", "/system/xbin/su", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su", "/system/bin/failsafe/su", "/data/local/su", "/su/bin/su"

}; 

 for (String path : paths) { 

 if (new File(path).exists()) 

return true;

 } 

 return false; 

 } 

 private static boolean checkRootMethod3() { 

 Process process = null; try {

 process = Runtime.getRuntime().exec(new String[] {

 "/system/xbin/which", "su" 

}); 

 BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));

 if (in.readLine() != null) return true;

 return false; 

 } 

catch (Throwable t) {

 return false; 

 } finally { 

 if (process != null) process.destroy();

 } 

 }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天在青旅憋了一个早上,来准备面试的问题,反复演练了几遍,把自己该说的都说了。 吃完午饭后,我回到青旅换衣服准备去...
    端银阅读 195评论 0 0
  • 在这个时间就是金钱的时代,如何快速高效的获取信息变得尤为重要。无论是新项目筹划,还是年度工作汇报,无论是竞标方案,...
    运营狮训练营阅读 1,567评论 1 12
  • 听林湖摆了游船,和外面的公园里大差不多。有学生也有游人乘坐,自己路过的时候常在湖边驻足观望,却是一次也没上过船去。...
    赵乐迪阅读 582评论 2 2
  • 海豚妈妈 #原创分享# 《所有的关系都是自己的关系》 我们的生命中充满了各种各样的关系,亲子关系,夫妻关系,...
    彼岸之岸阅读 781评论 0 50