Загрузка данных


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");