How to determine the Security Patch Level of an Android device?

This value is stored in the /system/bin/getprop system file. You can read it in this way:

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();
}

From an adb shell you can execute getprop ro.build.version.security_patch. Hopefully those properties are available to a non-root process on Android.

So in C/C++ I'd try using: system("getprop ro.build.version.security_patch");

Or in Java something like:

import android.os.Bundle;
public static final String SECURITY_PATCH = SystemProperties.get(
            "ro.build.version.security_patch");

In Android SDK 23 (Marshmallow) and later, you can retrieve the security patch date from android.os.Build.VERSION.SECURITY_PATCH. The date is a string value in YYYY-MM-DD form.

In Lollipop, you can use the getprop command to read the value of ro.build.version.security_patch. See this S/O question for how to execute getprop using ProcessBuilder.

Security patches have been released on a monthly basis since October 2015, see Android Security Bulletins for more details.


I do not think that is possible without root access since the Security Patch Level is stored in ro.build.version.security_patch field inside build.prop which is in /system/ path.

If you have root access, you can just read that file and look for the above mentioned field.

EDIT: as @v6ak mentioned, you access the value of the properly without root too.