[英]How to determine the Security Patch Level of an Android device?
如何使用 API 或其他機制確定 Android 設備的安全補丁級別? 我正在尋找可以通過單擊設備上的Settings -> About
菜單手動找到的相同安全補丁信息。
Google 每個月都會發布安全補丁,例如2016-12-01 。
在 Android SDK 23 (Marshmallow) 及更高版本中,您可以從android.os.Build.VERSION.SECURITY_PATCH檢索安全補丁日期。 日期是 YYYY-MM-DD 形式的字符串值。
在 Lollipop 中,可以使用getprop命令讀取 ro.build.version.security_patch 的值。 請參閱此S/O 問題以了解如何使用 ProcessBuilder 執行getprop 。
自 2015 年 10 月以來,安全補丁每月發布一次,有關更多詳細信息,請參閱Android 安全公告。
我認為沒有 root 訪問是不可能的,因為安全補丁級別存儲在 build.prop 中的ro.build.version.security_patch
字段中, ro.build.version.security_patch
字段位於/system/
路徑中。
如果您具有 root 訪問權限,則只需讀取該文件並查找上述字段即可。
編輯:正如@v6ak 提到的,您也可以在沒有 root 的情況下正確訪問值。
該值存儲在/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 shell 執行 getprop ro.build.version.security_patch。 希望這些屬性可用於 Android 上的非 root 進程。
所以在 C/C++ 中我會嘗試使用: system("getprop ro.build.version.security_patch");
或者在 Java 中類似:
import android.os.Bundle;
public static final String SECURITY_PATCH = SystemProperties.get(
"ro.build.version.security_patch");
您還可以使用以下 adb 命令
adb shell getprop | egrep
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.