diff --git a/core/api/test-current.txt b/core/api/test-current.txt index f0763950ba378..ae5a5ee88d98f 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -1711,6 +1711,7 @@ package android.os { public class Build { method public static boolean is64BitAbi(String); method public static boolean isDebuggable(); + method public static boolean isSecure(); field public static final boolean IS_EMULATOR; } diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index 249f48608d404..44a1fa51e9bfb 100755 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -1446,6 +1446,28 @@ public class Build { return IS_DEBUGGABLE; } + + /** + * Returns true if the device is running a secure build, such as "user" or "userdebug". + * + * Secure builds drop adbd privileges by default, though debuggable builds still allow users + * to gain root access via local shell. See should_drop_privileges() in adb for details. + * @hide + */ + private static final boolean IS_SECURE = + SystemProperties.getBoolean("ro.secure", true); + /** + * Returns true if the device is running a secure build, such as "user" or "userdebug". + * + * Secure builds drop adbd privileges by default, though debuggable builds still allow users + * to gain root access via local shell. See should_drop_privileges() in adb for details. + * @hide + */ + @TestApi + public static boolean isSecure() { + return IS_SECURE; + } + /** {@hide} */ public static final boolean IS_ENG = "eng".equals(TYPE); /** {@hide} */