8

如果 android 手机已植根,我想以编程方式在我的应用程序中找到。我发现了许多链接,例如:确定是否在有根设备上运行 以编程方式检查我是否在 Android 上的有效方法?讨论同一个话题。但是,正如这些链接中提到的那样,没有一种明确的方法可以找出答案。这些帖子已经很老了,我想知道在最近的版本中是否有更好的方法来实现它?

提前致谢!

4

2 回答 2

20

我已经从RootTools包装了这段代码(在没有任何其他外部 jar/lib 的情况下可以正常工作)

private static boolean isRooted() {
    return findBinary("su");
}



public static boolean findBinary(String binaryName) {
    boolean found = false;
    if (!found) {
        String[] places = {"/sbin/", "/system/bin/", "/system/xbin/", "/data/local/xbin/",
                "/data/local/bin/", "/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/"};
        for (String where : places) {
            if ( new File( where + binaryName ).exists() ) {
                found = true;
                break;
            }
        }
    }
    return found;
}
于 2013-10-10T07:24:33.460 回答
5

您可以使用 roottools 库。他们提供了一种检查 root 访问权限的方法。 https://code.google.com/p/roottools/

于 2013-10-10T07:16:27.303 回答