Jump to content


Photo

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

- - - - -

  • Please log in to reply
4 replies to this topic

#1
iserlohn

iserlohn

    Newbie

  • Members
  • Pip
  • 16 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 ];
	then
		busybox cp -a /system/sd/data/* /data/data/;
		busybox rm -rf /system/sd/data;
	fi;

Replaced with new section -
# move /data/data to /system/sd
	if [ -d /data/data ];
	then
		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/*;
	else
		# make the mountpoint
		mkdir /data/data;
		busybox chown 1000:1000 /data/data;
		busybox chmod 771 /data/data;
	fi;

	# mount /system/sd/data if available
	if [ -d /system/sd/data ];
	then
		busybox mount -o bind /system/sd/data /data/data;
	fi;

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.

Attached Files


Edited by iserlohn, 26 November 2010 - 10:16 AM.

  • 0

#2
ultrabrite

ultrabrite

    Regular

  • Members
  • PipPip
  • 50 posts
  • Location:Rouen, France
  • Devices:G1, Hero, N1
great idea but it doesnt work, endless loop on boot. :P

  • 0

#3
iserlohn

iserlohn

    Newbie

  • Members
  • Pip
  • 16 posts

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...

  • 0

#4
Sjoller

Sjoller

    Newbie

  • Members
  • Pip
  • 2 posts
It worked for me.

It took a long time booting first time, but I guess copying stuff around takes time.

Thanks!

Regards
Sjoller

  • 0

#5
sinlos

sinlos

    Newbie

  • Members
  • Pip
  • 1 posts
  • Devices:HTC Desire
  • Twitter:@sinlos
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...

  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users