The Ultimate Apps2sd Thread!

So we had a couple apps2sd discussions going on in various threads around here so I figured it was about time it got its own dedicated topic. I'll talk about the apps2sd methods I have tried and what I like and don't like about them and then hopefully other people will chime in and we can get a good discussion going and figure out what the best options are.

First there is what is known as Froyo apps2sd (but it is also in Gingerbread and presumably any future android OS releases). It is what you can do on CM7 by default and it moves the apk into a secure folder on your sdcard in the main fat32 partition. This is useful because it clears up some space on your phones internal memory and it is the easiest method because it doesn't require you to partition your sdcard. It is also managed natively by android and you can have apps automatically install to the sdcard so it is convenient. It has some disadvantages though that prompted the search for a better apps2sd method: First of all not all apps can be moved by default, although in CM settings you can force the OS to allow any apps to be moved and there are some apps such as Ti Backup that will force move apps if you are on another rom. Second each app you install will still have some data on the phone's internal memory so you can still potentially fill up your internal memory even if you are moving all of your apps over. Finally the biggest problems stem from the fact that they are just stored on the sdcard's main fat32 partition. This causes the apps to load more slowly at boot and every time you plug in your phone to a pc and mount your sdcard the phone temporarily loses all of these apps and then finds them again when you unplug the sdcard. This can cause problems for some apps especially those with widgets since your home keeps running and now the widget apps are gone so it is recommended you don't move any of the apps with widgets that you use.

The other methods will require you to partition your sdcard, which means if your sdcard is currently full of data you will need to back up all of your data because partitioning requires a complete wipe of the sdcard. I did this when I got a new 32gb card so it was blank to begin with. One way to partition your sdcard is with rom manager. You can choose partition sdcard and it will ask you what size you want for your ext space then what size you want for your swap space. I chose 512MB and 128MB respectively but you can choose whatever you'd like, many people may not want to use sdcard swap so you can just not create a swap space if you want. Using this creates an ext3 partition and a linuxswap partition on your sdcard. Another way to partition your sdcard is to use a program on your computer, such as MiniTool Partition Wizard Home Edition. With this app you can make fat32, ext2, ext3, ext4, and linuxswap partitions of whatever size you like on your sdcard (all the partitions you make should be listed as 'primary' and the order should be fat32, ext*, linuxswap). Generally you want most of your card as fat32, then a portion that is one of the ext* types for apps2sdext (make sure your rom and apps2sd method supports the type you choose, ext4 is currently not supported by many roms), then a small part for linuxswap if you want to try it out (sdcard swap may shorten your sdcard's lifespan).

The first method I tried after Froyo apps2sd was S2E (simple2ext). This is an app, available on the market, written for CM7 that basically just installs some scripts that can be used to link entire folders to your sdext partition. It has four options for folders that you can move: /data/app, /data/app-private, /data/dalvik-cache, and /cache/download. Currently if you move /data/app or /data/app-private it cannot simply be undone but the dev has said they are working on an undo script for future releases, the other two folders can already be moved back. It will work fine with the ext3 partition created by rom manager (I don't know about ext2 or ext4). I liked this program because it was easy to use and once you ran it all future apps will go into the sdext space. One thing to mention is you need to make sure you choose in CM settings to have your apps installed to internal memory otherwise your phone will still use Froyo apps2sd in addition to your sdext method completely ruining any advantages gained from using S2E. You may also want to go into manage applications and check to see if any apps are installed to the sdcard and if they are move them to the phone (which is really now your sdext partition, I know it can get confusing lol). Although this was great I kind of like the idea of keeping some of my apps like Gmail, Handcent, ADW EX, and apps with widgets I use on the phone's internal rom, which lead me to my next method: Link2sd.

Link2sd is another market app that will allow you to move individual apks and their corresponding dalvik-cache files to your sdext partition. As I mentioned before I like the idea of keeping some of my apps on my phone's internal memory (I'm not sure if there is a real benefit or not but it just makes me feel all warm and fuzzy inside lol). Once you get this app set up properly it is easy to use. You just open the app and it gives you a list of all of your installed apps. You can sort by name, size, or date and there are filters to show only unlinked apps or all downloaded apps so finding the apps you want to move is a breeze. Also when you update an app it will first install to the phone's internal memory and then link2sd will automatically move the new apk to your sdext partition in the background if you had linked it before. Plus it can easily move apps back to the phone's internal memory if you want. It isn't perfect though, one downside is like froyo apps2sd all of your apps will still have some data on the phone's internal memory so you could fill up the phone's rom even though you link most of your apps (most apps don't leave much behind but certain apps like Google Earth still take up a significant amount of space in /data). Also after you move an app you must restart the phone before you can use the app (same goes if you updated a linked app). This is a minor annoyance but since you probably aren't moving apps back and forth all the time it shouldn't be a big deal, but maybe it will bother some people more than it bothers me. The other problem is it doesn't work right out of the box and will take a little tinkering to get set up on CM7:
When you first run link2sd it is supposed to scan your sdcard and find ext partitions and then create a script to mount them. It is supposed to work with ext2, ext3, or ext4 but was originally designed just for ext2 so I used MiniTool partition wizard to make my ext3 partition into an ext2 partition to have the best chance at making things work (luckily since the space was already allocated the main fat32 partition is untouched so you don't need to worry about your data). Unfortunately for me at least it would not find my ext partition so I turned to everyone's favorite source for finding answers: Google! After searching around I came across this thread where people were having the same problem and they said basically you could just create the script yourself and put it in init.d and it would mount the ext partition on boot and link2sd will be able to see it. I attached the script I used, called 99complete (unzip it and place in /system/etc/init.d/ with root explorer or other method, permissions for mine are rwxr-x---). Before you copy over this script you can check if it will work by using terminal emulator:
su
mkdir /data/sdext2
mount -o rw,nosuid,nodev,noatime,nodiratime /dev/block/vold/179:2 /data/sdext2

After running these three lines you should be able to go into link2sd and it should now find your sdcard partition. If it works you should copy the 99complete script into init.d so that it will remount your sdext partition every time you boot your phone (otherwise none of the apps you moved over will show up because the partition won't get mounted).
If it doesn't work it may have to do with a difference in how your partitions are set up or defined. I think there are some different ways that the sdext partition can be defined and I'm not completely clear on the differences. Sometimes I see the sdext mounted using "/dev/block/mmcblk0p2" instead of "/dev/block/vold/179:2". I don't really know what the difference is, maybe one of the more knowledgeable members like Prime could shed a little light on the subject. I know in the thread I linked there is another script after the one I use that has lines with /dev/block/mmcblk0p2 and contains lines that are commented out with /dev/block/vold/179:2. The script I attached works for me, my partitions are fat32, ext2, linuxswap. I am currently using Link2sd and even updated my rom and kernel without wiping and still have all of my apps functioning. I added the 99complete script into the /system/etc/init.d folder of the new CM update.zip before I flashed it so when my phone booted for the first time it mounted the partition properly and everything just worked!

So that is what I have used. There are some other methods that use scripts to set up Apps2sdext that I have not tried. There is DarkTremor's Script, which people have reported success using on CM7. There is also a script by Firerat that does apps2sdext. There are probably some others too that I don't know about. As far as I know DarkTremor's script moves all of your apps similar to the way Simple2ext works. Firerat was working on his script specifically for CM but one of the mods over there made him mad and I haven't seen him posting much there anymore but he still seems to be on xda. I read once that Firerat's script creates another folder called /data/app-i where you can choose to keep some of your apps on the phone's internal rom if you want but like I said I haven't personally used his script and don't know much about it. I would love to hear from people that have used alternative methods and what they think of them.

Also one thing I was wondering about was if a rom could be modified so that froyo apps2sd used the sdext partition rather than a folder on the main fat32 partition. That would be cool since we could still use android's management of apps2sd but we would get the advantages of having them on an ext2 partition so they wouldn't be 'lost' when the sdcard was mounted to a pc. It would seem like it wouldn't be that hard to move the location for froyo apps2sd (I of course have no clue maybe it would be difficult). Also I wonder if Android would purposely 'turn off' the apps somehow when you used the mounted the sdcard with a pc because it was expecting them to be 'lost' due to the sdcard getting mounted.

Well if anyone bothered to read all that hopefully you have gained some information about apps2sd. I hope people will chime in with their experiences and use this as a place to get help with app2sdext problems so the other threads don't get too sidetracked.

Thanks for the kind words Craig, hopefully some people will find it useful, if not at least I documented what I did so that I can figure it out again down the road if I'm having issues lol.

I'd like to give Firerat's script a try next so it would be great to hear from people that have been using it about how easy/hard it is to set up and what features it has (like can you have some apps on sdext and some on the interal memory?). Also how did you set it up, did you just get his "fr-a2sd_1-36c.sh.txt" script and run it? Will it install the 05mountsd script in init.d or do you need to download that seperately? Also has anyone used it on other roms, I'm considering trying out Project Elite since I've heard good things about it and someone said it works with DePrimed.

i personally have used firerats script on cyanogen mod 6.1.2 which works without much modification. just had to run the following commands.

su
mount -o rw,remount /system
sh /sdcard/fr-a2sd_1-36c.sh.txt

this was working flawlessly for me. you can choose apps with apkmanager, i never tried. i just ran the script and that was enough for my needs (i just saw storage space go up) and performance was good.

used those same commands in CM7 winner build with deprimed kernel. also worked well. but sluggish. cm7 is sluggish for my phone, i dont think it had to do with this script, it was slow before i ran it.

so i installed project elite. man that thing flies on my cell. but i could not get apps2 ext working with that script. and i tried using link2sd as you posted but couldnt do it. sd ext just wasnt mounting on boot im not sure where to go from here... but i would love to find a way to get apps2ext working on project elite with deprimed...

Just to clarify link2sd works with any rom as long as you have the proper ext support right?

Click to expand...

It should work regardless of rom but it doesn't partition your sdcard for you. If your sd card is partitioned and your rom/kernel supports it the app should work. I don't think it has been updated since gingerbread so that may be why it doesn't detect the partiton on CM7 unless you mount it manually with a custom script, but the linking process works fine once you get it going.

OK I have used link2sd for several months now and the dev has continued to make it better and better.
First off, and I don't think I saw it mentioned, is that it also allows linking dalvik cache. Which frees up tons of space, where as app2sd, you stilll have both data and dalvik in internal.
Second advantage is that it takes at most 3 attempts to mount the card correctly, but usually only one.
Big positive is when mounting via usb all apps are still usable. Also all widgets are usable as opposed to when using apps 2 sd.
Again as mentioned you have the choice of what goes to ext and what does not.
Also the dev in the next week will be releasing a version where you can select multiple apps all at once to link or unlink, saving the user time.
Now I am currently doing some experiments, but it also may be possible, may is key word, to use the ext nandroid and flash it on top of a new install and link may in fact recognize the apps after some fiddling, but I ams till experimenting. Also it may be possible to move the apps in data/ext2 by copying and placing on sd and then re copy over to data/ext2 upon new install.
Again I am currently experimenting with this, and if it works it may just revolutionize the speed of setting up a new ROM from scratch as sometimes a new iteration suggests doing a complete fresh install rather than flashing the ROM over the version you are on.
I will report back, but I can say I have tried regular app 2 sd where user chooses, cm app2sd where everything must go and link2sd and the advantages it offers make it hands down the best.
Several minutes of tinkering for a lifetime of fabulosity.
The dev is on xda named bakpinar if you would like to read more on this.
Just search his name and go to threads he started and since there is only one and it is for the app, it is easy to navigate there.
Very helpful guy but as time goes forward and improvements are made it seems like less people are encountering any issues.
Also on some ROMs or when using an app that does backups, when you backup all apps, some will only backup internal apps and not those on sd though with cmapp2sd I think it works like link2sd where all get backed up as it reads the apps as if they were internal.
Lastly because the ext partition mounts pre sd mount, the apps load up fast instead of relying on the market to recognize them.
On the rare occasion that it does not mount a quick hot reboot and it mounts and you are golden.
Also in my experience, I have not needed to reboot after linking and moving an app to ext, but I cannot speak for everyone.
A trick i have used so that you know that the ext has mounted is have an app that upon boot shows some icon in status bar, and if it doesn't appear when it normally does after link2sd has been used it means it didn't mount ext and just hot reboot, no need to even let the sd mount.
Sorry for the verbosity but just wanted to dump as much as I have gleaned through use and testing and watching as the app has gone from not bad to yesss this is awesome.
I just used ROM MANAGER for the partitioning but min partition works as well.
And it shouldn't take too long to copy sd too computer and then back. More things in compressed state make it even faster. And the time is well worth it.
danceswithbongs

I have had it on PE for a while and no problems.
I am speaking about Link2SD app.

The issue may be that you used the 99script when it wasn't needed.
As the app now does everything pretty much except on CM since CM has scripting it seems for ext1, 2, 3 and 4, which is why the elaborate alteration scripting requirements. All you need is to look at the init.d folders scripts for mounting to see how elaborate, without apps2sd script applied, as I can't remember what that looked like scriptwise.

Link2SD script total is maybe a line or two in the init.d folder.
This is the case with PE, tried with multiple kernels and all successful on PE and LGB both for latest builds.

As stated, I think the issue may be running the script which is messing up how link app is reading everything and the script it is trying to apply, or maybe not, as I need a few other answers.

First tip off is make sure su is asked for allowing rights and you accept.
Rarely, I have seen and heard of this occurring where the app then either has no rights or thinks you don't have root.
Easy fix is wipe su app data and just re allow each root app su rights, usually takes a minute or two, but then when you open link app, make sure you wipe data for that as well.

Also make sure that when you installed link2SD it wasn't installed on SD via froyo way.

If none of those are the reason, first just wipe link app and retry, and if it refuses to work you need to de-script the 99script, no idea how else to put it sorry, maybe better words would be alter the script or replace it.
No idea how to go about it, possibly delete it in the init.d file and reflash over what you have the PE ROM, so everything you have is still there and the settings, but the old init.d files will be put back, or maybe just format system in CW recovery partitions and reflash PE ROM.

It will work and the new version released today is even better.
Unfortunately hasn't worked on RC2 for CM for me, but I am going to try the 99script Godfather hooked us up with, thanks Godfather.

Godfather do you have it running on latest RC and did you need to run the 99 script?
thanks for replying.

To get newest version of Link app 1.5.2 not yet on market, but great additions to it, go to bakpinar's thread on xda, have to register to download the app.

danceswithbongs

sorry for the length but want everyone to be able to use this amazing app. Never be deprived of widgets again.
Also bakpinar, the dev, is working on something so if you flash a new ROM and have wiped everything except sd-ext, when it boots up and Link app has run script for mounting, you just copy the apks from the data/ext2 folder and paste in data/app folder, reboot and then re-link. And he is working on it so that you will be able to link all the apps you want in one shot.

Godfather thanks again for the thread, great move so it doesn't get lost in the shuffle and please let me know if and how you got link app running on RC2, thanks again

so i installed project elite. man that thing flies on my cell. but i could not get apps2 ext working with that script. and i tried using link2sd as you posted but couldnt do it. sd ext just wasnt mounting on boot im not sure where to go from here... but i would love to find a way to get apps2ext working on project elite with deprimed...

bongs, if you would be so kind, could you outline the steps to get this working with LGB? i've got it set up fine in CM7 with raidzero's 1200 kernal and the 99complete script above, but have had no success at all with LGB no matter what i've tried, running the same kernal.

what kernal is working with Link2SD in LGB, and what if any additional modules or scripts in init.d did you have to add to get it to work?

i asked on the Liquid forums, but just got a second hand reply from Liquid that "Liquids said that he does not include those modules with his kernel". seems odd that a ROM based on CM7 with a kernal that works in CM7 setup would give me such fits, but it is.

bums me out because in every other way i think the latest LGB is hands down the smoothest GB ROM my droid has run, but i got addicted to L2SD with CM7 and now i'm in a funk.

Okay I think you need to go to the thread on xda by dev bakpinar.
search in thread for ext2.ko.zip
dl that and there should be the steps in that same post, i believe you will unzip it on the sd then take the script that is within the folder and copy it over to /system/lib/modules/ set permissions like the rest of the scripts in the modules folder maybe rw-r--r-- but check first on thread

open terminal and run following shell commands

su
insmod /system/lib/modules/ext2.ko
reboot

I am pretty sure that was the route I took.
In PE I never had to do that step, not sure why exactly

hope that works and just post if you run into any issues

but you shouldn't need the 99 at all regardless of what rom it was built or based on

bongs, if you would be so kind, could you outline the steps to get this working with LGB? i've got it set up fine in CM7 with raidzero's 1200 kernal and the 99complete script above, but have had no success at all with LGB no matter what i've tried, running the same kernal.

what kernal is working with Link2SD in LGB, and what if any additional modules or scripts in init.d did you have to add to get it to work?

i asked on the Liquid forums, but just got a second hand reply from Liquid that "Liquids said that he does not include those modules with his kernel". seems odd that a ROM based on CM7 with a kernal that works in CM7 setup would give me such fits, but it is.

bums me out because in every other way i think the latest LGB is hands down the smoothest GB ROM my droid has run, but i got addicted to L2SD with CM7 and now i'm in a funk.

Yeah. I have a post there, he's gonna troubleshoot weird thing is on cm 7 all I had to do was install 99 complete and it worked instantly. without the 99 script it didn't work. adding the ext2.ko didn't help.

Okay I think you need to go to the thread on xda by dev bakpinar.
search in thread for ext2.ko.zip
dl that and there should be the steps in that same post, i believe you will unzip it on the sd then take the script that is within the folder and copy it over to /system/lib/modules/ set permissions like the rest of the scripts in the modules folder maybe rw-r--r-- but check first on thread

open terminal and run following shell commands

su
insmod /system/lib/modules/ext2.ko
reboot

I am pretty sure that was the route I took.
In PE I never had to do that step, not sure why exactly

hope that works and just post if you run into any issues

but you shouldn't need the 99 at all regardless of what rom it was built or based on

bongs, if you would be so kind, could you outline the steps to get this working with LGB? i've got it set up fine in CM7 with raidzero's 1200 kernal and the 99complete script above, but have had no success at all with LGB no matter what i've tried, running the same kernal.

what kernal is working with Link2SD in LGB, and what if any additional modules or scripts in init.d did you have to add to get it to work?

i asked on the Liquid forums, but just got a second hand reply from Liquid that "Liquids said that he does not include those modules with his kernel". seems odd that a ROM based on CM7 with a kernal that works in CM7 setup would give me such fits, but it is.

bums me out because in every other way i think the latest LGB is hands down the smoothest GB ROM my droid has run, but i got addicted to L2SD with CM7 and now i'm in a funk.

Okay I think you need to go to the thread on xda by dev bakpinar.
search in thread for ext2.ko.zip
dl that and there should be the steps in that same post, i believe you will unzip it on the sd then take the script that is within the folder and copy it over to /system/lib/modules/ set permissions like the rest of the scripts in the modules folder maybe rw-r--r-- but check first on thread

open terminal and run following shell commands

su
insmod /system/lib/modules/ext2.ko
reboot

I am pretty sure that was the route I took.
In PE I never had to do that step, not sure why exactly

hope that works and just post if you run into any issues

but you shouldn't need the 99 at all regardless of what rom it was built or based on

bongs, if you would be so kind, could you outline the steps to get this working with LGB? i've got it set up fine in CM7 with raidzero's 1200 kernal and the 99complete script above, but have had no success at all with LGB no matter what i've tried, running the same kernal.

what kernal is working with Link2SD in LGB, and what if any additional modules or scripts in init.d did you have to add to get it to work?

i asked on the Liquid forums, but just got a second hand reply from Liquid that "Liquids said that he does not include those modules with his kernel". seems odd that a ROM based on CM7 with a kernal that works in CM7 setup would give me such fits, but it is.

bums me out because in every other way i think the latest LGB is hands down the smoothest GB ROM my droid has run, but i got addicted to L2SD with CM7 and now i'm in a funk.

TIA!

Click to expand...

Click to expand...

thanks a lot, for me, i needed to use the ext2.ko module to get link2sd working on motodroid with project elite 5.0.2 and stock kernel it comes with. not using deprimed. very smooth, extremely fast. thanks again.

FYI
Bakpinar just updated the app with some nice fixes for management.
Not sure if it is up on the market but it is up on the apps thread on xda.
Enjoy
and if you are a registered member and like his app, drop the man a thanks
always makes a person feel good

Useful Searches

About DroidForums.net

DroidForums.net was founded in 2009 originally dedicated for the Motorola Droid, the first Verizon Android Phone. We have since expanded our community to cover all Android Phones, Android Tablets, and Android Wearables. We discuss various topics including Android Help, Android Device Reviews, Android Apps, Phone Accessories, Android Games and more. Our ultimate goal is to be the Internet's best and largest Android Forum.