2

After rooting and installing link2sd on my HTC Explorer, I still have low memory issues.

On Google Play, I can't download apps larger than 10-15M. This is because the /cache folder is in the internal memory, which is desperately small. In my version, Google Play writes directly in /cache, not in subfolders.

Using adb as root, I deleted /cache and created a symlink /cache -> /mnt/sdcard/cache. This is fine, but when I reboot the phone the symlink is replaced by the old folder.

Is there a proper way to solve this issue once and for all?

Thanks for any hint, A

1
  • Theoretically using busybox's runparts, and issue this mount -o bind /mnt/sdcard/cache /cache... this is in theory as have never tried it...
    – t0mm13b
    Jan 3, 2013 at 21:02

2 Answers 2

1

Alas, that's not possible.

At least not without reflashing the HTC's partition table (which happens to be in the bootloader section, aka. hboot). There's seemingly no modded hboot out there for the explorer. I only know of repartitioned hboots for the HTC Desire.

Reason:
/cache is backed by a separate block device on all Android devices(i.e. mount-point or partition), it's needed to hold firmware update files (e.g. definitely needed for encrypted phones). So if you move it, there's no gain because that partition will still be there and not free up space for the /data partition. In case you shrink the /cache partition, OTA updates will not be possible any more (you'd have to use a custom recovery to do it).

4
  • Thanks for clarification -- wasn't aware of that speciality of the Explorer. I will still leave my answer there (though adding a note) for non-explorers exploring our site :)
    – Izzy
    Jan 3, 2013 at 13:21
  • EDIT: All Android devices have a /cache partition (it's needed to hold firmware update files for upgrading Android, especially on encrypted devices this is a must, when the recovery must access the firmware file in clear text).
    – ce4
    Jan 3, 2013 at 13:33
  • It's (been) dreadful. Google did hard work to change it with Android 4.0+, so it's not a problem on recent devices any more. Read some background here: androidpolice.com/2011/11/18/…
    – ce4
    Jan 3, 2013 at 13:40
  • Sorry, I somewhat misread your Q (I know it has only a 90MB /data partition): You can of course automate the symlinking on boot: stackoverflow.com/questions/7873615/…
    – ce4
    Jan 3, 2013 at 13:45
2

You might want to take a look at DirectoryBind, which was developed for things like this. It takes care for the user-configured "mounts" at boot-time and also on-demand, so nothing should "disappear" on a boot.

Basically, it is intended to map things from internal/phone storage to external/sd storage -- especially for cases like yours, were internal memory is running low.

NOTE: According to ce4's answer, this method will not bring any profit concerning the /data folder, as /cache is using its own partition (this seems to apply to all Android devices -- checked with 7 different devices from 5 different manufacturers; according to ce4 this is especially needed on encrypted devices, as an unencrypted partition is required to store firmware updates onto for execution). So if your concern is increasing storage on /data, this won't do with /cache. But if you simply need more space in /cache, it should be perfectly fine. You could then use the original block device (where /cache was pointing to) for something else ;)

NOTE2: AFAIK Google Playstore uses /data/local to buffer its downloads. On most devices, this should only be a directory on the /data partition, and thus could easily be handled by DirectoryBind.

Additional hint: check with the df command from within a terminal whether the directory you want to move from internal to external storage is using a separate partition or not.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .