I recently became annoyed with my phone when I tried to shift some music onto it. It downloaded a few songs and then it stalled. “Out of space” or somesuch. I knew I had a 32gb card in there and not nearly that much music, so I was a little surprised. Anyways after a little investigation I found that the phone had two mount points named sdcardX, namely:
which is not ideal, especially since /storage/sdcard0 is not actually an sdcard, or at least it’s not replaceable. I’m sure this made sense to someone at some point thinking, “oh, well internal memory is faster so we’ll just emulate an sdcard and that’ll be swell”. And it is, until someone (me) decides to save a bunch of data that doesn’t require fast access to the sdcard. Because the internal 4.5 gb, which already has some photos and dropbox & app backups & …, quickly runs out of room when you try to put a music library that easily fits onto a 32 gb card in the remaining space. So I spent a little bit of time trying to figure out how to mount the external card in a way so that amazon music or google music would save music there. I got some leads, which suggested modifying the fstab (file which tells where to mount which things), but my fstab didn’t look at all like the ones that they were describing, so I was left in the void.
Eventually, after much futzing around, I discovered a solution. Not an ideal solution, but a passable one. Namely after the system boots use tasker to run a shell command which mount/bind’s the external sd card to the mountpoint of the internal one. On the downside you do lose the 4.5gb internal space, or at least it becomes much less accessible. On the upside this phone comes with a 32gb card I believe, and according to reports despite it being not officially supported it should work with up to a 64gb card (128gb micro cards aren’t available at the moment, so no news there). So you’re trading
4.5gb + 16/32/64 gb half working storage for
4.5gb less than half working storage + 16/32/64gb
which seemed fair to me.
How it’s done.
1) your phone must be rooted
2) get tasker. It’s a paid app, only a few bucks and totally worth it. I have it toggle my wifi off when I’m somewhere I can’t connect so it’s not futilely scanning for a signal nonstop. I also have it go into airplane mode overnight, saves a bunch of battery, and prevents the phone from waking me up (I don’t plug my phone in every day).
3) make a new task and make it run a shell command using root permissions, and the command is “mount -o bind /mnt/external1 /storage/sdcard0” then make a new task & add the context at boot (new task -> event -> system -> device boot) & add the task you just created.
The next time you boot your phone if you go to applications/storage you’ll see that where it says internal storage you have 16/32/64gb available. Though you’ll also see the exact same amount reflected in the sdcard storage. A decent trade in my opinion.
Before doing all this you might want to copy the data from your internal partition onto the sdcard (which I did for all my data, photos and so on), but for apps I found it worked a little better to just uninstall/reinstall. And on reinstall everything will be written to the sdcard properly.