通过API或其他机制如何确定Android设备的安全补丁级别?我要查找手动单击设备上的 "设置->关于" 菜单中可以找到的相同安全补丁信息。
谷歌每个月发布安全补丁,例如 2016-12-01。
在Android SDK 23(棉花糖)及更高版本中,你可以从android.os.Build.VERSION.SECURITY_PATCH检索安全补丁日期。该日期是一个YYYY-MM-DD形式的字符串值。
在棒棒糖中,您可以使用getprop命令读取ro.build.version.security_patch的值。请参见此S/O问题以了解如何使用ProcessBuilder执行getprop。
自2015年10月以来,安全补丁每月发布一次,请查看Android安全公告获取更多详细信息。
这个值存储在/system/bin/getprop
系统文件中。您可以通过以下方式读取它:
最初的回答:
try {
Process process = new ProcessBuilder()
.command("/system/bin/getprop")
.redirectErrorStream(true)
.start();
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
str += line + "\n";
if (str.contains("security_patch")) {
String[] splitted = line.split(":");
if (splitted.length == 2) {
return splitted[1];
}
break;
}
}
br.close();
process.destroy();
} catch (IOException e) {
e.printStackTrace();
}
import android.os.Bundle;
public static final String SECURITY_PATCH = SystemProperties.get(
"ro.build.version.security_patch");
你也可以使用以下的adb命令
adb shell getprop | egrep
android.os.Build.VERSION.SECURITY_PATCH
的设备,甚至尝试确定其安全补丁级别都没有意义。所有不支持该API的设备都应被视为过时/不安全。 - Mikko Rantalainen