Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +33 −0 Original line number Diff line number Diff line Loading @@ -24191,6 +24191,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { String supervisionBackupId = "36.2.supervision-support"; boolean supervisionMigrated = maybeMigrateResetPasswordTokenLocked(supervisionBackupId); supervisionMigrated |= maybeMigrateSuspendedPackagesLocked(supervisionBackupId); supervisionMigrated |= maybeMigrateSetKeyguardDisabledFeatures(supervisionBackupId); if (supervisionMigrated) { Slogf.i(LOG_TAG, "Backup made: " + supervisionBackupId); } Loading @@ -24204,6 +24205,38 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { // Additional migration steps should repeat the pattern above with a new backupId. } @GuardedBy("getLockObject()") private boolean maybeMigrateSetKeyguardDisabledFeatures(String backupId) { Slog.i(LOG_TAG, "Migrating set keyguard disabled features to policy engine"); if (!Flags.setKeyguardDisabledFeaturesCoexistence()) { return false; } if (mOwners.isSetKeyguardDisabledFeaturesMigrated()) { return false; } // Create backup if none exists mDevicePolicyEngine.createBackup(backupId); try { iterateThroughDpcAdminsLocked((admin, enforcingAdmin) -> { if (admin.disabledKeyguardFeatures == 0) { return; } int userId = enforcingAdmin.getUserId(); mDevicePolicyEngine.setLocalPolicy( PolicyDefinition.KEYGUARD_DISABLED_FEATURES, enforcingAdmin, new IntegerPolicyValue(admin.disabledKeyguardFeatures), userId); }); } catch (Exception e) { Slog.wtf(LOG_TAG, "Failed to migrate set keyguard disabled to policy engine", e); } Slog.i(LOG_TAG, "Marking set keyguard disabled features migration complete"); mOwners.markSetKeyguardDisabledFeaturesMigrated(); return true; } private void migratePermissionGrantStatePolicies() { Slogf.i(LOG_TAG, "Migrating PERMISSION_GRANT policy to device policy engine."); for (UserInfo userInfo : mUserManager.getUsers()) { services/devicepolicy/java/com/android/server/devicepolicy/Owners.java +13 −0 Original line number Diff line number Diff line Loading @@ -695,6 +695,19 @@ class Owners { } } void markSetKeyguardDisabledFeaturesMigrated() { synchronized (mData) { mData.mSetKeyguardDisabledFeaturesMigrated = true; mData.writeDeviceOwner(); } } boolean isSetKeyguardDisabledFeaturesMigrated() { synchronized (mData) { return mData.mSetKeyguardDisabledFeaturesMigrated; } } @GuardedBy("mData") void pushToAppOpsLocked() { if (!mSystemReady) { Loading services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java +11 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,8 @@ class OwnersData { "resetPasswordWithTokenMigrated"; private static final String ATTR_MEMORY_TAGGING_MIGRATED = "memoryTaggingMigrated"; private static final String ATTR_SET_KEYGUARD_DISABLED_FEATURES_MIGRATED = "setKeyguardDisabledFeaturesMigrated"; private static final String ATTR_MIGRATED_POST_UPGRADE = "migratedPostUpgrade"; Loading Loading @@ -129,6 +131,7 @@ class OwnersData { boolean mSuspendedPackagesMigrated = false; boolean mResetPasswordWithTokenMigrated = false; boolean mMemoryTaggingMigrated = false; boolean mSetKeyguardDisabledFeaturesMigrated = false; boolean mPoliciesMigratedPostUpdate = false; Loading Loading @@ -434,6 +437,10 @@ class OwnersData { out.attributeBoolean(null, ATTR_MEMORY_TAGGING_MIGRATED, mMemoryTaggingMigrated); } if (Flags.setKeyguardDisabledFeaturesCoexistence()) { out.attributeBoolean(null, ATTR_SET_KEYGUARD_DISABLED_FEATURES_MIGRATED, mSetKeyguardDisabledFeaturesMigrated); } out.endTag(null, TAG_POLICY_ENGINE_MIGRATION); } Loading Loading @@ -510,6 +517,10 @@ class OwnersData { mMemoryTaggingMigrated = Flags.setMtePolicyCoexistence() && parser.getAttributeBoolean(null, ATTR_MEMORY_TAGGING_MIGRATED, false); mSetKeyguardDisabledFeaturesMigrated = Flags.setKeyguardDisabledFeaturesCoexistence() && parser.getAttributeBoolean(null, ATTR_SET_KEYGUARD_DISABLED_FEATURES_MIGRATED, false); break; default: Slog.e(TAG, "Unexpected tag: " + tag); Loading Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +33 −0 Original line number Diff line number Diff line Loading @@ -24191,6 +24191,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { String supervisionBackupId = "36.2.supervision-support"; boolean supervisionMigrated = maybeMigrateResetPasswordTokenLocked(supervisionBackupId); supervisionMigrated |= maybeMigrateSuspendedPackagesLocked(supervisionBackupId); supervisionMigrated |= maybeMigrateSetKeyguardDisabledFeatures(supervisionBackupId); if (supervisionMigrated) { Slogf.i(LOG_TAG, "Backup made: " + supervisionBackupId); } Loading @@ -24204,6 +24205,38 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { // Additional migration steps should repeat the pattern above with a new backupId. } @GuardedBy("getLockObject()") private boolean maybeMigrateSetKeyguardDisabledFeatures(String backupId) { Slog.i(LOG_TAG, "Migrating set keyguard disabled features to policy engine"); if (!Flags.setKeyguardDisabledFeaturesCoexistence()) { return false; } if (mOwners.isSetKeyguardDisabledFeaturesMigrated()) { return false; } // Create backup if none exists mDevicePolicyEngine.createBackup(backupId); try { iterateThroughDpcAdminsLocked((admin, enforcingAdmin) -> { if (admin.disabledKeyguardFeatures == 0) { return; } int userId = enforcingAdmin.getUserId(); mDevicePolicyEngine.setLocalPolicy( PolicyDefinition.KEYGUARD_DISABLED_FEATURES, enforcingAdmin, new IntegerPolicyValue(admin.disabledKeyguardFeatures), userId); }); } catch (Exception e) { Slog.wtf(LOG_TAG, "Failed to migrate set keyguard disabled to policy engine", e); } Slog.i(LOG_TAG, "Marking set keyguard disabled features migration complete"); mOwners.markSetKeyguardDisabledFeaturesMigrated(); return true; } private void migratePermissionGrantStatePolicies() { Slogf.i(LOG_TAG, "Migrating PERMISSION_GRANT policy to device policy engine."); for (UserInfo userInfo : mUserManager.getUsers()) {
services/devicepolicy/java/com/android/server/devicepolicy/Owners.java +13 −0 Original line number Diff line number Diff line Loading @@ -695,6 +695,19 @@ class Owners { } } void markSetKeyguardDisabledFeaturesMigrated() { synchronized (mData) { mData.mSetKeyguardDisabledFeaturesMigrated = true; mData.writeDeviceOwner(); } } boolean isSetKeyguardDisabledFeaturesMigrated() { synchronized (mData) { return mData.mSetKeyguardDisabledFeaturesMigrated; } } @GuardedBy("mData") void pushToAppOpsLocked() { if (!mSystemReady) { Loading
services/devicepolicy/java/com/android/server/devicepolicy/OwnersData.java +11 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,8 @@ class OwnersData { "resetPasswordWithTokenMigrated"; private static final String ATTR_MEMORY_TAGGING_MIGRATED = "memoryTaggingMigrated"; private static final String ATTR_SET_KEYGUARD_DISABLED_FEATURES_MIGRATED = "setKeyguardDisabledFeaturesMigrated"; private static final String ATTR_MIGRATED_POST_UPGRADE = "migratedPostUpgrade"; Loading Loading @@ -129,6 +131,7 @@ class OwnersData { boolean mSuspendedPackagesMigrated = false; boolean mResetPasswordWithTokenMigrated = false; boolean mMemoryTaggingMigrated = false; boolean mSetKeyguardDisabledFeaturesMigrated = false; boolean mPoliciesMigratedPostUpdate = false; Loading Loading @@ -434,6 +437,10 @@ class OwnersData { out.attributeBoolean(null, ATTR_MEMORY_TAGGING_MIGRATED, mMemoryTaggingMigrated); } if (Flags.setKeyguardDisabledFeaturesCoexistence()) { out.attributeBoolean(null, ATTR_SET_KEYGUARD_DISABLED_FEATURES_MIGRATED, mSetKeyguardDisabledFeaturesMigrated); } out.endTag(null, TAG_POLICY_ENGINE_MIGRATION); } Loading Loading @@ -510,6 +517,10 @@ class OwnersData { mMemoryTaggingMigrated = Flags.setMtePolicyCoexistence() && parser.getAttributeBoolean(null, ATTR_MEMORY_TAGGING_MIGRATED, false); mSetKeyguardDisabledFeaturesMigrated = Flags.setKeyguardDisabledFeaturesCoexistence() && parser.getAttributeBoolean(null, ATTR_SET_KEYGUARD_DISABLED_FEATURES_MIGRATED, false); break; default: Slog.e(TAG, "Unexpected tag: " + tag); Loading