• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root Apps2sd vs Link2sd (and internal storage) explained

Kamel

Well-Known Member
Jul 16, 2011
197
60
Note: If you aren't much of a reader, or already have a working understanding of partitions, symbolic links etc or just don't feel like reading this just go to the "recap" section on the bottom.

There has been a good deal of posts regarding this, but few with good details. In this post, it is my goal to be precise but also concise and still explain in laymans terms. If this is too basic for you, then move along nothing to see here. I just wanted to explain this so that others will not have to do the headache of digging for this information like I did.

Internal Storage
If you have a Prevail (and actually installed anything), more than likely you've seen the low internal storage warnings. Here's a brief explanation of what Internal storage is.

Your phone comes with internal flash storage (117MB to be exact, way too little for typical users) which is used both for the android system and any apps you have installed, and any that came installed on the phone. This is depleted quickly, as it is very small compared to many other phones. The "system" memory cannot be seen by you or your apps as it's reserved for system purposes, this is why you may see that using a custom rom you can install more apps before running out of space (because the rom and pre-installed apps take less space).

Apps2SD
When talking about "Apps2sd", you may be talking about at least 4 things (maybe more). Google's App2sd enabler style app (more common, allows you to use the default google application on a larger variety of apps and there are many named many different things), and Cyanogenmod's Apps2sd. Finally, the best option here is probably Darktremor's A2SD.

Symbolic Links
These applications all work in a very similar way. They move the app's .apk file onto the sd card then "link" to the file instead of leaving it on the internal memory. By "linking", I mean they use a symbolic link. A symbolic link is a file of very tiny size that is similar to a shortcut in windows. It differs because any program or thing trying to access the symbolic link will actually access the exact file the link points to, not the link itself. This means whatever is accessing this file is completely unaware (unless it's specifically looking) that the file it's trying to access doesn't reside where that program is looking.


Applications' 3 Types of Data
An app contains 3 things. It contains the app itself (the .apk file), user data & cache, and "library" files. User data and cache is basically some saved data that helps the app run better and remembers things like settings, high scores in games, etc. Library files are like DLL's on computers (dynamic link library in windows, .so or shared objects in linux). These are basically the "brains" of the application and tell it how to do certain functions like draw to the screen or other things like that. Sometimes many programs can use the same library file, which is why Linux (Android is Linux) more accurately describes these files as "shared objects". As I said before, Apps2sd only links the apps .apk file, leaving the user data & cache, and library files on the internal memory so apps still take up room and you can still run out of room. If I understand correctly, Darktremor's A2SD moves more than the standard apps2sd, but still leaves libraries on the internal memory (please correct me if I'm wrong).

CyanogenMod Wiki said:
NOTE: Not all of the application's data is actually moved to the SD card; the dex files, private data directories, and native shared libraries remain in internal storage.

Link2sd
Link2sd is a more advanced application that does essentially the same thing as apps2sd. What really sets them apart, however, is link2sd is more complicated but offers more benefits. Link2sd works by moving apps from internal memory, then creating a symbolic link just like apps2sd. Link2sd can offer more space savings, however, since it can also move the user data/cache and the libraries to the sdcard. The down side to link2sd is that it requires you to add a partition to your sdcard, which is a little more advanced and requires an sdcard reader for your PC (unless you can get it to work via clockwork mod which I was unable).

Partitions
Partitioning refers to a basic computer/storage principal that applies to any permanent storage, like sdcards, hard drives, even writable cd's etc (but on cd's/dvd's they are typically referred to as sessions). When you partition something, it's not much different than "partitioning" a room in your home. You're essentially taking the space you have and dividing it so that part of that space is its own container and the other is its own container. The best partitioning software for windows that I have found is the one recommended by the link2sd guide "MiniTool Partition Wizard Home Edition" (google it). It's free, easy to use, and offers reliable partition resizing which is difficult to come by in free applications. I wont go into the nitty-gritty of how to add a partition to your sdcard here since that could end up being longer than this whole post. Google it if you need more help, there are countless resources on how to partition and repartition your sdcard.

Just remember, if you are unsure of which file system to use, use Fat32

Cautions:
When using any application that moves apps to the SD card, there are reasons why the default google application does not allow all apps to be moved to the SD card. One reason is, SD card storage *might* be slower than internal memory, causing performance issues (though this isn't always the case). Another and more important thing to remember is that if your phone requires an app in order to boot and operate correctly and that app is on your sdcard, if your sdcard is ever removed or damaged your phone will no longer boot. Workarounds for this have been built into Darktremor's A2SD, but failsafes aren't always fool-proof, so use your brain when it comes to what you move to the SD card. As a rule of thumb, you should try to avoid moving any system application or widget to the sd card.

Recap

Apps2SD:
  • Easy to use
  • Moves the largest part of an application
  • Does not move all of the application
  • Can still run out of internal storage even if every app is moved to the SD card

Link2SD:
  • More difficult to set up
  • Requires you to partition SDcard
  • Can move all 3 parts of an application
  • Less room can be taken on internal memory, practically nothing enabling you to install nearly unlimited apps.

Hope this helps someone like me, please provide feedback! I hope I haven't gotten any of these details wrong, I am new to all of this myself. I have lots of linux experience, but very little android experience.
 
S2e (apps2sd for cm7) can move the apk, the lib files AND the data (if advanced mode is enabled) I have over 200 MB of apps installed and still have 164 (of 167) free internal.

Good lord. I will save this for the john while I'm hiding in the bathroom at work. I prefer a2sd myself I went from link2sd to a2sd and its a million times better. Also you can move your dalvik on a2sd so its a win win situation.

u can move dalvik with link too

I stand corrected, sorry for my error everyone. I will update the guide accordingly :)
 
Upvote 0
Kamel said:
Darktremor's A2SD moves more than the standard apps2sd, but still leaves libraries on the internal memory (please correct me if I'm wrong).

I have looked as closely as I can, and do not see anything mentioning darktremor's a2sd moving libraries. Can anyone clarify if libraries (not application data/cache) are moved to the SD card using Darktremor's A2sd?

Thanks
 
Upvote 0
Good info. I guess I missed that when I was using it

maybe it was an upgrade since u used it?

URrcgYjl
 
Upvote 0
Forgive my lack of understanding... I haven't used S2E or A2SD yet, but both appear to require additional partitions on the sd card. If this is the case, what is the benefit over using Link2SD?

I'll check more into it later and hoping to add a section to my guide for that. So far, I haven't found anything that needs to be changed though.
 
Upvote 0
apps2sd if far better...Im using the new cm7 on gb...flashed with latest ver. of a2sd...i have about 100 apps and 153mb free...I was able to move apps,data,dalvik all on sd....

Please specify what you mean by "apps2sd" since it can be interpreted as many things. Also, did it require you to repartition your SDcard? If so (as have all of the good ones I have found), I would think it offers no benefits over link2sd.

All of the benefits you listed are also available in link2sd. The number of apps installed is irrelevant, as one could install 50 tiny apps for the same space as a single large game, so here's what I'm getting using link2sd. I have installed 130 applications, taking up 390+MB, but have 96MB of internal storage free. This is with several apps installed to the internal storage, if I wanted to increase the internal storage free space I could easily do that but have no desire (or reason) to. System or necessary apps should always be installed on the internal storage.

eleu said:
which is better to use aps2sd or link2sd?

Short version: Link2sd

Long version:

The recap section should explain in detail the answer to your question. It depends on what you mean by apps2sd and also depends on what you want to do and what you're willing to go through. As I understand it, some apps, such as the "Darktremor A2SD" here use the built in formatting/partitioning so it might be easier to partition, but I don't fully understand how all of them work yet.
 
Upvote 0
Admittedly, I'm a novice when it comes to anything pertaining to Android, but I'm learning.

I just don't understand the need to partition an SD card when it's so small in size. Even if it's 32gb.

I honestly don't know either. Technically, if you felt like doing so, you could actually do a type of pseudo mount on a directory and fool the app into thinking it's using another partition when it really isn't.

This seems foolish to me, but I guess they have some sort of reason for doing it since they all work that way.
 
Upvote 0
From my own experience:

Having used Link2sd for a while because i was initially always having errors with a2sd. I decided to switch roms as I normally do every few weeks depending on my mood. Doing a titanium backup of all my installed apps and reinstalling every one of them. I can say that using L2sd uses a lot of internal memory still, even with dalvik moved. Using Link2sd my free space was between 40 and 52mb, and I was happy with that because it was never lower than 40mb. Now having the same amount of apps installed while using A2sd and s2e, I now have 149mb free.

So, in the long run a2sd is superior.

props to darktremor and inigo
 
  • Like
Reactions: wyelkins
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones