Jump to content

A2SD+ plus /data/data - Moves all application data to SD card

Recommended Posts

Some us noticed that after a2sd+ (sd-ext) you still have flash usage on your data partition. This is because /data/data contains resources for many applications and this directory remains on the internal flash even after a2sd+. I have tried to gather as much evidence on why /data/data should be left onthe internal flash, and it seems that there is no concrete reports of problems on recent ROMs.

So the natural thing is to try it myself. Using the a2sd+ script from my Modaco ROM, I added the following lines replacing the old section that disabled /data/data on the SD card -

Old section -

	# don't allow /data/data on sd because of upgrade issues - move it if possible

	if [ -d /system/sd/data ];


		busybox cp -a /system/sd/data/* /data/data/;

		busybox rm -rf /system/sd/data;

Replaced with new section -
	# move /data/data to /system/sd

	if [ -d /data/data ];


		mkdir /system/sd/data;

		busybox chown 1000:1000 /system/sd/data;

		busybox chmod 771 /system/sd/data;

		busybox cp -a /data/data/* /system/sd/data/;

		busybox rm -rf /data/data/*;


		# make the mountpoint

		mkdir /data/data;

		busybox chown 1000:1000 /data/data;

		busybox chmod 771 /data/data;


	# mount /system/sd/data if available

	if [ -d /system/sd/data ];


		busybox mount -o bind /system/sd/data /data/data;


So far, I've been able to install, remove and upgrade applications (even system ones) without any issues. The final a2sd+ plus /data/data script is attached.

Using this script allows you to theoretically install as many applications as Android would allow, as you can keep a massive ext3 partition on your SD card (up to 32GB). A Transcend 8GB class 6 was used for testing and performance is good. Will try this in a 16GB Kingston Class 4 in the future to see how it would perform.

To install the attached script -

./adb push 40a2sd /etc/init.d/

./adb shell chown 0:2000 /etc/init.d/40a2sd

./adb shell chmod 755 /etc/init.d/40a2sd

When you upgrade the ROM you will need update the script as well. You should be able to replace the 40a2sd script in the ROM zip. This is because when the original script detects a /system/sd/data directory, it automatically copies this back to /data/data and will most likely run out of space.

I'll look into putting this in update.zip format when I have time to test it.


Edited by iserlohn

Share this post

Link to post
Share on other sites
great idea but it doesnt work, endless loop on boot. ;)

Were you running A2SD+ before installing the script? Maybe you can post the adb logcat...

Share this post

Link to post
Share on other sites

I've tried this solutions. I can't understand the reason, but after it the phone works tooo slowly :) I mean every action like touching a screen or running an applications might take you saconds or minutes. Every time after reboot desktop widgets are loading for a long time. I have 32Gb kingston sd-card, class 4. May be it is abnormal? But I wasn't able to understand which process or application is bottle neck. Is it possible to debug somehow?

BTW now I think about moving not all "data/data", but only the biggest dirs from "data/data" to sd and link them manualy...

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now