android - 如何查看安卓手机是否root?

标签 android root

<分区>

我想以编程方式在我的应用程序中查找 android 手机是否已 Root 。我发现了很多链接,例如:Determine if running on a rooted device Effective way to programatically check if I'm rooted on Android?讨论同一个话题。但是,正如这些链接中所提到的,没有一种明确的方法可以找出答案。这些帖子已经很老了,我想知道在最近的版本中是否有更好的方法来实现它?

提前致谢!

最佳答案

我已经从 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;
}

关于android - 如何查看安卓手机是否root?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19288463/

相关文章:

android - 在Android 4.2上调整Mediacodec解码器的缓冲区大小

android - 模拟和发送触摸事件

Android kitkat "ok google"功能,启用任何应用程序的通知可访问性后禁用

c - 在缓冲区溢出的情况下利用 C 中的 strcpy(),

java - 如何获取 Android 应用程序的提升权限

python - 如何在没有 root 权限的情况下安装 python 3.x 和 2.y

android - Android 应用程序中的互联网权限问题?

Android - 关闭 DialogFragment 时刷新 "parent" fragment

linux - 找不到以 root 身份运行的库

macos - 为什么我需要 root 权限才能运行 GDB?