I'm using OSMDroid and trying to figure how much space I have on a device for offline tile storage. The device is a Samsung SM-T530NU. It shows the following information:
Storage
Total space
Total device capacity
16.000GB
Owner
System memory
The minimum amount of storage space required to run the system.
4.05GB
Used space
The amount of storage space currently being used.
7.86GB
Cached data
0.93GB
Miscellaneous files
The amount of memory used to store miscellaneous files.
1.81GB
Other users
John Doe
121MB
Available space
The amount of storage space currently available
1.35GB
So if I calculate the total amount not used:
16GB - (7.86GB + 0.93GB + 1.81GB + .121GB) = 16GB - 10.721 = 5.279GB
Yet the available space is listed as 1.35GB. Where is the other 3.929GB?
Storage device manufacturers measure capacity using the decimal system (base 10), so 1 gigabyte (GB) is calculated as exactly 1,000,000,000 bytes.
Storage capacity is measured by a prefix to the B (byte) to represent a specific amount, ie K (Kilobyte), M (Megabyte), G (Gigabyte), T (Terabyte) etc. Since all computers are based on the binary system, these prefixes represent base 2 amounts. Each level is an increment of 2 to the 10th power or 1,024.
The common prefixes are as follows:
The capacity of storage in your device is measure using this decimal system. Based on this, for each Gigabyte that a drive manufacturer claims, they are over reporting the amount of disk space by 73,741,824 Bytes or roughly 70.3 MB of disk space.
So, if a manufacturer advertises an 80 GB (80 billion bytes) hard drive, the actual disk space is around 74.5 GB of space, roughly 7% less than what they advertise.
Total space
Total device capacity
16.000GB -> 16,000,000,000/1024/1024 = approximately 15,259MB
Owner
System memory
The minimum amount of storage space required to run the system.
4.05GB -> 4,050,000,000/1024/1024 = approximately 3,862MB
Used space
The amount of storage space currently being used.
7.86GB -> 7,860,000,000/1024/1024 = approximately 7,496MB
Cached data
0.93GB -> 930,000,000/1024/1024 = approximately 887MB
Miscellaneous files
The amount of memory used to store miscellaneous files.
1.81GB -> 1,810,000,000/1024/1024 = approximately 1,726MB
Other users
John Doe
121MB -> 121,000,000/1024/1024 = approximately 115,4MB
Available space
The amount of storage space currently available
1.35GB -> 1,350,000,000/1024/1024 = approximately 1,287MB
So if I calculate the total amount not used: 15,259MB - (3,862MB + 7,496MB + 887MB + 1,726MB + 115,4MB) = approximately 1,173MB
Now the remaining value might not sound like a huge difference, but still has an approximation error.
My suggestion is to take a look at partitioning
$ adb shell cat /proc/partitions
major minor #blocks name
253 0 486272 zram0
179 0 15388672 mmcblk0
179 1 65536 mmcblk0p1
179 2 512 mmcblk0p2
179 3 1024 mmcblk0p3
179 4 512 mmcblk0p4
179 5 2048 mmcblk0p5
179 6 512 mmcblk0p6
179 7 1024 mmcblk0p7
179 8 512 mmcblk0p8
179 9 2048 mmcblk0p9
179 10 4096 mmcblk0p10
179 11 4096 mmcblk0p11
179 12 512 mmcblk0p12
179 13 512 mmcblk0p13
179 14 4096 mmcblk0p14
179 15 512 mmcblk0p15
179 16 512 mmcblk0p16
179 17 512 mmcblk0p17
179 18 512 mmcblk0p18
179 19 512 mmcblk0p19
179 20 512 mmcblk0p20
179 21 1024 mmcblk0p21
179 22 512 mmcblk0p22
179 23 6656 mmcblk0p23
179 24 6144 mmcblk0p24
179 25 512 mmcblk0p25
179 26 512 mmcblk0p26
179 27 1536 mmcblk0p27
179 28 1536 mmcblk0p28
179 29 6144 mmcblk0p29
179 30 6144 mmcblk0p30
179 31 10240 mmcblk0p31
259 0 8192 mmcblk0p32
259 1 24576 mmcblk0p33
259 2 24576 mmcblk0p34
259 3 16384 mmcblk0p35
259 4 16384 mmcblk0p36
259 5 16384 mmcblk0p37
259 6 57344 mmcblk0p38
259 7 32768 mmcblk0p39
259 8 3801088 mmcblk0p40
259 9 512000 mmcblk0p41
259 10 921600 mmcblk0p42
259 11 9814016 mmcblk0p43
259 12 4079 mmcblk0p44
179 32 4096 mmcblk0rpmb
The eMMC(mmcblk0) size is 15388672(1K-blocks) or approximately 15,028MB or 14.67GB
$ adb shell "ls -la /dev/block/bootdevice/by-name/"
total 0
drwxr-xr-x 2 root root 920 2015-12-31 22:31 .
drwxr-xr-x 4 root root 1000 2015-12-31 22:31 ..
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 DDR -> /dev/block/mmcblk0p13
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 OP -> /dev/block/mmcblk0p42
lrwxrwxrwx 1 root root 20 2015-12-31 22:31 aboot -> /dev/block/mmcblk0p5
lrwxrwxrwx 1 root root 20 2015-12-31 22:31 abootbak -> /dev/block/mmcblk0p9
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 boot -> /dev/block/mmcblk0p35
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 cache -> /dev/block/mmcblk0p41
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 config -> /dev/block/mmcblk0p22
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 devinfo -> /dev/block/mmcblk0p21
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 drm -> /dev/block/mmcblk0p29
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 eksst -> /dev/block/mmcblk0p19
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 encrypt -> /dev/block/mmcblk0p18
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 factory -> /dev/block/mmcblk0p38
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 fota -> /dev/block/mmcblk0p24
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 fsc -> /dev/block/mmcblk0p15
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 fsg -> /dev/block/mmcblk0p14
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 grow -> /dev/block/mmcblk0p44
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 keystore -> /dev/block/mmcblk0p17
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 laf -> /dev/block/mmcblk0p33
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 lafbak -> /dev/block/mmcblk0p34
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 misc -> /dev/block/mmcblk0p31
lrwxrwxrwx 1 root root 20 2015-12-31 22:31 modem -> /dev/block/mmcblk0p1
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 modemst1 -> /dev/block/mmcblk0p10
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 modemst2 -> /dev/block/mmcblk0p11
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 mpt -> /dev/block/mmcblk0p39
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 persist -> /dev/block/mmcblk0p32
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 raw_resources -> /dev/block/mmcblk0p27
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 raw_resourcesbak -> /dev/block/mmcblk0p28
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 rct -> /dev/block/mmcblk0p25
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 recovery -> /dev/block/mmcblk0p36
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 recoverybak -> /dev/block/mmcblk0p37
lrwxrwxrwx 1 root root 20 2015-12-31 22:31 rpm -> /dev/block/mmcblk0p4
lrwxrwxrwx 1 root root 20 2015-12-31 22:31 rpmbak -> /dev/block/mmcblk0p8
lrwxrwxrwx 1 root root 20 2015-12-31 22:31 sbl1 -> /dev/block/mmcblk0p2
lrwxrwxrwx 1 root root 20 2015-12-31 22:31 sbl1bak -> /dev/block/mmcblk0p6
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 sec -> /dev/block/mmcblk0p16
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 sns -> /dev/block/mmcblk0p30
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 spare1 -> /dev/block/mmcblk0p23
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 spare2 -> /dev/block/mmcblk0p26
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 spare3 -> /dev/block/mmcblk0p20
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 ssd -> /dev/block/mmcblk0p12
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 system -> /dev/block/mmcblk0p40
lrwxrwxrwx 1 root root 20 2015-12-31 22:31 tz -> /dev/block/mmcblk0p3
lrwxrwxrwx 1 root root 20 2015-12-31 22:31 tzbak -> /dev/block/mmcblk0p7
lrwxrwxrwx 1 root root 21 2015-12-31 22:31 userdata -> /dev/block/mmcblk0p43
But remember that is 14.67Gb is the disk size and not the file system capacity
The command df stands for "disk filesystem". With the -h option (df -h) it shows the disk space in "human readable" form
$ adb shell df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 950M 1.1M 949M 1% /dev
tmpfs 950M 0 950M 0% /mnt
/dev/block/bootdevice/by-name/system 3.5G 3.3G 141M 97% /system
/dev/block/bootdevice/by-name/cache 484M 576K 474M 1% /cache
/dev/block/bootdevice/by-name/userdata 9.1G 570M 8.5G 7% /data
/dev/block/bootdevice/by-name/persist 3.8M 152K 3.5M 5% /persist
/dev/block/bootdevice/by-name/modem 64M 55M 9.4M 86% /firmware
/dev/block/bootdevice/by-name/sns 1.8M 44K 1.7M 3% /sns
/dev/block/bootdevice/by-name/drm 1.8M 356K 1.4M 20% /persist-lg
/dev/block/bootdevice/by-name/mpt 27M 4.2M 23M 17% /mpt
/dev/block/bootdevice/by-name/OP 872M 488M 368M 58% /OP
tmpfs 950M 0 950M 0% /storage
/dev/fuse 9.1G 570M 8.5G 7% /storage/emulated
The device has 8.5G userdata available space as shown in the example above Please note that userdata partition size is 9814016(mmcblk0p43) and the file system size is 9610592(9.1G)
references: