Merge "Send MANAGED_PROFILE_* broadcasts to apps with MODIFY_QUIET_MODE." into rvc-dev am: ab199ee55b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11838111 Change-Id: I71e873632a99eb565d4875016d9da230e3709feb
This commit is contained in:
@@ -12712,7 +12712,8 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
for (ResolveInfo receiver : receivers) {
|
||||
final String packageName = receiver.getComponentInfo().packageName;
|
||||
if (checkCrossProfilePackagePermissions(packageName, userId,
|
||||
requiresPermission)) {
|
||||
requiresPermission)
|
||||
|| checkModifyQuietModePermission(packageName, userId)) {
|
||||
Slog.i(LOG_TAG,
|
||||
String.format("Sending %s broadcast to %s.", intent.getAction(),
|
||||
packageName));
|
||||
@@ -12729,6 +12730,27 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the package {@code packageName} has the {@code MODIFY_QUIET_MODE}
|
||||
* permission granted for the user {@code userId}.
|
||||
*/
|
||||
private boolean checkModifyQuietModePermission(String packageName, @UserIdInt int userId) {
|
||||
try {
|
||||
final int uid = Objects.requireNonNull(
|
||||
mInjector.getPackageManager().getApplicationInfoAsUser(
|
||||
Objects.requireNonNull(packageName), /* flags= */ 0, userId)).uid;
|
||||
return PackageManager.PERMISSION_GRANTED
|
||||
== ActivityManager.checkComponentPermission(
|
||||
android.Manifest.permission.MODIFY_QUIET_MODE, uid, /* owningUid= */
|
||||
-1, /* exported= */ true);
|
||||
} catch (NameNotFoundException ex) {
|
||||
Slog.w(LOG_TAG,
|
||||
String.format("Cannot find the package %s to check for permissions.",
|
||||
packageName));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the package {@code packageName} has the required permissions to receive
|
||||
* cross-profile broadcasts on behalf of the user {@code userId}.
|
||||
|
||||
Reference in New Issue
Block a user