[SCRIPT][CM7/9] /datadata/ low storage notification lagless fix - init.d script
Hello fellow I9000 users.
tl;dr - This fixes your low storage notification problems just by flashing it on CWM.
First of all, I'd like to inform you that this post is a compilation of the work done by drafnel on the CyanogenMod forums, revthanki on the XDA-Developers forum, and as such I take little to no credit in it, as all I've done was ask for drafnel to help me in the cleanup code for me to put it in a flashable zip.
Also, as you should know, you take full responsability
should data loss or other kinds of damage occur.
Lot's of people have encountered the problem where their /datadata partition fills up and then apps begin force closing. This is often confusing since there is usually a lot
of space available on the internal 2GB storage partition. But these are two different partitions on cyanogenmod. The created the datadata partition on the fast internal memory so that apps would start up and run faster (i.e. less lag), but it is only about 170MB (which can't be helped).
One thing that can be done is to move the contents of /datadata onto the 2GB /data partition. That will solve the space problem, but then you have the lag problem. So, what we need is for the files that take up a lot of space to reside on the 2GB partition and the files that are accessed frequently by an app to reside an the fast 170MB partition. The files that are accessed often, or that affect app startup speed are the sqlite database files and the xml preferences files. These reside in the databases and shared_prefs sub-directories in each app directory. Drafnel has written a script to perform these operations.
How to use it?
- Samsung Galaxy S based phone (GT-I9000, Vibrant, Fascinate, Captivate, etc.)
- Kernel that supports init.d scripts
As you would flash a ROM update or a Kernel:
- Download the file to your sdcard.
- Reboot your phone into CWM.
- Choose 'install zip from sdcard', and choose the script from there.
It will run on boot everytime. It's pretty light so your total boot time shouldn't suffer. It will only do the operations if they are needed, and it will clean up after itself. No need to worry about broken links or stale resources.
What it actually does?
On every boot:
Other stuff to watch out for
- Runs a check to see if /data/data is still symlinked to /datadata/
- Moves everything that isn't performance critical from /datadata/ to unlinked /data/data/
- Cleans up old databases from uninstalled apps
- Titanium Backup users should tick the Preferences > Troubleshooting settings > Follow all symbolic links option
- SlimICS users should follow this procedure
- First working release.