Loading api/current.txt +8 −12 Original line number Original line Diff line number Diff line Loading @@ -7780,8 +7780,7 @@ package android.content { method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createCredentialEncryptedContext(android.content.Context); method public abstract android.content.Context createDeviceEncryptedStorageContext(); method public abstract android.content.Context createDeviceEncryptedContext(android.content.Context); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract java.lang.String[] databaseList(); method public abstract java.lang.String[] databaseList(); Loading Loading @@ -7837,8 +7836,7 @@ package android.content { method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract boolean isCredentialEncrypted(); method public abstract boolean isDeviceEncryptedStorage(); method public abstract boolean isDeviceEncrypted(); method public boolean isRestricted(); method public boolean isRestricted(); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; Loading Loading @@ -7970,8 +7968,7 @@ package android.content { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public deprecated void clearWallpaper() throws java.io.IOException; method public deprecated void clearWallpaper() throws java.io.IOException; method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -8021,8 +8018,7 @@ package android.content { method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isDeviceEncryptedStorage(); method public boolean isDeviceEncrypted(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); Loading Loading @@ -28096,7 +28092,9 @@ package android.os { method public boolean isSystemUser(); method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunningAndLocked(); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated boolean setRestrictionsChallenge(java.lang.String); Loading Loading @@ -36250,8 +36248,7 @@ package android.test.mock { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public void clearWallpaper(); method public void clearWallpaper(); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -36300,8 +36297,7 @@ package android.test.mock { method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumWidth(); method public int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isDeviceEncryptedStorage(); method public boolean isDeviceEncrypted(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); api/system-current.txt +14 −12 Original line number Original line Diff line number Diff line Loading @@ -8024,8 +8024,8 @@ package android.content { method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createCredentialEncryptedContext(android.content.Context); method public abstract android.content.Context createCredentialEncryptedStorageContext(); method public abstract android.content.Context createDeviceEncryptedContext(android.content.Context); method public abstract android.content.Context createDeviceEncryptedStorageContext(); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract java.lang.String[] databaseList(); method public abstract java.lang.String[] databaseList(); Loading Loading @@ -8081,8 +8081,8 @@ package android.content { method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract boolean isCredentialEncrypted(); method public abstract boolean isCredentialEncryptedStorage(); method public abstract boolean isDeviceEncrypted(); method public abstract boolean isDeviceEncryptedStorage(); method public boolean isRestricted(); method public boolean isRestricted(); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; Loading Loading @@ -8222,8 +8222,8 @@ package android.content { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public deprecated void clearWallpaper() throws java.io.IOException; method public deprecated void clearWallpaper() throws java.io.IOException; method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createCredentialEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -8273,8 +8273,8 @@ package android.content { method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isCredentialEncryptedStorage(); method public boolean isDeviceEncrypted(); method public boolean isDeviceEncryptedStorage(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); Loading Loading @@ -30086,7 +30086,9 @@ package android.os { method public boolean isSystemUser(); method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunningAndLocked(); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated boolean setRestrictionsChallenge(java.lang.String); Loading Loading @@ -38573,8 +38575,8 @@ package android.test.mock { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public void clearWallpaper(); method public void clearWallpaper(); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createCredentialEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -38623,8 +38625,8 @@ package android.test.mock { method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumWidth(); method public int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isCredentialEncryptedStorage(); method public boolean isDeviceEncrypted(); method public boolean isDeviceEncryptedStorage(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); api/test-current.txt +8 −12 Original line number Original line Diff line number Diff line Loading @@ -7780,8 +7780,7 @@ package android.content { method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createCredentialEncryptedContext(android.content.Context); method public abstract android.content.Context createDeviceEncryptedStorageContext(); method public abstract android.content.Context createDeviceEncryptedContext(android.content.Context); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract java.lang.String[] databaseList(); method public abstract java.lang.String[] databaseList(); Loading Loading @@ -7837,8 +7836,7 @@ package android.content { method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract boolean isCredentialEncrypted(); method public abstract boolean isDeviceEncryptedStorage(); method public abstract boolean isDeviceEncrypted(); method public boolean isRestricted(); method public boolean isRestricted(); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; Loading Loading @@ -7970,8 +7968,7 @@ package android.content { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public deprecated void clearWallpaper() throws java.io.IOException; method public deprecated void clearWallpaper() throws java.io.IOException; method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -8021,8 +8018,7 @@ package android.content { method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isDeviceEncryptedStorage(); method public boolean isDeviceEncrypted(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); Loading Loading @@ -28096,7 +28092,9 @@ package android.os { method public boolean isSystemUser(); method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunningAndLocked(); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated boolean setRestrictionsChallenge(java.lang.String); Loading Loading @@ -36252,8 +36250,7 @@ package android.test.mock { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public void clearWallpaper(); method public void clearWallpaper(); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -36302,8 +36299,7 @@ package android.test.mock { method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumWidth(); method public int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isDeviceEncryptedStorage(); method public boolean isDeviceEncrypted(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); core/java/android/app/ContextImpl.java +22 −20 Original line number Original line Diff line number Diff line Loading @@ -61,6 +61,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserHandle; import android.os.storage.IMountService; import android.os.storage.IMountService; import android.os.storage.StorageManager; import android.util.AndroidRuntimeException; import android.util.AndroidRuntimeException; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.Log; import android.util.Log; Loading Loading @@ -1744,17 +1745,21 @@ class ContextImpl extends Context { } } @Override @Override public Context createDeviceEncryptedContext(Context context) { public Context createDeviceEncryptedStorageContext() { final int flags = (mFlags & ~Context.CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED) if (!StorageManager.isFileBasedEncryptionEnabled()) { | Context.CONTEXT_STORAGE_DEVICE_ENCRYPTED; return null; } final int flags = (mFlags & ~Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE) | Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE; return new ContextImpl(this, mMainThread, mPackageInfo, mActivityToken, return new ContextImpl(this, mMainThread, mPackageInfo, mActivityToken, mUser, flags, mDisplay, null, Display.INVALID_DISPLAY); mUser, flags, mDisplay, null, Display.INVALID_DISPLAY); } } @Override @Override public Context createCredentialEncryptedContext(Context context) { public Context createCredentialEncryptedStorageContext() { final int flags = (mFlags & ~Context.CONTEXT_STORAGE_DEVICE_ENCRYPTED) final int flags = (mFlags & ~Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE) | Context.CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED; | Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE; return new ContextImpl(this, mMainThread, mPackageInfo, mActivityToken, return new ContextImpl(this, mMainThread, mPackageInfo, mActivityToken, mUser, flags, mDisplay, null, Display.INVALID_DISPLAY); mUser, flags, mDisplay, null, Display.INVALID_DISPLAY); } } Loading @@ -1765,13 +1770,13 @@ class ContextImpl extends Context { } } @Override @Override public boolean isDeviceEncrypted() { public boolean isDeviceEncryptedStorage() { return (mFlags & Context.CONTEXT_STORAGE_DEVICE_ENCRYPTED) != 0; return (mFlags & Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE) != 0; } } @Override @Override public boolean isCredentialEncrypted() { public boolean isCredentialEncryptedStorage() { return (mFlags & Context.CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED) != 0; return (mFlags & Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE) != 0; } } @Override @Override Loading @@ -1781,13 +1786,12 @@ class ContextImpl extends Context { private File getDataDirFile() { private File getDataDirFile() { if (mPackageInfo != null) { if (mPackageInfo != null) { if (isCredentialEncrypted()) { if (isCredentialEncryptedStorage()) { return mPackageInfo.getCredentialEncryptedDataDirFile(); return mPackageInfo.getCredentialEncryptedDataDirFile(); } else if (isDeviceEncrypted()) { } else if (isDeviceEncryptedStorage()) { return mPackageInfo.getDeviceEncryptedDataDirFile(); return mPackageInfo.getDeviceEncryptedDataDirFile(); } else { } else { throw new RuntimeException( return mPackageInfo.getDataDirFile(); "Storage location is neither credential nor device encrypted"); } } } } throw new RuntimeException("Not supported in system context"); throw new RuntimeException("Not supported in system context"); Loading Loading @@ -1840,15 +1844,13 @@ class ContextImpl extends Context { // If creator didn't specify which storage to use, use the default // If creator didn't specify which storage to use, use the default // location for application. // location for application. if ((flags & Context.CONTEXT_STORAGE_MASK) == 0) { if ((flags & (Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE | Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE)) == 0) { final File dataDir = packageInfo.getDataDirFile(); final File dataDir = packageInfo.getDataDirFile(); if (Objects.equals(dataDir, packageInfo.getCredentialEncryptedDataDirFile())) { if (Objects.equals(dataDir, packageInfo.getCredentialEncryptedDataDirFile())) { flags |= Context.CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED; flags |= Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE; } else if (Objects.equals(dataDir, packageInfo.getDeviceEncryptedDataDirFile())) { } else if (Objects.equals(dataDir, packageInfo.getDeviceEncryptedDataDirFile())) { flags |= Context.CONTEXT_STORAGE_DEVICE_ENCRYPTED; flags |= Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE; } else { throw new IllegalStateException("Storage location " + dataDir + " doesn't match either credential or device encrypted storage"); } } } } Loading core/java/android/content/Context.java +23 −19 Original line number Original line Diff line number Diff line Loading @@ -53,8 +53,8 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.UserManager; import android.provider.MediaStore; import android.provider.MediaStore; import android.util.AttributeSet; import android.util.AttributeSet; import android.view.DisplayAdjustments; import android.view.Display; import android.view.Display; import android.view.DisplayAdjustments; import android.view.ViewDebug; import android.view.ViewDebug; import android.view.WindowManager; import android.view.WindowManager; Loading Loading @@ -3870,7 +3870,7 @@ public abstract class Context { * * * @hide * @hide */ */ public static final int CONTEXT_STORAGE_DEVICE_ENCRYPTED = 0x00000008; public static final int CONTEXT_DEVICE_ENCRYPTED_STORAGE = 0x00000008; /** /** * Flag for use with {@link #createPackageContext}: point all file APIs at * Flag for use with {@link #createPackageContext}: point all file APIs at Loading @@ -3878,11 +3878,7 @@ public abstract class Context { * * * @hide * @hide */ */ public static final int CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED = 0x00000010; public static final int CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE = 0x00000010; /** {@hide} */ public static final int CONTEXT_STORAGE_MASK = CONTEXT_STORAGE_DEVICE_ENCRYPTED | CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED; /** /** * @hide Used to indicate we should tell the activity manager about the process * @hide Used to indicate we should tell the activity manager about the process Loading Loading @@ -3987,19 +3983,23 @@ public abstract class Context { * Return a new Context object for the current Context but whose storage * Return a new Context object for the current Context but whose storage * APIs are backed by device-encrypted storage. * APIs are backed by device-encrypted storage. * <p> * <p> * Data stored in device-encrypted storage is typically encrypted with a * Data stored in device-encrypted storage is typically encrypted with a key * key tied to the physical device, and they can be accessed whenever the * tied to the physical device, and it can be accessed when the device has * device has booted successfully, both <em>before and after</em> the user * booted successfully, both <em>before and after</em> the user has * has entered their credentials (such as a lock pattern or PIN). * authenticated with their credentials (such as a lock pattern or PIN). * Because device-encrypted data is available before user authentication, * you should carefully consider what data you store using this Context. * <p> * <p> * Each call to this method returns a new instance of a Context object; * Each call to this method returns a new instance of a Context object; * Context objects are not shared, however common state (ClassLoader, other * Context objects are not shared, however common state (ClassLoader, other * Resources for the same configuration) may be so the Context itself can be * Resources for the same configuration) may be so the Context itself can be * fairly lightweight. * fairly lightweight. * * * @see #isDeviceEncrypted() * @return new Context or {@code null} if device-encrypted storage is not * supported or available on this device. * @see #isDeviceEncryptedStorage() */ */ public abstract Context createDeviceEncryptedContext(Context context); public abstract Context createDeviceEncryptedStorageContext(); /** /** * Return a new Context object for the current Context but whose storage * Return a new Context object for the current Context but whose storage Loading @@ -4015,9 +4015,11 @@ public abstract class Context { * Resources for the same configuration) may be so the Context itself can be * Resources for the same configuration) may be so the Context itself can be * fairly lightweight. * fairly lightweight. * * * @see #isCredentialEncrypted() * @see #isCredentialEncryptedStorage() * @hide */ */ public abstract Context createCredentialEncryptedContext(Context context); @SystemApi public abstract Context createCredentialEncryptedStorageContext(); /** /** * Gets the display adjustments holder for this context. This information * Gets the display adjustments holder for this context. This information Loading Loading @@ -4045,15 +4047,17 @@ public abstract class Context { * Indicates if the storage APIs of this Context are backed by * Indicates if the storage APIs of this Context are backed by * device-encrypted storage. * device-encrypted storage. * * * @see #createDeviceEncryptedContext(Context) * @see #createDeviceEncryptedStorageContext() */ */ public abstract boolean isDeviceEncrypted(); public abstract boolean isDeviceEncryptedStorage(); /** /** * Indicates if the storage APIs of this Context are backed by * Indicates if the storage APIs of this Context are backed by * credential-encrypted storage. * credential-encrypted storage. * * * @see #createCredentialEncryptedContext(Context) * @see #createCredentialEncryptedStorageContext() * @hide */ */ public abstract boolean isCredentialEncrypted(); @SystemApi public abstract boolean isCredentialEncryptedStorage(); } } Loading
api/current.txt +8 −12 Original line number Original line Diff line number Diff line Loading @@ -7780,8 +7780,7 @@ package android.content { method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createCredentialEncryptedContext(android.content.Context); method public abstract android.content.Context createDeviceEncryptedStorageContext(); method public abstract android.content.Context createDeviceEncryptedContext(android.content.Context); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract java.lang.String[] databaseList(); method public abstract java.lang.String[] databaseList(); Loading Loading @@ -7837,8 +7836,7 @@ package android.content { method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract boolean isCredentialEncrypted(); method public abstract boolean isDeviceEncryptedStorage(); method public abstract boolean isDeviceEncrypted(); method public boolean isRestricted(); method public boolean isRestricted(); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; Loading Loading @@ -7970,8 +7968,7 @@ package android.content { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public deprecated void clearWallpaper() throws java.io.IOException; method public deprecated void clearWallpaper() throws java.io.IOException; method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -8021,8 +8018,7 @@ package android.content { method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isDeviceEncryptedStorage(); method public boolean isDeviceEncrypted(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); Loading Loading @@ -28096,7 +28092,9 @@ package android.os { method public boolean isSystemUser(); method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunningAndLocked(); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated boolean setRestrictionsChallenge(java.lang.String); Loading Loading @@ -36250,8 +36248,7 @@ package android.test.mock { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public void clearWallpaper(); method public void clearWallpaper(); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -36300,8 +36297,7 @@ package android.test.mock { method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumWidth(); method public int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isDeviceEncryptedStorage(); method public boolean isDeviceEncrypted(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
api/system-current.txt +14 −12 Original line number Original line Diff line number Diff line Loading @@ -8024,8 +8024,8 @@ package android.content { method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createCredentialEncryptedContext(android.content.Context); method public abstract android.content.Context createCredentialEncryptedStorageContext(); method public abstract android.content.Context createDeviceEncryptedContext(android.content.Context); method public abstract android.content.Context createDeviceEncryptedStorageContext(); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract java.lang.String[] databaseList(); method public abstract java.lang.String[] databaseList(); Loading Loading @@ -8081,8 +8081,8 @@ package android.content { method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract boolean isCredentialEncrypted(); method public abstract boolean isCredentialEncryptedStorage(); method public abstract boolean isDeviceEncrypted(); method public abstract boolean isDeviceEncryptedStorage(); method public boolean isRestricted(); method public boolean isRestricted(); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; Loading Loading @@ -8222,8 +8222,8 @@ package android.content { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public deprecated void clearWallpaper() throws java.io.IOException; method public deprecated void clearWallpaper() throws java.io.IOException; method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createCredentialEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -8273,8 +8273,8 @@ package android.content { method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isCredentialEncryptedStorage(); method public boolean isDeviceEncrypted(); method public boolean isDeviceEncryptedStorage(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); Loading Loading @@ -30086,7 +30086,9 @@ package android.os { method public boolean isSystemUser(); method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunningAndLocked(); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated boolean setRestrictionsChallenge(java.lang.String); Loading Loading @@ -38573,8 +38575,8 @@ package android.test.mock { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public void clearWallpaper(); method public void clearWallpaper(); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createCredentialEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -38623,8 +38625,8 @@ package android.test.mock { method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumWidth(); method public int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isCredentialEncryptedStorage(); method public boolean isDeviceEncrypted(); method public boolean isDeviceEncryptedStorage(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
api/test-current.txt +8 −12 Original line number Original line Diff line number Diff line Loading @@ -7780,8 +7780,7 @@ package android.content { method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract deprecated void clearWallpaper() throws java.io.IOException; method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createConfigurationContext(android.content.res.Configuration); method public abstract android.content.Context createCredentialEncryptedContext(android.content.Context); method public abstract android.content.Context createDeviceEncryptedStorageContext(); method public abstract android.content.Context createDeviceEncryptedContext(android.content.Context); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createDisplayContext(android.view.Display); method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public abstract java.lang.String[] databaseList(); method public abstract java.lang.String[] databaseList(); Loading Loading @@ -7837,8 +7836,7 @@ package android.content { method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumHeight(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract deprecated int getWallpaperDesiredMinimumWidth(); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract void grantUriPermission(java.lang.String, android.net.Uri, int); method public abstract boolean isCredentialEncrypted(); method public abstract boolean isDeviceEncryptedStorage(); method public abstract boolean isDeviceEncrypted(); method public boolean isRestricted(); method public boolean isRestricted(); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int[]); method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; method public final android.content.res.TypedArray obtainStyledAttributes(int, int[]) throws android.content.res.Resources.NotFoundException; Loading Loading @@ -7970,8 +7968,7 @@ package android.content { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public deprecated void clearWallpaper() throws java.io.IOException; method public deprecated void clearWallpaper() throws java.io.IOException; method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -8021,8 +8018,7 @@ package android.content { method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumHeight(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public deprecated int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isDeviceEncryptedStorage(); method public boolean isDeviceEncrypted(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); Loading Loading @@ -28096,7 +28092,9 @@ package android.os { method public boolean isSystemUser(); method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunning(android.os.UserHandle); method public boolean isUserRunningAndLocked(); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndLocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated boolean setRestrictionsChallenge(java.lang.String); Loading Loading @@ -36252,8 +36250,7 @@ package android.test.mock { method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public int checkUriPermission(android.net.Uri, java.lang.String, java.lang.String, int, int, int); method public void clearWallpaper(); method public void clearWallpaper(); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createConfigurationContext(android.content.res.Configuration); method public android.content.Context createCredentialEncryptedContext(android.content.Context); method public android.content.Context createDeviceEncryptedStorageContext(); method public android.content.Context createDeviceEncryptedContext(android.content.Context); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createDisplayContext(android.view.Display); method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public android.content.Context createPackageContext(java.lang.String, int) throws android.content.pm.PackageManager.NameNotFoundException; method public java.lang.String[] databaseList(); method public java.lang.String[] databaseList(); Loading Loading @@ -36302,8 +36299,7 @@ package android.test.mock { method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumHeight(); method public int getWallpaperDesiredMinimumWidth(); method public int getWallpaperDesiredMinimumWidth(); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public void grantUriPermission(java.lang.String, android.net.Uri, int); method public boolean isCredentialEncrypted(); method public boolean isDeviceEncryptedStorage(); method public boolean isDeviceEncrypted(); method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileInputStream openFileInput(java.lang.String) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public java.io.FileOutputStream openFileOutput(java.lang.String, int) throws java.io.FileNotFoundException; method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory); method public android.database.sqlite.SQLiteDatabase openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase.CursorFactory);
core/java/android/app/ContextImpl.java +22 −20 Original line number Original line Diff line number Diff line Loading @@ -61,6 +61,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserHandle; import android.os.storage.IMountService; import android.os.storage.IMountService; import android.os.storage.StorageManager; import android.util.AndroidRuntimeException; import android.util.AndroidRuntimeException; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.Log; import android.util.Log; Loading Loading @@ -1744,17 +1745,21 @@ class ContextImpl extends Context { } } @Override @Override public Context createDeviceEncryptedContext(Context context) { public Context createDeviceEncryptedStorageContext() { final int flags = (mFlags & ~Context.CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED) if (!StorageManager.isFileBasedEncryptionEnabled()) { | Context.CONTEXT_STORAGE_DEVICE_ENCRYPTED; return null; } final int flags = (mFlags & ~Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE) | Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE; return new ContextImpl(this, mMainThread, mPackageInfo, mActivityToken, return new ContextImpl(this, mMainThread, mPackageInfo, mActivityToken, mUser, flags, mDisplay, null, Display.INVALID_DISPLAY); mUser, flags, mDisplay, null, Display.INVALID_DISPLAY); } } @Override @Override public Context createCredentialEncryptedContext(Context context) { public Context createCredentialEncryptedStorageContext() { final int flags = (mFlags & ~Context.CONTEXT_STORAGE_DEVICE_ENCRYPTED) final int flags = (mFlags & ~Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE) | Context.CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED; | Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE; return new ContextImpl(this, mMainThread, mPackageInfo, mActivityToken, return new ContextImpl(this, mMainThread, mPackageInfo, mActivityToken, mUser, flags, mDisplay, null, Display.INVALID_DISPLAY); mUser, flags, mDisplay, null, Display.INVALID_DISPLAY); } } Loading @@ -1765,13 +1770,13 @@ class ContextImpl extends Context { } } @Override @Override public boolean isDeviceEncrypted() { public boolean isDeviceEncryptedStorage() { return (mFlags & Context.CONTEXT_STORAGE_DEVICE_ENCRYPTED) != 0; return (mFlags & Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE) != 0; } } @Override @Override public boolean isCredentialEncrypted() { public boolean isCredentialEncryptedStorage() { return (mFlags & Context.CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED) != 0; return (mFlags & Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE) != 0; } } @Override @Override Loading @@ -1781,13 +1786,12 @@ class ContextImpl extends Context { private File getDataDirFile() { private File getDataDirFile() { if (mPackageInfo != null) { if (mPackageInfo != null) { if (isCredentialEncrypted()) { if (isCredentialEncryptedStorage()) { return mPackageInfo.getCredentialEncryptedDataDirFile(); return mPackageInfo.getCredentialEncryptedDataDirFile(); } else if (isDeviceEncrypted()) { } else if (isDeviceEncryptedStorage()) { return mPackageInfo.getDeviceEncryptedDataDirFile(); return mPackageInfo.getDeviceEncryptedDataDirFile(); } else { } else { throw new RuntimeException( return mPackageInfo.getDataDirFile(); "Storage location is neither credential nor device encrypted"); } } } } throw new RuntimeException("Not supported in system context"); throw new RuntimeException("Not supported in system context"); Loading Loading @@ -1840,15 +1844,13 @@ class ContextImpl extends Context { // If creator didn't specify which storage to use, use the default // If creator didn't specify which storage to use, use the default // location for application. // location for application. if ((flags & Context.CONTEXT_STORAGE_MASK) == 0) { if ((flags & (Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE | Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE)) == 0) { final File dataDir = packageInfo.getDataDirFile(); final File dataDir = packageInfo.getDataDirFile(); if (Objects.equals(dataDir, packageInfo.getCredentialEncryptedDataDirFile())) { if (Objects.equals(dataDir, packageInfo.getCredentialEncryptedDataDirFile())) { flags |= Context.CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED; flags |= Context.CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE; } else if (Objects.equals(dataDir, packageInfo.getDeviceEncryptedDataDirFile())) { } else if (Objects.equals(dataDir, packageInfo.getDeviceEncryptedDataDirFile())) { flags |= Context.CONTEXT_STORAGE_DEVICE_ENCRYPTED; flags |= Context.CONTEXT_DEVICE_ENCRYPTED_STORAGE; } else { throw new IllegalStateException("Storage location " + dataDir + " doesn't match either credential or device encrypted storage"); } } } } Loading
core/java/android/content/Context.java +23 −19 Original line number Original line Diff line number Diff line Loading @@ -53,8 +53,8 @@ import android.os.UserHandle; import android.os.UserManager; import android.os.UserManager; import android.provider.MediaStore; import android.provider.MediaStore; import android.util.AttributeSet; import android.util.AttributeSet; import android.view.DisplayAdjustments; import android.view.Display; import android.view.Display; import android.view.DisplayAdjustments; import android.view.ViewDebug; import android.view.ViewDebug; import android.view.WindowManager; import android.view.WindowManager; Loading Loading @@ -3870,7 +3870,7 @@ public abstract class Context { * * * @hide * @hide */ */ public static final int CONTEXT_STORAGE_DEVICE_ENCRYPTED = 0x00000008; public static final int CONTEXT_DEVICE_ENCRYPTED_STORAGE = 0x00000008; /** /** * Flag for use with {@link #createPackageContext}: point all file APIs at * Flag for use with {@link #createPackageContext}: point all file APIs at Loading @@ -3878,11 +3878,7 @@ public abstract class Context { * * * @hide * @hide */ */ public static final int CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED = 0x00000010; public static final int CONTEXT_CREDENTIAL_ENCRYPTED_STORAGE = 0x00000010; /** {@hide} */ public static final int CONTEXT_STORAGE_MASK = CONTEXT_STORAGE_DEVICE_ENCRYPTED | CONTEXT_STORAGE_CREDENTIAL_ENCRYPTED; /** /** * @hide Used to indicate we should tell the activity manager about the process * @hide Used to indicate we should tell the activity manager about the process Loading Loading @@ -3987,19 +3983,23 @@ public abstract class Context { * Return a new Context object for the current Context but whose storage * Return a new Context object for the current Context but whose storage * APIs are backed by device-encrypted storage. * APIs are backed by device-encrypted storage. * <p> * <p> * Data stored in device-encrypted storage is typically encrypted with a * Data stored in device-encrypted storage is typically encrypted with a key * key tied to the physical device, and they can be accessed whenever the * tied to the physical device, and it can be accessed when the device has * device has booted successfully, both <em>before and after</em> the user * booted successfully, both <em>before and after</em> the user has * has entered their credentials (such as a lock pattern or PIN). * authenticated with their credentials (such as a lock pattern or PIN). * Because device-encrypted data is available before user authentication, * you should carefully consider what data you store using this Context. * <p> * <p> * Each call to this method returns a new instance of a Context object; * Each call to this method returns a new instance of a Context object; * Context objects are not shared, however common state (ClassLoader, other * Context objects are not shared, however common state (ClassLoader, other * Resources for the same configuration) may be so the Context itself can be * Resources for the same configuration) may be so the Context itself can be * fairly lightweight. * fairly lightweight. * * * @see #isDeviceEncrypted() * @return new Context or {@code null} if device-encrypted storage is not * supported or available on this device. * @see #isDeviceEncryptedStorage() */ */ public abstract Context createDeviceEncryptedContext(Context context); public abstract Context createDeviceEncryptedStorageContext(); /** /** * Return a new Context object for the current Context but whose storage * Return a new Context object for the current Context but whose storage Loading @@ -4015,9 +4015,11 @@ public abstract class Context { * Resources for the same configuration) may be so the Context itself can be * Resources for the same configuration) may be so the Context itself can be * fairly lightweight. * fairly lightweight. * * * @see #isCredentialEncrypted() * @see #isCredentialEncryptedStorage() * @hide */ */ public abstract Context createCredentialEncryptedContext(Context context); @SystemApi public abstract Context createCredentialEncryptedStorageContext(); /** /** * Gets the display adjustments holder for this context. This information * Gets the display adjustments holder for this context. This information Loading Loading @@ -4045,15 +4047,17 @@ public abstract class Context { * Indicates if the storage APIs of this Context are backed by * Indicates if the storage APIs of this Context are backed by * device-encrypted storage. * device-encrypted storage. * * * @see #createDeviceEncryptedContext(Context) * @see #createDeviceEncryptedStorageContext() */ */ public abstract boolean isDeviceEncrypted(); public abstract boolean isDeviceEncryptedStorage(); /** /** * Indicates if the storage APIs of this Context are backed by * Indicates if the storage APIs of this Context are backed by * credential-encrypted storage. * credential-encrypted storage. * * * @see #createCredentialEncryptedContext(Context) * @see #createCredentialEncryptedStorageContext() * @hide */ */ public abstract boolean isCredentialEncrypted(); @SystemApi public abstract boolean isCredentialEncryptedStorage(); } }