Determine if running on a rooted device

后端 未结 24 2250
無奈伤痛
無奈伤痛 2020-11-22 06:43

My app has a certain piece of functionality that will only work on a device where root is available. Rather than having this feature fail when it is used (and then show an a

24条回答
  •  长发绾君心
    2020-11-22 07:02

    Here is my code based on some answers here:

     /**
       * Checks if the phone is rooted.
       * 
       * @return true if the phone is rooted, false
       * otherwise.
       */
      public static boolean isPhoneRooted() {
    
        // get from build info
        String buildTags = android.os.Build.TAGS;
        if (buildTags != null && buildTags.contains("test-keys")) {
          return true;
        }
    
        // check if /system/app/Superuser.apk is present
        try {
          File file = new File("/system/app/Superuser.apk");
          if (file.exists()) {
            return true;
          }
        } catch (Throwable e1) {
          // ignore
        }
    
        return false;
      }
    

提交回复
热议问题