8

以下方法是我们可以以编程方式检测 android 设备是否已植根的方法之一:

public boolean checkRootMethod1(){
    String buildTags = android.os.Build.TAGS;

    if (buildTags != null && buildTags.contains("test-keys")) {
        return true;
    }
    return false;
}

有人可以解释这实际上在做什么吗?什么是“test-keys”构建标签,它与 root 有什么关系?我无法从谷歌找到任何相关信息。

4

2 回答 2

9

Release-Keys 和 Test-Keys 与内核在编译时的签名方式有关。Release-Keys 表示它是使用来自官方开发人员的官方密钥签名的。测试密钥意味着它是使用第三方开发人员生成的自定义密钥进行签名的。从安全的角度来看,Release-Keys 通常意味着内核更安全,但并非总是如此。

于 2014-03-25T17:04:28.927 回答
2
String buildTags = android.os.Build.TAGS;

此代码用于build.prop定位到/system/build.prop. 正如你所看到的,你得到了android.os.Build.TAGS这意味着你得到了ro.build.tags内在的价值build.prop。这是build.java 的代码

对于您的第二个问题,我无法确保它会起作用,因为我的ro.build.tags字符串release-keys在我的根设备中。

于 2013-09-15T04:10:01.850 回答