diff options
| author | 2024-11-05 14:50:14 +0000 | |
|---|---|---|
| committer | 2024-11-05 16:47:25 +0000 | |
| commit | bbc51caeacda6ccaf76b85511d0eed3f720079cd (patch) | |
| tree | e8b43054f4dc2e68d6582521c8c914446a109b52 | |
| parent | 89fe832232d0a2008175aed041d0c5696e73353d (diff) | |
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
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 aca6f7235714..ce9ef8e81a93 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -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); } diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java b/services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java index 10e43d955fab..90f58ca6fcb5 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java @@ -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() |