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

Commit bbc51cae authored by Pavel Grafov's avatar Pavel Grafov
Browse files

Use separate flag for suspend packages coexistence

Bug: 335624297
Test: btest a.d.c.PackageSuspensionTest
Flag: android.app.admin.flags.suspend_packages_coexistence
Change-Id: I5ea1ba5cf1fbf2ccc63c8a211c37e29c069736e1
parent 89fe8322
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -275,6 +275,16 @@ flag {
    }
}

flag {
    name: "suspend_packages_coexistence"
    namespace: "enterprise"
    description: "Migrate setPackagesSuspended for unmanaged mode"
    bug: "335624297"
    metadata {
      purpose: PURPOSE_BUGFIX
    }
}

flag {
    name: "backup_connected_apps_settings"
    namespace: "enterprise"
+5 −8
Original line number Diff line number Diff line
@@ -3486,7 +3486,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
    @GuardedBy("getLockObject()")
    private boolean maybeMigrateSuspendedPackagesLocked(String backupId) {
        Slog.i(LOG_TAG, "Migrating suspended packages to policy engine");
        if (!Flags.unmanagedModeMigration()) {
        if (!Flags.suspendPackagesCoexistence()) {
            return false;
        }
        if (mOwners.isSuspendedPackagesMigrated()) {
@@ -13360,7 +13360,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
    @Override
    public String[] setPackagesSuspended(ComponentName who, String callerPackage,
            String[] packageNames, boolean suspended) {
        if (!Flags.unmanagedModeMigration()) {
        if (!Flags.suspendPackagesCoexistence()) {
            return setPackagesSuspendedPreCoexistence(who, callerPackage, packageNames, suspended);
        }
@@ -13450,7 +13450,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
    public boolean isPackageSuspended(ComponentName who, String callerPackage, String packageName) {
        final CallerIdentity caller = getCallerIdentity(who, callerPackage);
        if (Flags.unmanagedModeMigration()) {
        if (Flags.suspendPackagesCoexistence()) {
            enforcePermission(
                    MANAGE_DEVICE_POLICY_PACKAGE_STATE,
                    caller.getPackageName(),
@@ -24235,17 +24235,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
        maybeMigrateSecurityLoggingPolicyLocked();
        // ID format: <sdk-int>.<auto_increment_id>.<descriptions>'
        String unmanagedBackupId = "35.1.unmanaged-mode";
        boolean unmanagedMigrated = false;
        unmanagedMigrated =
                unmanagedMigrated | maybeMigrateRequiredPasswordComplexityLocked(unmanagedBackupId);
        unmanagedMigrated =
                unmanagedMigrated | maybeMigrateSuspendedPackagesLocked(unmanagedBackupId);
        boolean unmanagedMigrated = maybeMigrateRequiredPasswordComplexityLocked(unmanagedBackupId);
        if (unmanagedMigrated) {
            Slogf.i(LOG_TAG, "Backup made: " + unmanagedBackupId);
        }
        String supervisionBackupId = "36.2.supervision-support";
        boolean supervisionMigrated = maybeMigrateResetPasswordTokenLocked(supervisionBackupId);
        supervisionMigrated |= maybeMigrateSuspendedPackagesLocked(supervisionBackupId);
        if (supervisionMigrated) {
            Slogf.i(LOG_TAG, "Backup made: " + supervisionBackupId);
        }
+3 −1
Original line number Diff line number Diff line
@@ -416,6 +416,8 @@ class OwnersData {
            if (Flags.unmanagedModeMigration()) {
                out.attributeBoolean(null, ATTR_REQUIRED_PASSWORD_COMPLEXITY_MIGRATED,
                        mRequiredPasswordComplexityMigrated);
            }
            if (Flags.suspendPackagesCoexistence()) {
                out.attributeBoolean(null, ATTR_SUSPENDED_PACKAGES_MIGRATED,
                        mSuspendedPackagesMigrated);

@@ -491,7 +493,7 @@ class OwnersData {
                    mRequiredPasswordComplexityMigrated = Flags.unmanagedModeMigration()
                            && parser.getAttributeBoolean(null,
                                    ATTR_REQUIRED_PASSWORD_COMPLEXITY_MIGRATED, false);
                    mSuspendedPackagesMigrated = Flags.unmanagedModeMigration()
                    mSuspendedPackagesMigrated = Flags.suspendPackagesCoexistence()
                            && parser.getAttributeBoolean(null,
                                    ATTR_SUSPENDED_PACKAGES_MIGRATED, false);
                    mResetPasswordWithTokenMigrated = Flags.resetPasswordWithTokenCoexistence()