From 8e27c4ddaeb4414bd0e658553672fa9cc57a41d3 Mon Sep 17 00:00:00 2001 From: Craig Lafayette Date: Thu, 19 Mar 2015 08:36:38 -0400 Subject: [PATCH] Add factory reset protection extras to DPM. This extra will be sent to ManagedProvisioning via an NFC bump and allow factory reset protection challenges to be cleared. Bug: 19792435 Change-Id: I82b0e35ec7af4372341c202c06b643d6395cc65c --- api/current.txt | 1 + api/system-current.txt | 1 + .../android/app/admin/DevicePolicyManager.java | 14 ++++++++++++++ 3 files changed, 16 insertions(+) diff --git a/api/current.txt b/api/current.txt index ce6bbfa989a9a..b0e800a0a0a11 100644 --- a/api/current.txt +++ b/api/current.txt @@ -5702,6 +5702,7 @@ package android.app.admin { field public static final java.lang.String EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED = "android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED"; field public static final java.lang.String EXTRA_PROVISIONING_LOCALE = "android.app.extra.PROVISIONING_LOCALE"; field public static final java.lang.String EXTRA_PROVISIONING_LOCAL_TIME = "android.app.extra.PROVISIONING_LOCAL_TIME"; + field public static final java.lang.String EXTRA_PROVISIONING_RESET_PROTECTION_PARAMETERS = "android.app.extra.PROVISIONING_RESET_PROTECTION_PARAMETERS"; field public static final java.lang.String EXTRA_PROVISIONING_SKIP_ENCRYPTION = "android.app.extra.PROVISIONING_SKIP_ENCRYPTION"; field public static final java.lang.String EXTRA_PROVISIONING_TIME_ZONE = "android.app.extra.PROVISIONING_TIME_ZONE"; field public static final java.lang.String EXTRA_PROVISIONING_WIFI_HIDDEN = "android.app.extra.PROVISIONING_WIFI_HIDDEN"; diff --git a/api/system-current.txt b/api/system-current.txt index 6053603d73da7..79b3e2fa45b9b 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -5806,6 +5806,7 @@ package android.app.admin { field public static final java.lang.String EXTRA_PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED = "android.app.extra.PROVISIONING_LEAVE_ALL_SYSTEM_APPS_ENABLED"; field public static final java.lang.String EXTRA_PROVISIONING_LOCALE = "android.app.extra.PROVISIONING_LOCALE"; field public static final java.lang.String EXTRA_PROVISIONING_LOCAL_TIME = "android.app.extra.PROVISIONING_LOCAL_TIME"; + field public static final java.lang.String EXTRA_PROVISIONING_RESET_PROTECTION_PARAMETERS = "android.app.extra.PROVISIONING_RESET_PROTECTION_PARAMETERS"; field public static final java.lang.String EXTRA_PROVISIONING_SKIP_ENCRYPTION = "android.app.extra.PROVISIONING_SKIP_ENCRYPTION"; field public static final java.lang.String EXTRA_PROVISIONING_TIME_ZONE = "android.app.extra.PROVISIONING_TIME_ZONE"; field public static final java.lang.String EXTRA_PROVISIONING_WIFI_HIDDEN = "android.app.extra.PROVISIONING_WIFI_HIDDEN"; diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index cbb0f51b68a3a..51530551deedf 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -502,6 +502,20 @@ public class DevicePolicyManager { */ public static final String EXTRA_PROVISIONING_BT_USE_PROXY = "android.app.extra.PROVISIONING_BT_USE_PROXY"; + + /** + * A {@link android.os.Parcelable} extra of type {@link android.os.PersistableBundle} that + * holds data needed by the system to wipe factory reset protection. The data needed to wipe + * the device depend on the installed factory reset protection implementation. For example, + * if an account is needed to unlock a device, this extra may contain data used to + * authenticate that account. + * + *

Use in an NFC record with {@link #MIME_TYPE_PROVISIONING_NFC_V2} that starts device owner + * provisioning via an NFC bump. + */ + public static final String EXTRA_PROVISIONING_RESET_PROTECTION_PARAMETERS + = "android.app.extra.PROVISIONING_RESET_PROTECTION_PARAMETERS"; + /** * This MIME type is used for starting the Device Owner provisioning that does not require * provisioning features introduced in Android API level