Merge changes I64307527,Id230f8b1 into udc-dev am: 53026af587
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22814557 Change-Id: I532d4566fc5086c51fe1264f66c07584702f956e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -9599,6 +9599,7 @@ public class DevicePolicyManager {
|
|||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
} catch (IllegalArgumentException ex) {
|
} catch (IllegalArgumentException ex) {
|
||||||
|
Log.e(TAG, "IllegalArgumentException checking isPackageSuspended", ex);
|
||||||
throw new NameNotFoundException(packageName);
|
throw new NameNotFoundException(packageName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7515,6 +7515,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
boolean success = false;
|
boolean success = false;
|
||||||
try {
|
try {
|
||||||
if (getCurrentForegroundUserId() == userId) {
|
if (getCurrentForegroundUserId() == userId) {
|
||||||
|
// TODO: We need to special case headless here as we can't switch to the system user
|
||||||
mInjector.getIActivityManager().switchUser(UserHandle.USER_SYSTEM);
|
mInjector.getIActivityManager().switchUser(UserHandle.USER_SYSTEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7522,7 +7523,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
if (!success) {
|
if (!success) {
|
||||||
Slogf.w(LOG_TAG, "Couldn't remove user " + userId);
|
Slogf.w(LOG_TAG, "Couldn't remove user " + userId);
|
||||||
} else if (isManagedProfile(userId) && !wipeSilently) {
|
} else if (isManagedProfile(userId) && !wipeSilently) {
|
||||||
sendWipeProfileNotification(wipeReasonForUser);
|
sendWipeProfileNotification(wipeReasonForUser,
|
||||||
|
UserHandle.of(getProfileParentId(userId)));
|
||||||
}
|
}
|
||||||
} catch (RemoteException re) {
|
} catch (RemoteException re) {
|
||||||
// Shouldn't happen
|
// Shouldn't happen
|
||||||
@@ -7870,7 +7872,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendWipeProfileNotification(String wipeReasonForUser) {
|
private void sendWipeProfileNotification(String wipeReasonForUser, UserHandle user) {
|
||||||
Notification notification =
|
Notification notification =
|
||||||
new Notification.Builder(mContext, SystemNotificationChannels.DEVICE_ADMIN)
|
new Notification.Builder(mContext, SystemNotificationChannels.DEVICE_ADMIN)
|
||||||
.setSmallIcon(android.R.drawable.stat_sys_warning)
|
.setSmallIcon(android.R.drawable.stat_sys_warning)
|
||||||
@@ -7879,7 +7881,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
.setColor(mContext.getColor(R.color.system_notification_accent_color))
|
.setColor(mContext.getColor(R.color.system_notification_accent_color))
|
||||||
.setStyle(new Notification.BigTextStyle().bigText(wipeReasonForUser))
|
.setStyle(new Notification.BigTextStyle().bigText(wipeReasonForUser))
|
||||||
.build();
|
.build();
|
||||||
mInjector.getNotificationManager().notify(SystemMessage.NOTE_PROFILE_WIPED, notification);
|
mInjector.getNotificationManager().notifyAsUser(
|
||||||
|
/* tag= */ null, SystemMessage.NOTE_PROFILE_WIPED, notification, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getWorkProfileDeletedTitle() {
|
private String getWorkProfileDeletedTitle() {
|
||||||
@@ -13380,7 +13383,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
throw new IllegalStateException("Feature flag is not enabled.");
|
throw new IllegalStateException("Feature flag is not enabled.");
|
||||||
}
|
}
|
||||||
if (isDeviceOwner(caller) || isProfileOwner(caller)) {
|
if (isDeviceOwner(caller) || isProfileOwner(caller)) {
|
||||||
throw new IllegalStateException("Admins are not allowed to call this API.");
|
throw new SecurityException("Admins are not allowed to call this API.");
|
||||||
}
|
}
|
||||||
if (!mInjector.isChangeEnabled(
|
if (!mInjector.isChangeEnabled(
|
||||||
ENABLE_COEXISTENCE_CHANGE, callerPackage, caller.getUserId())) {
|
ENABLE_COEXISTENCE_CHANGE, callerPackage, caller.getUserId())) {
|
||||||
@@ -16946,6 +16949,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
} else {
|
} else {
|
||||||
granted = PackageManager.PERMISSION_GRANTED;
|
granted = PackageManager.PERMISSION_GRANTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -20049,6 +20053,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
if (!mHasFeature) {
|
if (!mHasFeature) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Objects.requireNonNull(who, "ComponentName is null");
|
Objects.requireNonNull(who, "ComponentName is null");
|
||||||
Objects.requireNonNull(packageNames, "Package names is null");
|
Objects.requireNonNull(packageNames, "Package names is null");
|
||||||
final CallerIdentity caller = getCallerIdentity(who);
|
final CallerIdentity caller = getCallerIdentity(who);
|
||||||
@@ -20065,7 +20070,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
saveSettingsLocked(caller.getUserId());
|
saveSettingsLocked(caller.getUserId());
|
||||||
}
|
}
|
||||||
logSetCrossProfilePackages(who, packageNames);
|
logSetCrossProfilePackages(who, packageNames);
|
||||||
final CrossProfileApps crossProfileApps = mContext.getSystemService(CrossProfileApps.class);
|
final CrossProfileApps crossProfileApps =
|
||||||
|
mContext.createContextAsUser(
|
||||||
|
caller.getUserHandle(), /* flags= */ 0)
|
||||||
|
.getSystemService(CrossProfileApps.class);
|
||||||
mInjector.binderWithCleanCallingIdentity(
|
mInjector.binderWithCleanCallingIdentity(
|
||||||
() -> crossProfileApps.resetInteractAcrossProfilesAppOps(
|
() -> crossProfileApps.resetInteractAcrossProfilesAppOps(
|
||||||
previousCrossProfilePackages, new HashSet<>(packageNames)));
|
previousCrossProfilePackages, new HashSet<>(packageNames)));
|
||||||
|
|||||||
Reference in New Issue
Block a user