如何确定 Android 设备的安全补丁级别?
How to determine the Security Patch Level of an Android device?
如何使用 API 或其他机制确定 Android 设备的安全补丁级别?我正在寻找可以通过单击设备上的 Settings -> About
菜单手动找到的相同安全补丁信息。
Google每月发布安全补丁,例如2016-12-01.
我认为没有 root 访问权限是不可能的,因为安全补丁级别存储在 /system/
路径中 build.prop 内的 ro.build.version.security_patch
字段中。
如果您有 root 访问权限,您可以只读取该文件并查找上述字段。
编辑:如@v6ak 所述,您也可以在没有 root 的情况下访问 properly 的值。
在 Android SDK 23 (Marshmallow) 及更高版本中,您可以从 android.os.Build.VERSION.SECURITY_PATCH 检索安全补丁日期。日期是 YYYY-MM-DD 格式的字符串值。
在Lollipop中,可以使用getprop命令读取ro.build.version.security_patch的值。请参阅此 了解如何使用 ProcessBuilder 执行 getprop。
自 2015 年 10 月以来每月发布安全补丁,请参阅Android Security Bulletins了解更多详情。
您可以从 adb shell 执行 getprop ro.build.version.security_patch。
希望这些属性可用于 Android.
上的非根进程
所以在 C/C++ 中我会尝试使用:
系统("getprop ro.build.version.security_patch");
或者在 Java 中是这样的:
import android.os.Bundle;
public static final String SECURITY_PATCH = SystemProperties.get(
"ro.build.version.security_patch");
这个值存储在/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();
}
你也可以使用下面的adb命令
adb shell getprop | egrep
如何使用 API 或其他机制确定 Android 设备的安全补丁级别?我正在寻找可以通过单击设备上的 Settings -> About
菜单手动找到的相同安全补丁信息。
Google每月发布安全补丁,例如2016-12-01.
我认为没有 root 访问权限是不可能的,因为安全补丁级别存储在 /system/
路径中 build.prop 内的 ro.build.version.security_patch
字段中。
如果您有 root 访问权限,您可以只读取该文件并查找上述字段。
编辑:如@v6ak 所述,您也可以在没有 root 的情况下访问 properly 的值。
在 Android SDK 23 (Marshmallow) 及更高版本中,您可以从 android.os.Build.VERSION.SECURITY_PATCH 检索安全补丁日期。日期是 YYYY-MM-DD 格式的字符串值。
在Lollipop中,可以使用getprop命令读取ro.build.version.security_patch的值。请参阅此
自 2015 年 10 月以来每月发布安全补丁,请参阅Android Security Bulletins了解更多详情。
您可以从 adb shell 执行 getprop ro.build.version.security_patch。 希望这些属性可用于 Android.
上的非根进程所以在 C/C++ 中我会尝试使用: 系统("getprop ro.build.version.security_patch");
或者在 Java 中是这样的:
import android.os.Bundle;
public static final String SECURITY_PATCH = SystemProperties.get(
"ro.build.version.security_patch");
这个值存储在/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();
}
你也可以使用下面的adb命令
adb shell getprop | egrep