Device encrypted storage is always available.

In order to support backup/restore on devices without native FBE
support, we always need to make the DE storage area available.  Add
docs clarifying the lifecycle.

Bug: 26279618
Change-Id: I789915f295b10aca6bf80ca58406aea212835ffd
This commit is contained in:
Jeff Sharkey
2016-01-09 15:19:56 -07:00
parent 4175be2f4e
commit 3ea44a52f0
2 changed files with 10 additions and 6 deletions

View File

@@ -1762,10 +1762,6 @@ class ContextImpl extends Context {
@Override
public Context createDeviceEncryptedStorageContext() {
if (!StorageManager.isFileBasedEncryptionEnabled()) {
return null;
}
final int flags = (mFlags & ~Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE)
| Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE;
return new ContextImpl(this, mMainThread, mPackageInfo, mActivityToken,

View File

@@ -4021,13 +4021,16 @@ public abstract class Context {
* Because device-encrypted data is available before user authentication,
* you should carefully consider what data you store using this Context.
* <p>
* If the underlying device does not have the ability to store
* device-encrypted and credential-encrypted data using different keys, then
* both storage areas will become available at the same time. They remain
* two distinct storage areas, and only the window of availability changes.
* <p>
* Each call to this method returns a new instance of a Context object;
* Context objects are not shared, however common state (ClassLoader, other
* Resources for the same configuration) may be so the Context itself can be
* fairly lightweight.
*
* @return new Context or {@code null} if device-encrypted storage is not
* supported or available on this device.
* @see #isDeviceEncryptedStorage()
*/
public abstract Context createDeviceEncryptedStorageContext();
@@ -4041,6 +4044,11 @@ public abstract class Context {
* <em>only after</em> the user has entered their credentials (such as a
* lock pattern or PIN).
* <p>
* If the underlying device does not have the ability to store
* device-encrypted and credential-encrypted data using different keys, then
* both storage areas will become available at the same time. They remain
* two distinct storage areas, and only the window of availability changes.
* <p>
* Each call to this method returns a new instance of a Context object;
* Context objects are not shared, however common state (ClassLoader, other
* Resources for the same configuration) may be so the Context itself can be