Merge "Set SECURE_FRP_MODE for backward compatibility on deactivation" into main
diff --git a/services/core/java/com/android/server/pdb/PersistentDataBlockService.java b/services/core/java/com/android/server/pdb/PersistentDataBlockService.java
index 5ebcca8..2c14532 100644
--- a/services/core/java/com/android/server/pdb/PersistentDataBlockService.java
+++ b/services/core/java/com/android/server/pdb/PersistentDataBlockService.java
@@ -275,10 +275,7 @@
             if (mFrpEnforced) {
                 automaticallyDeactivateFrpIfPossible();
                 setOemUnlockEnabledProperty(doGetOemUnlockEnabled());
-                // Set the SECURE_FRP_MODE flag, for backward compatibility with clients who use it.
-                // They should switch to calling #isFrpActive().
-                Settings.Global.putInt(mContext.getContentResolver(),
-                        Settings.Global.SECURE_FRP_MODE, mFrpActive ? 1 : 0);
+                setOldSettingForBackworkCompatibility(mFrpActive);
             } else {
                 formatIfOemUnlockEnabled();
             }
@@ -292,6 +289,13 @@
         mInitDoneSignal.countDown();
     }
 
+    private void setOldSettingForBackworkCompatibility(boolean isActive) {
+        // Set the SECURE_FRP_MODE flag, for backward compatibility with clients who use it.
+        // They should switch to calling #isFrpActive().
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.SECURE_FRP_MODE, isActive ? 1 : 0);
+    }
+
     private void setOemUnlockEnabledProperty(boolean oemUnlockEnabled) {
         setProperty(OEM_UNLOCK_PROP, oemUnlockEnabled ? "1" : "0");
     }
@@ -628,6 +632,7 @@
                 Slog.w(TAG, "Upgrading from Android 14 or lower, defaulting FRP secret");
                 writeFrpMagicAndDefaultSecret();
                 mFrpActive = false;
+                setOldSettingForBackworkCompatibility(mFrpActive);
                 return true;
             }
 
@@ -699,6 +704,7 @@
     void activateFrp() {
         synchronized (mLock) {
             mFrpActive = true;
+            setOldSettingForBackworkCompatibility(mFrpActive);
         }
     }
 
@@ -740,6 +746,7 @@
         if (MessageDigest.isEqual(secret, partitionSecret)) {
             mFrpActive = false;
             Slog.i(TAG, "FRP secret matched, FRP deactivated.");
+            setOldSettingForBackworkCompatibility(mFrpActive);
             return true;
         } else {
             Slog.e(TAG,
@@ -1315,6 +1322,7 @@
         public boolean deactivateFactoryResetProtectionWithoutSecret() {
             synchronized (mLock) {
                 mFrpActive = false;
+                setOldSettingForBackworkCompatibility(/* isActive */ mFrpActive);
             }
             return true;
         }