Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 140a1b05 authored by Pavel Grafov's avatar Pavel Grafov Committed by Android (Google) Code Review
Browse files

Merge "Make cross user suspension flag fixed read only" into main

parents f6ac9039 1708c3da
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -42,6 +42,14 @@ flag {
  bug: "263464464"
}

flag {
  name: "cross_user_suspension_enabled_ro"
  namespace: "enterprise"
  description: "Allow holders of INTERACT_ACROSS_USERS_FULL to suspend apps in different users."
  bug: "263464464"
  is_fixed_read_only: true
}

flag {
  name: "dedicated_device_control_enabled"
  namespace: "enterprise"
+3 −3
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package com.android.internal.app;

import static android.app.admin.flags.Flags.crossUserSuspensionEnabled;
import static android.app.admin.flags.Flags.crossUserSuspensionEnabledRo;
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
import static android.content.pm.SuspendDialogInfo.BUTTON_ACTION_MORE_DETAILS;
@@ -234,7 +234,7 @@ public class SuspendedAppActivity extends AlertActivity
        }
        mSuspendedPackage = intent.getStringExtra(EXTRA_SUSPENDED_PACKAGE);
        mSuspendingPackage = intent.getStringExtra(EXTRA_SUSPENDING_PACKAGE);
        if (crossUserSuspensionEnabled()) {
        if (crossUserSuspensionEnabledRo()) {
            mSuspendingUserId = intent.getIntExtra(EXTRA_SUSPENDING_USER, mUserId);
        } else {
            mSuspendingUserId = mUserId;
@@ -373,7 +373,7 @@ public class SuspendedAppActivity extends AlertActivity
                .putExtra(Intent.EXTRA_USER_ID, userId)
                .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                        | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
        if (crossUserSuspensionEnabled() && suspendingPackage != null) {
        if (crossUserSuspensionEnabledRo() && suspendingPackage != null) {
            intent.putExtra(EXTRA_SUSPENDING_USER, suspendingPackage.userId);
        }
        return intent;
+3 −3
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package com.android.server.pm;

import static android.app.admin.flags.Flags.crossUserSuspensionEnabled;
import static android.app.admin.flags.Flags.crossUserSuspensionEnabledRo;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
import static android.content.pm.PackageManager.RESTRICTION_NONE;

@@ -690,7 +690,7 @@ abstract class PackageManagerInternalBase extends PackageManagerInternal {
    @Deprecated
    public final void unsuspendAdminSuspendedPackages(int affectedUser) {
        final int suspendingUserId =
                crossUserSuspensionEnabled() ? UserHandle.USER_SYSTEM : affectedUser;
                crossUserSuspensionEnabledRo() ? UserHandle.USER_SYSTEM : affectedUser;
        mService.unsuspendForSuspendingPackage(
                snapshot(), PLATFORM_PACKAGE_NAME, suspendingUserId, /* inAllUsers= */ false);
    }
@@ -699,7 +699,7 @@ abstract class PackageManagerInternalBase extends PackageManagerInternal {
    @Deprecated
    public final boolean isAdminSuspendingAnyPackages(int userId) {
        final int suspendingUserId =
                crossUserSuspensionEnabled() ? UserHandle.USER_SYSTEM : userId;
                crossUserSuspensionEnabledRo() ? UserHandle.USER_SYSTEM : userId;
        return snapshot().isSuspendingAnyPackages(PLATFORM_PACKAGE_NAME, suspendingUserId, userId);
    }

+6 −6
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ package com.android.server.pm;
import static android.Manifest.permission.MANAGE_DEVICE_ADMINS;
import static android.Manifest.permission.SET_HARMFUL_APP_WARNINGS;
import static android.app.AppOpsManager.MODE_IGNORED;
import static android.app.admin.flags.Flags.crossUserSuspensionEnabled;
import static android.app.admin.flags.Flags.crossUserSuspensionEnabledRo;
import static android.content.pm.PackageManager.APP_METADATA_SOURCE_APK;
import static android.content.pm.PackageManager.APP_METADATA_SOURCE_UNKNOWN;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
@@ -3182,7 +3182,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
                    callingMethod);
        }

        if (crossUserSuspensionEnabled()) {
        if (crossUserSuspensionEnabledRo()) {
            final int suspendingPackageUid =
                    snapshot.getPackageUid(suspender.packageName, 0, suspender.userId);
            if (suspendingPackageUid != callingUid) {
@@ -3220,7 +3220,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
        final String[] allPackages = computer.getPackageStates().keySet().toArray(new String[0]);
        final Predicate<UserPackage> suspenderPredicate =
                UserPackage.of(suspendingUserId, suspendingPackage)::equals;
        if (!crossUserSuspensionEnabled() || !inAllUsers) {
        if (!crossUserSuspensionEnabledRo() || !inAllUsers) {
            mSuspendPackageHelper.removeSuspensionsBySuspendingPackage(computer,
                    allPackages, suspenderPredicate, suspendingUserId);
        } else {
@@ -4366,7 +4366,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
        }
        mInstantAppRegistry.onUserRemoved(userId);
        mPackageMonitorCallbackHelper.onUserRemoved(userId);
        if (crossUserSuspensionEnabled()) {
        if (crossUserSuspensionEnabledRo()) {
            cleanUpCrossUserSuspension(userId);
        }
    }
@@ -6302,7 +6302,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
            final boolean quarantined = ((flags & PackageManager.FLAG_SUSPEND_QUARANTINED) != 0)
                    && Flags.quarantinedEnabled();
            final Computer snapshot = snapshotComputer();
            final UserPackage suspender = crossUserSuspensionEnabled()
            final UserPackage suspender = crossUserSuspensionEnabledRo()
                    ? UserPackage.of(suspendingUserId, suspendingPackage)
                    : UserPackage.of(targetUserId, suspendingPackage);
            enforceCanSetPackagesSuspendedAsUser(snapshot, quarantined, suspender, callingUid,
@@ -6787,7 +6787,7 @@ public class PackageManagerService implements PackageSender, TestUtilityService
            // Suspension by admin isn't attributed to admin package but to the platform,
            // Using USER_SYSTEM for consistency with other internal suspenders, like shell or root.
            final int suspendingUserId =
                    crossUserSuspensionEnabled() ? UserHandle.USER_SYSTEM : userId;
                    crossUserSuspensionEnabledRo() ? UserHandle.USER_SYSTEM : userId;
            final UserPackage suspender = UserPackage.of(
                    suspendingUserId, PackageManagerService.PLATFORM_PACKAGE_NAME);
            return mSuspendPackageHelper.setPackagesSuspended(snapshotComputer(), packageNames,
+2 −2
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

package com.android.server.pm;

import static android.app.admin.flags.Flags.crossUserSuspensionEnabled;
import static android.app.admin.flags.Flags.crossUserSuspensionEnabledRo;
import static android.content.pm.ApplicationInfo.PRIVATE_FLAG_DEFAULT_TO_DEVICE_PROTECTED_STORAGE;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
@@ -1241,7 +1241,7 @@ public class PackageSetting extends SettingBase implements PackageStateInternal
                for (int j = 0; j < state.getSuspendParams().size(); j++) {
                    proto.write(PackageProto.UserInfoProto.SUSPENDING_PACKAGE,
                            state.getSuspendParams().keyAt(j).packageName);
                    if (crossUserSuspensionEnabled()) {
                    if (crossUserSuspensionEnabledRo()) {
                        proto.write(PackageProto.UserInfoProto.SUSPENDING_USER,
                                state.getSuspendParams().keyAt(j).userId);
                    }
Loading