Android - How to adjust the threshold for the "storage low" event?

Low storage threshold is the minimum value of the two:

  • sys_storage_threshold_percentage (default is 5%, was 10% on Android 7 and older). It's multiplied with the total storage size to get threshold value in bytes. This setting is there since the early days of Android.
  • sys_storage_threshold_max_bytes (default is 500 MiB). This setting was added in Android 4.

In JellyBean both settings were moved from secure namespace to global. And the logic to calculate low threshold was moved from DeviceStorageMonitorService to StorageManager.

If the 5% of total space on /data is greater than 500 MiB, the threshold is always 500 MiB. In order to set the threshold to even smaller value, e.g. to 100 MB:

~$ settings put global sys_storage_threshold_max_bytes 100000000