An LSPosed/Xposed module that makes the Android Settings Storage page show the real /data filesystem size instead of rounded retail storage capacity.
This is useful on repartitioned devices, including dual-boot setups, where Settings may incorrectly display values such as 256 GB even though the actual Android userdata partition is much smaller.
This module hooks the storage size calculation used by Settings and returns the real filesystem values from /data.
Current hook targets:
android.app.usage.StorageStatsManager#getTotalBytes(UUID)android.app.usage.StorageStatsManager#getFreeBytes(UUID)com.android.settingslib.deviceinfo.StorageManagerVolumeProvider#getTotalBytes(...)com.android.settingslib.deviceinfo.StorageManagerVolumeProvider#getFreeBytes(...)
- Redmi K20 Pro / Mi 9T Pro (
raphael) - LineageOS 21 based third-party builds
- Repartitioned / dual-boot device layouts
Enable the module only for:
com.android.settings
Do not enable it for system unless you are debugging.
- Root
- Zygisk
- LSPosed (or compatible Xposed environment)
- This module is designed to show the real
/datafilesystem size. - Android may still format file sizes in decimal units, so a partition often called
128Gin modding communities can appear as about138 GBin Settings. - This module does not force a fake
128 GBlabel. It shows the real byte-based size.
This repository includes a GitHub Actions workflow.
To build:
- Push changes to
main, or - Open Actions → Build APK → Run workflow
The generated APK will be available in the workflow artifacts.
- Download the generated APK
- Install it on the phone
- Enable the module in LSPosed
- Scope it to
com.android.settings - Force stop Settings or reboot
The module logs only:
- module load
- hook install result
- first hit of each active hook
- final hook summary
This module only changes how Settings reads and displays storage values. It does not repartition storage and does not modify the actual filesystem size.
