Merge "Don't resume activity if user is locked and encryption is unsupported" into oc-mr1-dev
This commit is contained in:
@@ -1508,6 +1508,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
|
||||
return (privateFlags & ApplicationInfo.PRIVATE_FLAG_PARTIALLY_DIRECT_BOOT_AWARE) != 0;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public boolean isEncryptionAware() {
|
||||
return isDirectBootAware() || isPartiallyDirectBootAware();
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
|
||||
@@ -146,6 +146,7 @@ import android.os.RemoteException;
|
||||
import android.os.SystemClock;
|
||||
import android.os.Trace;
|
||||
import android.os.UserHandle;
|
||||
import android.os.storage.StorageManager;
|
||||
import android.service.voice.IVoiceInteractionSession;
|
||||
import android.util.EventLog;
|
||||
import android.util.Log;
|
||||
@@ -2011,6 +2012,13 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
|
||||
|
||||
/** Checks whether the activity should be shown for current user. */
|
||||
public boolean okToShowLocked() {
|
||||
// We cannot show activities when the device is locked and the application is not
|
||||
// encryption aware.
|
||||
if (!StorageManager.isUserKeyUnlocked(userId)
|
||||
&& !info.applicationInfo.isEncryptionAware()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return (info.flags & FLAG_SHOW_FOR_ALL_USERS) != 0
|
||||
|| (mStackSupervisor.isCurrentProfileLocked(userId)
|
||||
&& service.mUserController.isUserRunningLocked(userId, 0 /* flags */));
|
||||
|
||||
@@ -3884,8 +3884,7 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
throw new SecurityException("Package " + packageName + " is currently frozen!");
|
||||
}
|
||||
|
||||
if (!userKeyUnlocked && !(ps.pkg.applicationInfo.isDirectBootAware()
|
||||
|| ps.pkg.applicationInfo.isPartiallyDirectBootAware())) {
|
||||
if (!userKeyUnlocked && !ps.pkg.applicationInfo.isEncryptionAware()) {
|
||||
throw new SecurityException("Package " + packageName + " is not encryption aware!");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user