Java 以编程方式检查I';我植根于安卓系统?

Java 以编程方式检查I';我植根于安卓系统?,java,android,Java,Android,这似乎有效,但我不是积极的,因为我的测试能力有限(仅限于AVD)。我想出了这个算法来检查我是否有根。你认为它会一直有效吗?我不相信 private boolean isRooted() { try { Process process = new ProcessBuilder() .command("/system/bin/su") .redirectErrorStream(false) .start(

这似乎有效,但我不是积极的,因为我的测试能力有限(仅限于AVD)。我想出了这个算法来检查我是否有根。你认为它会一直有效吗?我不相信

private boolean isRooted() {
    try {
        Process process = new ProcessBuilder()
            .command("/system/bin/su")
            .redirectErrorStream(false)
            .start();
    } catch (IOException e) { 
        return false;
    }
    return true;
}

可能有很多手机都有root访问权限,但没有安装su。这不是foolproof@nandeesh我明白你在说什么。我看到了,但我想要更直观的东西。我想可以。从代码中执行
id
shell命令怎么样?。或者您可以尝试写入/system目录。通常只允许root用户这样做。@Michael我不知道
id
shell命令。那就行了。似乎是的。像这篇文章一样,你无法检测到根。但是大多数生根方法都应该由您所指向的对象来检测。如果您使用非测试密钥构建自己的代码,然后使ro.secure=0或service.adb.root和ro.debugable,那么adb shell也将为您提供root访问权限。然后您就可以通过在中运行这个来提供root访问