boolean hasRoot = false;
String rootApp = "NONE";
try {
java.lang.Process p = Runtime.getRuntime().exec("su");
java.io.DataOutputStream os = new java.io.DataOutputStream(p.getOutputStream());
os.writeBytes("exit\n");
os.flush();
p.waitFor();
if (p.exitValue() == 0) {
hasRoot = true;
rootApp = "SU EXEC";
}
} catch (Exception e) {}
android.content.pm.PackageManager pm = getPackageManager();
String[] rootApps = {
"com.topjohnwu.magisk",
"com.topjohnwu.magisk.core",
"eu.chainfire.supersu",
"com.kingroot.kinguser",
"com.kingouser.com",
"com.thirdparty.superuser",
"me.weishu.kernelsu",
"io.github.huskydg.magisk"
};
for (String app : rootApps) {
try {
pm.getPackageInfo(app, 0);
hasRoot = true;
rootApp = app;
break;
} catch (Exception e) {}
}
String[] suPaths = {"/sbin/su", "/system/bin/su", "/system/xbin/su", "/su/bin/su"};
for (String path : suPaths) {
if (new java.io.File(path).exists()) {
hasRoot = true;
if (rootApp.equals("NONE")) rootApp = "SU FILE";
break;
}
}
android.widget.TextView tv = (android.widget.TextView)findViewById(R.id.textview1);
tv.setText(hasRoot ? "ROOT: " + rootApp : "NO ROOT");