diff options
| -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 9b0caf561544..f98076ab41e4 100644 --- a/services/core/Android.bp +++ b/services/core/Android.bp @@ -250,6 +250,7 @@ java_library_static { "aconfig_new_storage_flags_lib", "powerstats_flags_lib", "locksettings_flags_lib", + "MmdProperties", "mmd_flags_lib", "profiling_flags_lib", "android.adpf.sessionmanager_aidl-java", diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 49ab8ecb204b..350ecab1dd5f 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -127,6 +127,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; @@ -935,21 +936,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") @@ -983,7 +984,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); |