diff options
3 files changed, 18 insertions, 9 deletions
diff --git a/core/java/android/app/admin/flags/flags.aconfig b/core/java/android/app/admin/flags/flags.aconfig index 3aaca25eca15..04a9d13420ee 100644 --- a/core/java/android/app/admin/flags/flags.aconfig +++ b/core/java/android/app/admin/flags/flags.aconfig @@ -276,6 +276,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" description: "backup and restore connected work and personal apps user settings across devices" diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 4ce18d232936..c6530381443f 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -3480,7 +3480,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()) { @@ -13092,7 +13092,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); } @@ -13182,7 +13182,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(), @@ -23795,17 +23795,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); } diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java b/services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java index 952bbca58f3b..1cae924a8cd1 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java @@ -420,6 +420,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); @@ -499,7 +501,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() |