以下方法是我们可以以编程方式检测Android设备是否已植根的方法之一:
public boolean checkRootMethod1(){
String buildTags = android.os.Build.TAGS;
if (buildTags != null && buildTags.contains("test-keys")) {
return true;
}
return false;
}
有人可以解释一下这实际上在做什么吗?什么是“test-keys”构建标记,它与root有什么关系?我无法从谷歌找到任何相关信息。
答案 0 :(得分:5)
Release-Keys和Test-Keys与内核在编译时的签名方式有关。 Release-Keys意味着它是使用官方开发者的官方密钥签署的。 Test-Keys表示它是使用第三方开发人员生成的自定义密钥签名的。从安全角度来看,Release-Keys通常意味着内核更安全,但情况并非总是如此。
答案 1 :(得分:1)
String buildTags = android.os.Build.TAGS;
此代码用于获取位于build.prop
的{{1}}。正如您所看到的那样,您获得了/system/build.prop
,这意味着您在android.os.Build.TAGS
内获得了ro.build.tags
值。这是code of build.java
对于您的第二个问题,我无法确定它是否有效,因为我的build.prop
字符串在我的root设备中为ro.build.tags
。