diff options
| -rw-r--r-- | core/java/com/android/internal/app/UnlaunchableAppActivity.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/core/java/com/android/internal/app/UnlaunchableAppActivity.java b/core/java/com/android/internal/app/UnlaunchableAppActivity.java index 73914a2a99f6..4ef0a1baa4d1 100644 --- a/core/java/com/android/internal/app/UnlaunchableAppActivity.java +++ b/core/java/com/android/internal/app/UnlaunchableAppActivity.java @@ -67,6 +67,8 @@ public class UnlaunchableAppActivity extends Activity mUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL); mTarget = intent.getParcelableExtra(Intent.EXTRA_INTENT, android.content.IntentSender.class); + String targetPackageName = intent.getStringExtra(Intent.EXTRA_PACKAGE_NAME); + final UserManager userManager = UserManager.get(this); if (mUserId == UserHandle.USER_NULL) { Log.wtf(TAG, "Invalid user id: " + mUserId + ". Stopping."); @@ -74,13 +76,20 @@ public class UnlaunchableAppActivity extends Activity return; } + if (android.os.Flags.allowPrivateProfile() + && !userManager.isManagedProfile(mUserId)) { + Log.e(TAG, "Unlaunchable activity for target package " + targetPackageName + + " called for a non-managed-profile " + mUserId); + finish(); + return; + } + if (mReason != UNLAUNCHABLE_REASON_QUIET_MODE) { Log.wtf(TAG, "Invalid unlaunchable type: " + mReason); finish(); return; } - String targetPackageName = intent.getStringExtra(Intent.EXTRA_PACKAGE_NAME); boolean showEmergencyCallButton = (targetPackageName != null && targetPackageName.equals( mTelecomManager.getDefaultDialerPackage(UserHandle.of(mUserId)))); |