diff options
| author | 2025-02-04 17:09:17 -0800 | |
|---|---|---|
| committer | 2025-02-04 17:09:17 -0800 | |
| commit | 1f1a5d501d5ba07990b6aaf94eba2792095cb7af (patch) | |
| tree | 0363c745eea3486fb737200a96415c5e3d5a8b34 | |
| parent | 7c7c3923cea3611625e8ff88564222e2e96e4dde (diff) | |
| parent | 632e81ae1045bd571aa800e0aedc2ebefba17ee5 (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.bp | 1 | ||||
| -rw-r--r-- | services/core/java/com/android/server/StorageManagerService.java | 29 |
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); |