Skip to content

Instantly share code, notes, and snippets.

@derohimat
Last active April 27, 2017 15:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derohimat/0f5ed0ba8834c69719a8eceeb6124b3b to your computer and use it in GitHub Desktop.
Save derohimat/0f5ed0ba8834c69719a8eceeb6124b3b to your computer and use it in GitHub Desktop.
Root Checker Android
public static boolean isEmulator() {
return Build.FINGERPRINT.startsWith("generic")
|| Build.FINGERPRINT.startsWith("unknown")
|| Build.MODEL.contains("google_sdk")
|| Build.MODEL.contains("Emulator")
|| Build.MODEL.contains("Android SDK built for x86")
|| Build.MANUFACTURER.contains("Genymotion")
|| (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
|| "google_sdk".equals(Build.PRODUCT);
}
public static boolean isRooted(Context context) {
boolean isEmulator = !isRealDevice(context);
String buildTags = Build.TAGS;
if (!isEmulator && buildTags != null && buildTags.contains("test-keys")) {
return true;
} else {
File file = new File("/system/app/Superuser.apk");
if (file.exists()) {
return true;
} else {
file = new File("/system/xbin/su");
return !isEmulator && file.exists();
}
}
}
public static boolean isRealDevice(Context context) {
String androidId = android.provider.Settings.Secure.getString(context.getContentResolver(),
android.provider.Settings.Secure.ANDROID_ID);
SensorManager manager = (SensorManager) context.getSystemService(SENSOR_SERVICE);
return (!isEmulator()
&& (androidId != null
|| !androidId.equals("")
|| !androidId.equals("null")
|| !androidId.equals("NULL"))
&& (Build.SERIAL != null
|| !Build.SERIAL.equals("")
|| !Build.SERIAL.equals(" ")
|| !Build.SERIAL.equals("null")
|| !Build.SERIAL.equals("NULL")
|| !Build.SERIAL.equals("unknown"))
&& !manager.getSensorList(Sensor.TYPE_ALL).isEmpty());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment