当前位置: 首页 > 知识库问答 >
问题:

Android设备根植检查

党宇定
2023-03-14

我想检查我的设备是否有根。当我在真正的设备中尝试下面的代码时,它是可以的。但是这行中的非根模拟器中断

if (new File(path).exists())
    return true;
private static boolean isRooted() {
    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;
}

共有1个答案

籍光熙
2023-03-14

您可以通过以下方法检查设备是否扎根:

public static boolean isRootedDevice(Context context) {

    boolean rootedDevice = false;
    String buildTags = android.os.Build.TAGS;
    if (buildTags != null && buildTags.contains("test-keys")) {
        Log.e("Root Detected", "1");
        rootedDevice = true;
    }

    // check if /system/app/Superuser.apk is present
    try {
        File file = new File("/system/app/Superuser.apk");
        if (file.exists()) {
            Log.e("Root Detected", "2");
            rootedDevice = true;
        }
    } catch (Throwable e1) {
        //Ignore
    }

    //check if SU command is executable or not
    try {
        Runtime.getRuntime().exec("su");
        Log.e("Root Detected", "3");
        rootedDevice = true;
    } catch (IOException localIOException) {
        //Ignore
    }

    //check weather busy box application is installed
    String packageName = "stericson.busybox"; //Package for busy box app
    PackageManager pm = context.getPackageManager();
    try {
        Log.e("Root Detected", "4");
        pm.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);
        rootedDevice = true;
    } catch (PackageManager.NameNotFoundException e) {
        //App not installed
    }

    return rootedDevice;
}  

如果设备是根设备,它将返回true,否则false

 类似资料:
  • 确定Android设备是否在程序上扎根? 如何以编程方式查找根设备?

  • 我有一个自定义根Android平板电脑工作在AndroidM版本。我们构建了一个kiosk应用程序,下一步是完全删除导航条,而我们的应用程序正在工作。另外,当管理员关闭我们的应用程序时,导航栏应该会再次出现。 我真的相信这不是不可能完成的任务,因为我们的旧平板电脑(也有根)后面有按钮,它可以隐藏和显示导航条,而不需要重新启动。 任何帮助都很感激。

  • 是否有其他方法启用它?

  • 我想在Android设备上运行一些需要根权限的命令。这些命令应该使用java代码执行,因此应用程序本身应该能够运行这些命令,而不需要将设备连接到个人电脑并使用shell运行这些命令。 我使用了,然后使用了我想要运行的命令(chmod 666)。chmod666需要一个根设备才能正常运行,因此我尝试先使用获得超级用户权限,然后尝试运行它。我将java代码放在onCreate方法中。这是我的密码: 但

  • 我有一个android应用程序,其中使用了第三方jar。Http请求是在应用程序运行时从第三方jar发送到服务器的。我需要捕获从第三方JAR发送的HTTP请求。我想知道是否有一个简单的方法来实现非根设备 启动:我试过下载“ProxyDroid”,但它需要根手机我也试过用“Shark Reader”下载“Shark for Root”,它也需要根设备我试过很多其他应用程序,它们可以捕获完整的请求,但

  • 我知道NFC是什么,它是如何工作的,但我不能理解如何使用这个问题。