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;
}