Friday, May 23, 2014

Fwd: Android Storage: What Nobody Bothered To Tell You

This is the information I have been searching for a long times !!

But you must know your own phone, which is different from author


Homo Ludditus

Android Storage: What Nobody Bothered To Tell You




My experience with Android only dates from end-November 2011 (heck, I'm a Luddite, I resisted the temptation!). And it's still mostly Gingerbread-based.
Therefore, I was surprised to read in several Android forum and websites that people were complaining for not being able to move apps to the SD card on Android 4.0 ICS and 4.1 JB devices ([1], [2], [3], [4], [5]): I was used from Gingerbread that I could use the App2SD built-in mechanism (no need of an external app) to move apps to the SD!
Sure thing, apps wouldn't move entirely on the SD, but in most cases at least 40-50% of the space that used to take from the internal storage would be taken from the SD, and in the happiest situations, up to 80-90% of the app would move out of the internal storage.
So, what's the deal with Android ICS and newer? Is it a regression? Let's try to explain the real situation.
Prior to Android 4.0 (up to and including Gingerbread 2.3, as 3.0 was for tablets), phones were typically having this storage layout:
  • "internal storage" (fast, eMMC), often limited to a meagre 150…160 MB, sometimes up to 1…2 GB or more. Apps would install here. Apps also create cache and data here.
  • "SD card" (optional, assumed to be external). People would add microSD cards to be able to store music, pictures, videos. Since Android 2.2 Froyo, there is a built-in "apps2sd" mechanism that allows moving apps partially to the SD card. Data created by apps as part of the initial installation (from APK) usually cannot be moved. Many apps that require downloading of extra data files post-install (not from Google Play), such as dictionaries, games, etc., usually know to save such data on the SD card, if present. If you check /system/etc/vold.conf (or vold.fstab), the card is mounted under /mnt/sdcard.
Now, not only that apps cannot be moved entirely on SD, but the built-in "apps2sd" mechanism also has a limit of how much it can keep outside the "internal storage". I couldn't find any documentation on that, but on a cheap LG phone, Quick System Info PRO reported a 236 MB limit:
A2SD storage: an annoying limitation
This issue can be workarounded, on rooted devices, by creating a supplementary ext2 partition on the SD card, then useLink2SD; to move apps on that extra partition. When using apps such as ROM Manager, this partition is limited to 512 MB — so in my case I could only get about 160 + 236 + 512 = a maximum of 908 MB for apps.
Obviously, those cheap Gingerbread phones are very limited, and Google makes them practically useless nowadays, as forced updates of Google Play, GMail, Maps, YouTube, Google Talk (now Hangouts), plus the addition of Google Play services take about 50 MB of "internal storage". Unless the phone is rooted, these updates to system apps cannot be integrated into ROM byTitanium Backup.
Now, even under Gingerbread, there were phones with 8…16 GB of ROM.  After subtracting the memory taken by the firmware, was the available space entirely partitioned as a unique "internal storage"?
Typically, no. Because of the costs, eMMC chips are usually not larger than 4 GB, therefore the rest of the storage was a sort of an "internal SD" card. Some such phones (or tablets) don't even support an additional SD card, but when they do, here's what their storage layout:
  • "internal storage", usually less than 2 GB. Apps would go here by default.
  • "internal SD" (oftentimes labeled "phone storage"), the rest up to the limit of the available storage space. Mounted as/mnt/sdcard. Apps can be moved here (some even install here by default). Of course, this is the place where your photos and media files would go.
  • "external SD", if the device supports SD cards, and if one is inserted. Mounted as /mnt/sdcard-ext/mnt/sd_external or/mnt/external_sd. Apps CANNOT be moved here! Media files can be saved here though.
Here's the storage of a cheap "8GB" Android 4.0 tablet: 1.15 GB of "internal storage", plus 5.78 GB of "internal SD" (for a total of 6.93 GB):
chep_tablet_storage
NOTE: The above screenshot is taken from a tablet. On a phone, the second "Internal Storage" would have been labeled"Phone Storage".
The problem with today's Android devices — being them 4.0 ICS or 4.1-4.2 JB — is that they're inconsistent in the way the internal and external SD partitions are used:
  • some devices are using a "unified" internal storage (à la iOS): a single partition for everything, and no external SD card supported (Nexus 3, Nexus 4);
  • some devices are using a "unified" internal storage, and when a SD card is added, it can only used for media files (apps cannot be moved there);
  • some devices are using a "unified" internal storage, but when a SD card is added, apps too can be moved there — the card is mounted as "internal SD";
  • some devices are having "internal storage" + "internal SD", and when a SD card is added, it can only used for media files (apps cannot be moved there);
  • some devices are having "internal storage" + "internal SD", but when a SD card is added, apps too can be moved there – the "internal SD" is actually mounted so that Android believes it's "external SD", and apps cannot be moved there, but an added SD card is mounted as "internal SD", so apps can be moved to it!
The last variant is a nice hack, as it allows for cheaper internal storage (split in 2 partitions), yet the space for apps can be extended through the addition of a SD card. Some HTC and Huawei devices hack Android to do that. In contrast, Samsung and LG are known to use the 4th approach — apps cannot be moved to the external SD card (Samsung has currently started deploying firmware updates that would change this for some devices).
I've made a research for some current models on the market, and in some cases I have double-checked on forums that the storage model for the investigated models are as follows:
Sony Xperia Z (5″, 4.1.2, 530…580 €)
  • 11.73 GB available (out of nominally 16 GB)
  • unified internal storage
  • will not install on external SD
Sony Xperia SP (4.6″, 4.1.2, 310…330 €)
  • 5.37 GB available (out of nominally 8 GB)
  • unified internal storage
  • will not install on external SD
SGS4 (5″, 4.2.2, 570…630 €)
  • 7.65 GB available (out of nominally 16 GB)
  • unified internal storage
  • will not* install on external SD
  • *a firmware update should allow apps to be moved to external SD as well (GT-I9505)
SGS3 (4.8″, 4.0.4/4.1.2, 440…490 €)
  • 10.94 GB available (out of nominally 16 GB)
  • unified internal storage
  • will not install on external SD
SGS3 Mini (4″, 4.1.1, 270…290 €)
  • 4.54 GB available (out of nominally 8 GB)
  • unified internal storage
  • will not install on external SD
SGS2+ (4.3″, 4.1.2, 280… 315 €)
  • 3.94 GB available (out of nominally 8 GB)
  • unified internal storage
  • will not install on external SD
HTC One (4.7″, 4.1.2/4.2.2, 599 €)
  • 25.3 GB available (out of nominally 32 GB)
  • unified internal storage
  • will not install on external SD
HTC One X 32 GB version (4.7″, 4.0.4/4.1.1, out of production)
  • confusingly reports 25.24 GB available, but also 6.76 GB for applications, of which about 5.4 GB are already used with 4.1.1 (25.24 + 6.76 sum to the nominally 32 GB), so in fact it has:
  • about 1.36 GB internal storage + 25.24 GB internal SD
  • will not install on external SD
LG Optimus G (4.7″, 4.1.2, 499 €)
  • 25.04 GB available (out of nominally 32 GB)
  • apparently unified internal storage (could not check the device)
  • will not install on external SD
LG L9 (4.7″, 4.0.4/4.1.2, 499 €)
  • 2.33 GB available (out of nominally 4 GB)
  • unified internal storage
  • will not install on external SD
  • quite a shame for such a price!
LG L5 II (4″, 4.1.2, 170…190 €)
  • 2.10 GB available (out of nominally 4 GB; sites who report 1.4 GB available must have reviewed a unit with lots of carrier bloatware added)
  • unified internal storage
  • will not install on external SD
Orange San Remo (4.7″, 4.1.2, 199 €)
  • 2.10 GB available (out of nominally 4 GB)
  • unified internal storage
  • will not install on external SD
Orange Nivo (4″, 4.1.2, 105 €)
  • 744 MB internal storage + 1.6 GB internal SD (out of nominally 4 GB)
  • will not install on external SD
Xperia J (4″, 4.0.4/4.1.2, 190…205 €)
  • 754 MB internal storage + 2.01 GB internal SD (out of nominally 8 GB)
  • will not install on external SD
Huawei Ascend Mate (6.1″, 4.1.1, 309…329 €)
  • 4.56 GB available* (out of nominally 8 GB)
  • unified internal storage*
  • can change the default storage for apps, but without an added SD card, only "Internal storage" can be selected
  • will install on external SD card (which will be mounted as "internal SD")
Huawei Ascend G510 (4.5″, 4.1.1, 165…184 €, single-SIM EU variant)
  • 2.16 GB available (out of nominally 4 GB), but mentioning "only 1.12 GB available for applications"
  • so it's actually 1.12 GB internal storage + 1.04 GB internal SD (out of nominally 4 GB), not unified
  • can change the default storage for apps, but without an added SD card, only "Internal storage" can be selected
  • the second 1 GB internal partition is mounted as "external SD"
  • will install on external SD card (which will be mounted as "internal SD")
Huawei Ascend Y300 (4″, 4.1.1, 129…149 €)
  • 2.16 GB available (out of nominally 4 GB), but mentioning "only 1.12 GB available for applications"
  • so it's actually 1.12 GB internal storage + 1.04 GB internal SD (out of nominally 4 GB), not unified
  • can change the default storage for apps, but without an added SD card, only "Internal storage" can be selected
  • the second 1 GB internal partition is mounted as "external SD"
  • will install on external SD card (which will be mounted as "internal SD")
Huawei Ascend G615 (4.5″, 4.1.1)
  • 5.29 GB available* (out of nominally 8 GB)
  • unified internal storage*
  • will install on external SD
Huawei Ascend G700 (5″, 4.2.1)
  • 5.2 GB … 5.74 GB available* (out of nominally 8 GB), depending on the version (G700-U00, G700-U10, G700-U20) and country
  • unified internal storage*
  • will install on external SD
Orange Yumo = Huawei Ascend G740 (5″, 4.1.2, 249 €)
  • about 5.5 GB available* (out of nominally 8 GB)
  • unified internal storage*
  • will install on external SD
Huawei Ascend P6 (4.7″, 4.2.1)
  • 4.7 GB available* (out of nominally 8 GB)
  • unified internal storage*
  • will install on external SD
Philips Xenium W832 (4.5″, 4.0.4, 225 €)
  • 503 MB internal storage (out of nominally 4 GB)
  • plus 2.05 GB mounted as "external SD" (so apps cannot be installed here)
  • adding a SD card will mount it as "internal SD", so apps can be installed on it
Philips Xenium W6500 (4.3″, 4.2.2, 225 €)
  • 1.3 GB internal storage (out of nominally 4 GB)
  • unified internal storage
  • adding a SD card will mount it as "internal SD", so apps can be installed on it
Philips Xenium W8510 (4.7″, 4.2.2, 270 €)
  • 1.73 GB internal storage, of which only 0.98 GB available for applications (out of nominally 4 GB)
  • so it's actually 0.98 GB internal storage + 0.75 GB internal SD, not unified
  • adding a SD card will mount it as "internal SD", so apps can be installed on it
Philips Xenium W8560 (5″, 4.2.2, 420 €)
  • 1.97 GB internal storage + 26.28 GB "Phone storage"  (out of nominally 32 GB)
  • can install apps in the "Phone storage" partition
  • will not install on external SD
Alcatel One Touch Idol Ultra (4.65″, 4.1.1, 269 €)
  • 13.08 GB available (out of nominally 16 GB)
  • apparently unified internal storage
  • no SD card supported
Alcatel One Touch X'Pop (4.5″, 4.0.4/4.1.1, 149 €)
  • 1.37 GB internal storage (out of nominally 4 GB)
  • plus 0.97 GB mounted as "external SD" (so apps cannot be installed here)
  • adding a SD card will mount it as "internal SD", so apps can be installed on it
Orange Hiro = Alcatel One Touch Idol Mini (4.3″, 4.2.2, 125€)
  • 2.05 GB available (out of nominally 4 GB)
  • unified internal storage
  • will install on external SD
Oppo Find 5 (5″ FullHD, 4.1.1, 399 € for 16 GB, 429 € for 32 GB)
  • 1.97 GB internal storage + 10.81 GB internal SD (for the 16 GB model)
  • no SD card supported
ThL W11 Monkey King (5″ FullHD, 4.2.1, $310 for 2 GB RAM, 32 GB ROM, $260 for 1 GB RAM, 16 GB ROM)
  • 2.66 GB internal storage + 27.47 GB internal SD (for the 32 GB model)
  • 2.66 GB internal storage + 10.99 GB internal SD (for the 16 GB model)
  • does not support a SD card
ThL W8 Beyond (5″ FullHD, 4.2.1, $260)
  • 3.94 GB internal storage + 9.83 GB internal SD (out of nominally 16 GB)
  • will not install on external SD
ThL W8+ (5″ FullHD, 4.2.1, $250)
  • 0.98 GB internal storage + 12.83 GB internal SD (out of nominally 16 GB)
  • will not install on external SD
ThL W8S (5″ FullHD, 4.2.1, $280)
  • 3.94 GB internal storage + 24.28 GB internal SD (out of nominally 32 GB)
  • will not install on external SD
UMI X2 (5″ FullHD, 4.2.1, $300 for the 2 GB RAM + 32 GB ROM version)
  • 1.48 GB internal storage + 26.77 GB internal SD (out of nominally 32 GB)
  • will not install on external SD
Xiaomi MI-2/MI-2S/MI-2A (4.3″/4.3″/4.5″, 4.1.1, RAM 2/2/1 GB, ROM 16-or-32/16-or-32/16 GB)
  • 16 GB models: 3.45 GB internal storage + 9.37 GB internal SD
  • 32 GB models: 3.45 GB internal storage + 23.56 GB internal SD
  • no SD card supported
Xiaomi Hongmi (Red Rice) WCDMA version (4.7″)
  • 1.96 GB internal storage + 0.76 GB internal SD (out of nominally 4 GB)
  • will not install on external SD
Acer Liquid E2 Duo (4.5″, 4.2.1, 200 €)
  • 0.98 GB internal storage + 1.64 GB internal SD (out of nominally 4 GB)
  • will not install on external SD
  • quite a shame for a 2013 model!
For the devices that cannot move apps to the (external) SD, some hacks are available if you root the device. Apps such as Root External 2 Internal SDMounts2SD, or GL to SD; can do what the manufacturer of a device didn't bother to: mount the external SD as "internal SD", and, if needed, declare the "internal SD" partition as external. Custom ROMs exist sometimes for the same reason. Or you can just edit /system/etc/vold.conf (or vold.fstab).
Now, to cheer up, let's watch an educational video issued by Huawei and demoed on the new 6.1″ Ascend Mate:
Bottom line: ALL the smartphone reviewers are incredibly stupid and ignorant not to check and mention how much storage space is available for installing apps, and whether this can be extended or not (mostly not, nowadays) by the addition of a micro SD card!
__
P.S.: I hate it when I see the "internal SD" part of the internal storage (usually in phones who don't support a SD card) labeled or called "USB storage". It's never "USB storage", but a moronic way of saying "this is the part where you can transfer files to and from via the micro-USB cable".
CLARIFICATION FOR THE UNDERBRAINED: When in the management screen for an app you see the storage occupied with the following lines:
  • Total
  • App
  • USB storage app
  • Data
  • SD card
and a button "Move to SD card", what happens if you tap that button is that parts of the app are moved… to "USB storage", because "SD card" is the external SD card, not the 2nd internal partition!
To avoid this limitation (an external SD card can have 32 GB or even 64 GB), some ROMs are hacked to mount the external SD as "USB storage", and the 2nd internal partition is mounted as if it were an external SD! Android will NEVER be able to install or move apps in more than ONE extra partition in addition to the first internal partition!
__
*IMPORTANT NOTE (OCT. 2013):
The Huawei phones marked with* (Mate, G615, G700, G740, P6) do not have in the system information screens a note like some other models (G510, Y300) saying "only 1.12 GB available for applications", however they might have a similar limitation of about 1 GB for apps, despite the storage looking like unified!
On a Huawei Ascend G700, Quick System Info PRO reports a so-called "System storage" (that is nowhere explained) of 0.99 GB, of which 270 MB are free. Depending on how they define the GB, this suggests 730…744 MB being taken by some apps, however the phone reports only 547 MB as taken by apps:
huawei_g700_info1
LATE EDIT — FALSE ALARM: I guess I am just paranoid. I've installed ~300 MB worth of new apps, the "free internal storage" dropped from 3.43 GB to 3.13 GB, yet the "System storage" still reads the same "0.99 GB / 270 MB free"! So I guess it's just some irrelevant and fake thing reported by Android.
Could Android storage be more confusing than that?
JANUARY 2014 NOTES: I have removed some previous remarks (with screenshots) which incorrectly claimed that on some Huawei phones, moving an app to SD wouldn't have moved it to the actual external SD (/storage/sdcard1), but would still keep it in the internal storage (/storage/sdcard0). I have been fooled by the fact that the access to /storage/sdcard1/.android_secureis denied to file managers — but connecting the phone to a PC made it possible to look into that folder and see the ".asec" files.
So no, Huawei's phones are not more confusing that other phones!
I have also discovered that indeed, there is no hidden limitation to install apps into phones such as Huawei G700 (and other models that do not report "only 1.12 GB available for applications"). At some point, where the free internal storage was exactly 0.98 GB, I've got that infamous message from Google Play: "insufficient storage available". It was however just a bug — and another false alarm –, because after I rebooted the device, I could continue to install apps!
As a matter of fact, I've installed 253 appscompletely into the internal storage, having left only 560 MB free! I knew from the times I was using a Gingerbread phone with 153…159 MB of internal storage that 10% of the space is reserved, so the "insufficient storage available" message appeared as soon as less than 16 MB were free, but I am not sure about the settings in Android 4.2.1: 560 MB is less than 10% of the total of 5.74 GB really available (from the nominal 8 GB), yet the system allowed me to do that!
storage1storage2
■ Note how the system reports as "Apps" only 0.95 GB — the app data is part of the "Misc" (3.73 GB), despite the claims to the contrary!
In the meantime, because the 9 biggest apps, with space needs between 94 MB and 160 MB, took 1.1 GB, I've moved (parts of) them to the SD card, to gain some more internal space, and I will uninstall a few more apps when I won't be needing them anymore. It's a good idea to keep at least 1 GB of free internal storage.
■ Oh, moving apps on the SD card won't reveal any new category in the "SD CARD" space report — only the "Available" space will decrease. I'd have liked to have the space counted for the /storage/sdcard1/.android_secure folder…
■ As a matter of fact, it's not clear to me why a practically unified internal storage still has to mimic a 2-partition model — the entire available internal storage is mounted via fuse as /storage/sdcard0, so that an added SD card would become/storage/sdcard1. Of course, on non-rooted systems, some files need not be accessible via a file manager, so they're considered as part of a "system storage" (the 0.99 GB one, which seem to always have 277 MB free, no matter what I do), but still, why make things complex when they can be kept simple?








--
Tin KOH S. N.
+65       9663 9353
+86 136 0001 9353 

1 comment:

  1. I have read all of the above and have found it very enlightening. Except for one thing. Can I use a 64 GB SanDisk Ultra PLUS microSDHC in my Huawei Ascend Mate2 4G Android smartphone w/o doing any damage to either and will the phone use all 64 GB of additional memory??? Thank you.

    ReplyDelete