How to run applications off the sdcard (Updated 6/3/09)

Search This thread

dwang

Senior Member
Nov 23, 2008
2,453
318
DOES NOT WORK ON CUPCAKE 1.5. Try one of the other apps to sd card threads.


I decided to create a new thread for hacking a rooted g1 to allow applications to run from the sdcard. The original thread's instructions don't work without some modifications and the original poster doesn't seem to have the time to update it.

I'll try to keep the original post as up to date as possible as new information comes.

Prerequisites:

1. Rooted g1 with jesus freak version 1.30 or 1.31, 1.41 (rc30, rc33) Works with all rooted US, UK, international versions of the g1.

2. Have "adb" from the android sdk installed on your desktop machine.

Sdcard preparation:

Divide your sdcard into 2 partitions. The first partition should be FAT, the second partition should be EXT2. This can be most easily accomplished using a linux or mac machine. For windows, you can use "paragon partition manager 9" to do this. It will allow you to partition your sdcard and format the 2nd partition to ext2 fs. It is very important that the 2nd partition be formatted as EXT2 or the rest of the procedure will NOT work. The 2nd ext2 partition will be used to store your installed apps.

In the original thread, somebody mentioned a HP sdcard partition tool program, but I don't believe that will allow you to format the partition to EXT2 fs.

Procedure:

1. With the phone off, insert your newly partitioned sdcard into the g1.

2. Connect your g1 to your desktop via the usb cable and turn it on.

3. Backup your original mountd.conf and initrc.rc files from your g1 by running the following commands on your desktop from the cmd shell:

adb pull /system/etc/mountd.conf <dir on your desktop>
adb pull /system/init.rc <dir on your desktop>

4. Mount your g1's /system directory as writable via the desktop cmd shell:

adb remount

5. IMPORTANT! Create a /system/sd directory on your g1 via the desktop cmd shell:

adb shell mkdir /system/sd

adb shell ls /system and make sure that the directory has been created.

6. Download the attached modified mountd.conf and init.rc files to your PC.

7. Push the modified mountd.conf to your g1 via the desktop cmd shell:

adb push /<dir on your desktop of modified file>/mountd.conf /system/etc/mountd.conf

8. Push the modified init.rc to your g1 via the desktop cmd shell:

adb push /<dir on your desktop of modified file>/init.rc /system/init.rc

9. Reboot your g1

10. Connect to the g1 shell via the desktop cmd shell:

adb remount
adb shell

11. Check to see that the ext2 partition has been created and mounted:

busybox df -h

You should see a line that looks similar to this:

/dev/mmcblk0p2 1.2G 9.1M 1.1G 1% /system/sd

If you don't see this line, you didn't partition your sdcard correctly. STOP! Go back and do that.

12. From the G1 shell run the following cmds to copy your app and app-private directories from the internal g1 storage to the sdcard.

busybox cp -a /data/app /system/sd
rm -r /data/app
ln -s /system/sd/app /data/app

busybox cp -a /data/app-private /system/sd/app-private
rm -r /data/app-private
ln -s /system/sd/app-private /data/app-private


13. Reboot, enjoy all the extra storage!


Undo Procedure by heldc:

Dunno if this has been posted yet, but the undo process is simple. I just did it with no problems, and thought others might want it as well. (Note-if you're copy pasting this to do it, anything following # til the end of a line is just a comment, don't copy/paste it.)

adb remount #makes your file system writeable
adb push /<place you backed up mount.conf to>/filenameofbackeduporiginalmount.conf /system/etc/mountd.conf #restores the original mount.conf
adb push /<place you backed up init.rc to>/filenameofbackeduporiginalinit.rc /system/init.rc #restores the original init.rc
adb shell #opens the phone shell
rm -r /data/app #deleting the symbolic link to /system/sd
mkdir /data/app #recreating /data/app
rm -r /data/app-private #deleting the symbolic link to /system/sd
mkdir /data/app-private #recreating /data/app-private
reboot

Instructions without adb using terminal app by LucidREM

this is a form of the instructions from this thread .. but modified slightly to be used directly from the "Terminal" .. i did not use my USB on my phone to root or run apps .. everything i did was on the G1

$su
#mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
#mkdir /system/sd

6. Download the attached modified mountd.conf and init.rc files to your SD.

#busybox cp -a /sdcard/mountd.conf /system/etc/mountd.conf
#busybox cp -a /sdcard/init.rc /system/init.rc

9. Reboot your g1

$su
#mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
#busybox df -h

You should see a line that looks similar to this:
/dev/mmcblk0p2 1.2G 9.1M 1.1G 1% /system/sd

If you don't see this line, you didn't partition your sdcard correctly. STOP! Go back and do that.

12. From the G1 shell run the following cmds to copy your app and app-private directories from the internal g1 storage to the sdcard.

#busybox cp -a /data/app /system/sd
#rm -r /data/app
#ln -s /system/sd/app /data/app
#busybox cp -a /data/app-private /system/sd
#rm -r /data/app-private
#ln -s /system/sd/app-private /data/app-private

Reboot your g1

Update 1/19/2009:

Installing non-wipe custom themes shouldn't cause any issues. I just installed the BUUF theme and I didn't have to re-do the procedure.

Update 1/20/2009:

Added undo procedure by heldc

Update 1/27/2009:

Added procedure for moving data directory to the sdcard, without performance issues.

This is not stable so I've moved it to the bottom.

13. Copy /data/data directory from internal storage to sdcard. This is OPTIONAL as some people are still reporting issues.

mkdir /system/sd/data
cp -rp /data/data /system/sd
rm -r /data/data
ln -s /system/sd/data /data/data

Reversal procedure:

rm /data/data
cp -rp /system/sd/data /data

Update 2/7/2009:

Add instructions by lucidrem that doesn't require adb. Allows you to apply the hack from the g1 using terminal app
 
Last edited:

vtecpower

Member
Jan 8, 2009
16
0
i followed all the steps and i was able to boot into my phone without any problems. I was also able to install apps from market BUT when i instaled them my STORAGE LEFT went down from 54 to 51MB.
**I can see all the apps i installed in /system/sd/apps
please help,
thanks
 

Perrosky

Senior Member
Jun 23, 2007
125
0
Hey I would like to know what software are u using to create the partition on the sd, I tried partition magic 8 and partition mananger but the softwares can't see the sd card.:confused:
 

dwang

Senior Member
Nov 23, 2008
2,453
318
i followed all the steps and i was able to boot into my phone without any problems. I was also able to install apps from market BUT when i instaled them my STORAGE LEFT went down from 54 to 51MB.
**I can see all the apps i installed in /system/sd/apps
please help,
thanks

Only the apk files are moved to the sdcard. The apps database files are still on the internal storage and all the cache files are still on the internal storage. Its still a good idea to manually move them over to the sdcard.

So as you install more apps, the internal storage will still shrink, but not as much as before and will go down slowly.

You can try to also move the /data/data directory over to the sdcard, that will move all the database files from the internal storage to the sdcard, but I haven't tried that. If you have a class 6 sdcard, try it and see if that slows things down.
 

vtecpower

Member
Jan 8, 2009
16
0
Only the apk files are moved to the sdcard. The apps database files are still on the internal storage and all the cache files are still on the internal storage. Its still a good idea to manually move them over to the sdcard.

So as you install more apps, the internal storage will still shrink, but not as much as before and will go down slowly.

You can try to also move the /data/data directory over to the sdcard, that will move all the database files from the internal storage to the sdcard, but I haven't tried that. If you have a class 6 sdcard, try it and see if that slows things down.

I have a class 5 4gb card and i want to try to move /data/data to sd
Can you please post guide how to move /data/data to sd..
thanks
 

esnapz

Senior Member
Jan 8, 2009
71
1
hi,
i'm a total noob to this. I've managed to pull the mountd and init files to back them up. When I get to step 5: adb mkdir /system/sd when I press enter the cmd shell gives me the adb menu. How can I tell if the dir was created?

Thanks for any help you guys can give.
 

ashshlay

Senior Member
Jul 27, 2003
99
10
For the person that asked how to partition your sd card in Ubuntu you can use partition editor under system-administration- partition editor
 

Perrosky

Senior Member
Jun 23, 2007
125
0
For the person that asked how to partition your sd card in Ubuntu you can use partition editor under system-administration- partition editor

Thanks for the info but I just find out tha paragon partition mananger can creat ext2 partitions too:p

everything went right with the software it create my fat32 partition and the ext/2. what I don't know is if the ext/2 is formated and my computer with linux does not see sd card at all so right now I don't now how to confirm this.

ps. I try to look for the option SYSTEM THEN ADMITNISTRATION and it does not have the partition editor installed.
 
Last edited:

dwang

Senior Member
Nov 23, 2008
2,453
318
I have a class 5 4gb card and i want to try to move /data/data to sd
Can you please post guide how to move /data/data to sd..
thanks

Try this and see if it works... I haven't tried it myself as I only have the stock sdcard and I know its going to be too slow.

adb shell
cp -a /data/data /system/sd
rm -r /data/data
ln -s /system/sd/data /data/data

reboot

If this doesn't work or its too slow, to reverse it do the following:


adb shell
busybox cp -a /system/sd/data /data/data


If this works well, I'll modify the original post...
 

vtecpower

Member
Jan 8, 2009
16
0
Try this and see if it works... I haven't tried it myself as I only have the stock sdcard and I know its going to be too slow.

adb shell
cp -a /data/data /system/sd
rm -r /data/data
ln -s /system/sd/data /data/data

reboot

If this doesn't work or its too slow, to reverse it do the following:


adb shell
busybox cp -a /system/sd/data /data/data


If this works well, I'll modify the original post...

goingto try it now..i will tell you how it turnsout
 

vtecpower

Member
Jan 8, 2009
16
0
It worked but its kinda slow because as it turned out my card is Rank 4 not 5...i installed couple of apps and phone didnt crash

My Internal memory remaining is 52mb.


tahnks
 

dwang

Senior Member
Nov 23, 2008
2,453
318
It worked but its kinda slow because as it turned out my card is Rank 4 not 5...i installed couple of apps and phone didnt crash

My Internal memory remaining is 52mb.


tahnks

ok.. strange that your internal storage is still at 52mb though.. something else must be eating it...

do this:

adb shell

busybox df -h
cd /data
ls -l

and post the results...
 

vtecpower

Member
Jan 8, 2009
16
0
# busybox df -h
busybox df -h
Filesystem Size Used Available Use% Mounted on
tmpfs 48.4M 0 48.4M 0% /dev
tmpfs 4.0M 0 4.0M 0% /sqlite_stmt_journals
/dev/block/mtdblock3 67.5M 64.0M 3.5M 95% /system
/dev/block/loop0 1.4M 1.4M 0 100% /system/modules
/dev/block/loop1 3.1M 3.1M 0 100% /system/xbin
/dev/mmcblk0p2 1.2G 9.1M 1.1G 1% /system/sd
/dev/block/mtdblock5 74.8M 22.9M 51.9M 31% /data
/dev/block/mtdblock4 67.5M 1.6M 65.9M 2% /cache
/dev/block/mmcblk0p1 2.4G 39.8M 2.4G 2% /sdcard
# cd /data
cd /data
# ls -l
ls -l
drwxrwxrwx 1 1000 1000 2048 Jan 9 00:39 anr
lrwxrwxrwx 1 0 0 14 Jan 9 03:43 app -> /system/sd/app
lrwxrwxrwx 1 0 0 22 Jan 9 03:43 app-private -> /system/s
d/app-private
drwxrwx--x 1 1000 1000 2048 Jan 9 00:39 dalvik-cache
lrwxrwxrwx 1 0 0 15 Jan 9 04:08 data -> /system/sd/data
drwxrwx--x 1 2000 2000 2048 Jan 9 00:39 local
drwxrwx--- 1 0 0 2048 Jan 9 00:39 lost+found
drwxrwx--t 1 1000 9998 2048 Jan 9 00:39 misc
drwx------ 1 0 0 2048 Jan 9 00:39 property
drwxrwxr-x 1 1000 1000 2048 Jan 9 00:39 system
#
 

Top Liked Posts