summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Shin Kawamura <kawasin@google.com> 2025-02-04 17:09:17 -0800
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2025-02-04 17:09:17 -0800
commit1f1a5d501d5ba07990b6aaf94eba2792095cb7af (patch)
tree0363c745eea3486fb737200a96415c5e3d5a8b34
parent7c7c3923cea3611625e8ff88564222e2e96e4dde (diff)
parent632e81ae1045bd571aa800e0aedc2ebefba17ee5 (diff)
Merge "Switch zram management based on mmd AConfig flag and mmd.zram.enabled system property" into main am: 632e81ae10
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3469369 Change-Id: I0865e4ea8da57789b348287e7dd9a2e35f1f0fb9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/Android.bp1
-rw-r--r--services/core/java/com/android/server/StorageManagerService.java29
2 files changed, 16 insertions, 14 deletions
diff --git a/services/core/Android.bp b/services/core/Android.bp
index 717a2d46be0b..47c600e398c3 100644
--- a/services/core/Android.bp
+++ b/services/core/Android.bp
@@ -243,6 +243,7 @@ java_library_static {
"aconfig_new_storage_flags_lib",
"powerstats_flags_lib",
"locksettings_flags_lib",
+ "MmdProperties",
"mmd_flags_lib",
],
javac_shard_size: 50,
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 441fe4f7723c..ebaf6bc95a5e 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -126,6 +126,7 @@ import android.provider.Downloads;
import android.provider.MediaStore;
import android.provider.Settings;
import android.service.storage.ExternalStorageService;
+import android.sysprop.MmdProperties;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.util.ArrayMap;
@@ -934,21 +935,21 @@ class StorageManagerService extends IStorageManager.Stub
// Start scheduling nominally-daily fstrim operations
MountServiceIdler.scheduleIdlePass(mContext);
- // Toggle zram-enable system property in response to settings
- mContext.getContentResolver().registerContentObserver(
- Settings.Global.getUriFor(Settings.Global.ZRAM_ENABLED),
- false /*notifyForDescendants*/,
- new ContentObserver(null /* current thread */) {
- @Override
- public void onChange(boolean selfChange) {
- refreshZramSettings();
- }
- });
- refreshZramSettings();
-
- if (mmdEnabled()) {
+ if (mmdEnabled() && MmdProperties.mmd_zram_enabled().orElse(false)) {
ZramMaintenance.startZramMaintenance(mContext);
} else {
+ // Toggle zram-enable system property in response to settings
+ mContext.getContentResolver().registerContentObserver(
+ Settings.Global.getUriFor(Settings.Global.ZRAM_ENABLED),
+ false /*notifyForDescendants*/,
+ new ContentObserver(null /* current thread */) {
+ @Override
+ public void onChange(boolean selfChange) {
+ refreshZramSettings();
+ }
+ });
+ refreshZramSettings();
+
// Schedule zram writeback unless zram is disabled by persist.sys.zram_enabled
String zramPropValue = SystemProperties.get(ZRAM_ENABLED_PROPERTY);
if (!zramPropValue.equals("0")
@@ -982,7 +983,7 @@ class StorageManagerService extends IStorageManager.Stub
// sole writer.
SystemProperties.set(ZRAM_ENABLED_PROPERTY, desiredPropertyValue);
// Schedule writeback only if zram is being enabled.
- if (!mmdEnabled() && desiredPropertyValue.equals("1")
+ if (desiredPropertyValue.equals("1")
&& mContext.getResources().getBoolean(
com.android.internal.R.bool.config_zramWriteback)) {
ZramWriteback.scheduleZramWriteback(mContext);