Q. What is Root?
Q. How to get root permission?
The rooting process varies from device to device, look at the following forums for a working method on your device.
Q. How can I check whether my phone is properly rooted?
The simplest way to check if you have root privilege is to run
"su" command in the shell (terminal). If you don't have a terminal app
you can
install free "Android Terminal Emulator" application from the Google Play.
Type su and press enter in the terminal, superuser request
window should be popped up and when you allow it, the prompt character
should
change from '$' to '#'. The pound sign (#) is the typical
symbol used to indicate that you are now running commands as root. If
you see something different, your phone is not properly rooted.
Q. I get "Mount script cannot be created. cannot create /system/etc/install-recovery.sh: not enough memory" error.
Some HTC devices are
"NAND locked". On "NAND locked" (or "S-ON") devices the /system
partition is write-protected by the bootloader and thus cannot be
modified even if you have root privileges.
In order to use Link2SD you need to do "S-OFF" to disable this NAND lock. (a.k.a. "NAND unlock" or "unlocking the bootloader")
No, not required.
Q. I've installed link2SD and it is moving the apps to the main partition of SD instead to the 2nd partition.
Click "Create Link" to move and link applications to 2nd partition with Link2SD. You can see "Linked -> SD card" label for linked apps.
If you click "Move to SD" app will be moved to first partition with
native app2sd method of Android OS. This is same as going to "Manage
Applications" and then clicking "Move to SD". You can see "on SD Card" label for those apps.
Q. What is the difference between “Move To SD Card (Native to Android)" and “Create (Symbolic) Link” in Link2SD?
Which
method conserves the greatest amount of internal memory, what are the
advantages of "linking" over "moving" and vice versa?
Native apps2sd
Starting with Android 2.2 (Froyo) Google introduced native apps2SD.
This method moves
* apk file on Android 2.2
* apk + lib files on Android 2.3+
into a secure folder on your SD card in the main FAT partition.
It is the easiest method because it doesn't require you to partition your sdcard and root privilige.
It has some disadvantages though.
First disadvantage is that application files are just stored on the sdcard's main FAT partition.
When you enable USB mass
storage to share files with your computer (or otherwise unmounts or
removes the external storage), any application installed on the external
storage and currently running is killed.
The system effectively
becomes unaware of the application until mass storage is disabled and
the external storage is remounted on the device.
Besides killing the
application and making it unavailable to the user, this can break some
types of applications in a more serious way.
So second disadvantage is that not all apps can be moved with native apps2sd method because of above reason.
In order for the
application to consistently behave as expected, developer should not
allow the application to be installed on the external storage if it uses
any of the following features, due to the cited consequences when the
external storage is unmounted:
Widgets, Services, Alarm
Services, Live Wallpapers, Live Folders, Account Managers, Sync
Adapters, Broadcast Receivers listening for "boot completed".
Force move (requires root);
You can force the apps move to SD card with native apps2SD even the application does not support moving as described above.
Link2SD and some other
apps can force move apps if you have root privileges. But, note that
this can break some applications, as described above.
Link2SD
Link2SD moves apk + dex +
lib files of the application to the second partition and creates
symbolic links in the original locations on internal storage.
First advantage is that
it can free up more space from the internal storage compared to native
apps2sd method because it moves the dex file as well.
The second advantage of
Link2Sd over native apps2sd is that by creating symlinks you get Android
assume these apps are installed into the internal memory, though in
fact all the files are located on the SD.
Therefore you can link
all applications to SD card; widgets, services, live wallpapers etc.,
all of them will work without any problem from SD card.
The third advantage is that, even when you mount the SD card to your PC your linked apps are all still live and working!
Because Android unmounts
the first FAT partition to share files with your computer but the second
partition remains mounted. Link2SD allows you to run all of your "SD
apps" even when mounted to your computer as a disk drive.
And, disadvantage is that, obviously, it requires root privilege and a second partition on your SD card.
It's not working
"out-of-the-box" as native apps2sd, you need to root your device and
create a second partition on your SD card yourself.
Q. How can I create a partition on my SD card?
If you have a custom recovery installed (ClockworkMod or AmonRa) on
your phone you can use it to create a second partition on your SD card.
Or you can use a computer to create it;
- on Windows there are some free partition manager applications such as "MiniTool Partition Wizard Home Edition", "EaseUS Partition Master Home" etc. You can use any of them that you prefer.
- on Linux you can use GParted.
- on Mac OS you can use its Disk Utility.
Q. I get error with the mounting of my Ext partition. It says device busy.
Your second partition may be already mounted. Most probably your rom has already builtin a2sd, try to disable a2sd on your ROM.
Q. I
succesfull set up Link2SD and linked most of my applications to SD card
and enabled "auto link". But when I install a new app I see reduction on
the internal storage even if the app is linked. Why am I still losing
space?
Begining from version 3.4, Link2SD Plus can move application's private data files that are located in /data/data directory. You need to use a non-FAT file system (ext2, ext3, ext4 or f2fs) on your second partition in order to link app's private data files. Because the FAT file system (FAT16, FAT32 or exFAT) does not support UNIX (POSIX compliant) file ownership or permissions and will cause a security breakdown of app\'s private files.
On devices that have emulated SD card, external
data and obb files are actually located on the internal storage. These
files can fill up your internal storage in that case.
Q.
I've linked an app, but when I go to "Settings -> Applications ->
Manage applications" I see that the app is still on my Phone, "Move to
SD card" button is active.
By creating symlinks you get Android assume these apps are installed into the internal memory, though in fact all the files are located on the SD.
By creating symlinks you get Android assume these apps are installed into the internal memory, though in fact all the files are located on the SD.
To check if an application is linked or not use Link2SD application.
If your 2nd partition becomes read-only, it may be a filesystem
error or corruption. On Linux (and Android) any filesystem error can
trigger filesystem go read-only (for protecting fs).
Try to reformat your second partition or fsck utiltiy to fix fs errors, following is an example usage of fsck command.
e2fsck -fpDC0 /dev/block/mmcblk0p2
Also, if you use AmonRa recovery you can run its "Repair sd-ext" function to fix file system errors on the 2nd partition.
Q. What does it mean to freeze an app - what is the benefit of doing that?
Freezing an app makes it disabled in the system. The app is still
installed, but it cannot run (cannot be opened, turned on, accessed,
etc).
The benefit of doing this can be preventing it from running in the
background, downloading data and killing your battery when you don't
even use it. With a simple un-freeze you can run a frozen app again.
Disabled apps are marked -Frozen- in Link2SD.
The other way is to manually uninstall the unwanted apps but the
problem with manually deleting apps is that you may not get market
updates.
Plus, once you delete an app, it is difficult to get it back in case you actually need it.
Freezing allows you to get the same benefits as uninstalling while
allowing you to get updates and to un-freeze at anytime to use the
frozen app.
Note that freezing doesn't clear up space on your phone, the application files are still where they are.
Q. I see -Updated- label on some applications, what does it mean?
Pre-installed apps (eg. YouTube, Google Maps, Google Voice, etc.) will initially be system apps, residing in /system.
When updating such apps, the old apk will stay in /system while the
updated version will be placed in /data. After such an update, the app
will be marked -Updated- in Link2SD.
For system apps in -Updated- status,
you can free up space in /data by replacing the old apk (in /system) by
their updated version (from /data). This can be done by selecting the
Link2SD option "Integrate update into system".
For saving even more memory space for such apps, you may select to
link these apps via Link2SD. However, system apps can't be linked by
Link2SD, so before this can be done they have to be converted from
system app to user app before. This can either be done by:
*) Converting the app from System app to User app via Link2SD (option "Convert to user app"), then link it via Link2SD
or
*) Un-install the app via Link2SD, then reboot, then re-install it
from Google Play (it will then be re-installed as a user app), then link
it via Link2SD
Converting from a System app to a User app via Link2SD (option 1
above) for existing and running apps may cause problems ('application
stopped unexpectly' errors), which may persist even after rebooting your
device. In such cases the 2nd option above may be a better solution.
However, before using option 2 above and uninstalling such apps, make
sure that you will be able to re-install them from Google Play
afterwards.
Never do that for internal Android components, only for
pre-installed apps like YouTube, Google Voice, Google Maps,
pre-installed File explorer apps, etc.
Q. The free space doesn't increase after linking the applications, what could be the reason for this?
Moving files to 2nd partition and creating symlinks can delay the
freeing of storage space; you might need to wait some time for the
change to be visible.
Or you can reboot the phone to see the changes immediately.
Q. What exactly does "Clean up the 2nd partition" do?
"Clean up the 2nd partition" function scans the second partition
(/data/sdext2 directory) and finds the apk and dex files that are not
associated with any apps (i.e. garbage files). When finished, shows the
files it found and asks for confirmation to delete them. It doesn't
delete anything without your permission.
Q. What exactly does "Link dalvik-cache files" do?
"Link dalvik-cache files" function finds the applications that
their apk files are linked but dex files are not linked and then links
the dex files of them.
Q. What exactly does "Clean up the dalvik-cache" do?
"Clean up the dalvik-cache" function scans /data/dalvik-cache
directory and finds the files that are not associated with any apps
(i.e. garbage files). When finished, shows the files it found and asks
for confirmation to delete them. It doesn't delete anything without
your permission.
Q. Library files that I linked get unlinked after restarting my phone, why?
On Android 2.3 and 2.2, the links to the lib files are being lost
after rebooting because the PackageManager service unpacks all native
libraries from the apk files at boot time.
Android 2.3 links native library directories and it does not unpack
libs for apps on the external card since they have their libraries in
the ASEC container. But it unpacks the lib files that are linked by
Link2SD.
Logcat log shows what is going on...
...
I/PackageManager( 184): Unpacking native libraries for /data/app/com.aurorasoftworks.quadrant.ui.standard-1.apk
I/PackageManager( 184): Unpacking native libraries for /data/app/com.cerience.reader.app-1.apk
I/PackageManager( 184): Unpacking native libraries for /data/app/arity.calculator-1.apk
I/PackageManager( 184): Unpacking native libraries for /data/app/com.eclipsim.gpsstatus2-1.apk
...
You can use "relink lib files at boot option" as workaround.
Q. Altough "auto link" is on, some apps
are not linked to SD card automatically, instead, I see that that they
are installed on SD card with native app2sd method of Android. I need to
link them manually.
Beginning with Android 2.2, application developers can express the
preferred installation location for their applications in the manifest
of the apps. The attribute supports three values: "internalOnly",
"preferExternal", and "auto".
At install time, the system checks the value of
android:installLocation and installs the application .apk according to
the preferred location, if possible. If the application has requested
external installation, the system installs it in the SD card. If the
attribute is "auto", the system will decide where to install the
application based on several factors.
If an application is installed on SD card with native app2sd method, it can not be linked to SD card with Link2SD.
You need to link it manually.
If you decide to use Link2SD and "auto link" on, set default
install location to "internal" within Link2SD to prevent conflict
Link2SD and native app2sd.
In that case, apps will be installed in internal storage even if
the application is declared as "preferExternal" or "auto" and Link2SD
can link its files.
Q. Every time the phone boots have
a message "mount warning" and i must quick reboot the phone in order to
see my linked apps, which could be the cause?
Some roms (for example new Samsung Gingerbread ROMs) do not have
install-recovery.sh and init.d scripts to mount 2nd partition at boot.
Therefore Link2SD mounts the 2nd partition after system finishes
mounting and you need to perform "Quick reboot" after each "real boot".
This problem has been
fixed starting from version 1.9.11. If you still experiment this
problem, please install latest version and run "Recreate mount scripts"
from the menu within Link2SD.
Q. I can't see some apps that I've linked on "My Apps" in market.
Try clean cache & data for Market application within Link2SD.
If some apps are still missing from "My apps" afterwards, just install any app from the market and they will show up.
Q. I switch off my phone to remove the SD card, then switch on while SD card is removed. After I insert SD card again all apps that are linked to SD card get force close and failed to open.
On Android 1.6 and 2.1, missing app permissions may cause these force closes.
On Android 2.2+ this is not the case, you can remove, reboot and re-insert the SD card without any problem.
On Android 1.6 and 2.1, the only way to recover from this is
re-installing the app. You can re-install the app within Link2SD, it
will re-install the application from the existing apk file, does not
download anything.
The issue is that, if an app can not be found by the package
manager at boot time its permissions become missing on Android 1.6 and
2.1.
Even if it is avaliable for subsequent boots the permission problem continues and only re-installing can repair it.
Monitoring adb logcat while the phone is booting shows what is going on;
W/PackageManager( 138): Not granting
permission android.permission.INTERNET to package <an app> it was
previously installed without
W/PackageManager( 138): Not granting
permission android.permission.WAKE_LOCK to package <an app> it was
previously installed without
W/PackageManager( 138): Not granting
permission android.permission.VIBRATE to package <an app> because
it was previously installed without
...
...
/data/system/packages.xml file, which stores which apps are installed and which permissions they have, shows:
<package name="bz.ktk.bubble"
codePath="/data/app/bz.ktk.bubble.apk" system="false" ts="1297597502000"
version="19" userId="10024">
<sigs count="1">
<cert index="18" key="30820255308201bea0030201020204490d7e..." />
</sigs>
<perms />
</package>
as you can see the permissions block is empty. But it should be like this:
<perms>
<package name="bz.ktk.bubble"
codePath="/data/app/bz.ktk.bubble.apk" system="false" ts="1297597502000"
version="19" userId="10024">
<sigs count="1">
<cert index="18" key="30820255308201bea0030201020204490d7e..." />
</sigs>
<perms>
<item name="android.permission.WAKE_LOCK" />
<item name="android.permission.VIBRATE" />
</perms>
</package>
Manually editing the packages.xml file does not help. What fixes it is to re-install the application.
You can use batch reinstall capability of Link2SD.
Q. What happens if I uninstall or update a linked application?
If you uninstall a linked application its apk, dex and lib files will be automatically deleted from the SD card by Link2SD.
If you update a linked
application new apk, dex and lib files will be placed in the internal
memory at first and then they will be automatically relinked by Link2SD
in the background. You don't have to manually relink after updating an
application.
Note: Since the app is
linked again, On Android 1.6 and 2.1, shortcut and the widget of the app
should be re-added to homescreen if the apk file is linked.
Q. I
saw a new version of Link2SD in the market, do I need to unlink my
applications before upgrading and then relink with the new version?
No, you don't need to do anything special before upgrading, you can directly upgrade to the new version.
Q.What happens to my linked apps if I uninstall the Link2SD app?
Will
my linked apps will be automatically uninstalled or moved back to phone
memory? And then if I install it back will they stay there?
Nothing happens. All linked apps remain intact and can be run even if you uninstall the Link2SD.
And if you install Link2SD back, you can see that they are there as linked.
Q. I get "Segmentation Fault" error on ICS (Android 4.0) when I try to move an app to SD card or try to Freeze/UnFreeze an app.
It's due to an issue in ChainsDD's superuser su binary on ICS.
Try with ClockworkMod's Superuser or Chaninfire's SuperSU.
Q. I
upgraded/changed my ROM and I can not see my linked apps, their files
are on the 2nd partition but the system can not see the apps. How can I
make them available, do I need to reinstall and relink them again?
No, if you didn't wipe data when updating ROM the only thing you need to do is to run "Recreate mount scripts" from "menu -> more" within Link2SD and do a normal (not quick) reboot.
If you wiped data, after executing "Recreate mount scripts" and rebooting, run "Relink all application files" from "menu -> more" and then reboot. All of your linked apps should be available again after reboot.
If you also wiped dalvik-cache, in addition to the above step run "Link dalvik-cache files".
Q. I have
installed Link2SD on my Samsung Galaxy S3. When I try to move any app to
SD Card I get a warning saying my device does not support app2sd. What
does it mean?
Currently, Android only supports the primary external storage for native App2SD function.
If the primary external storage is emulated from the internal phone
storage (like in S3, Note 1&2 etc.) or does not exists at all,
moving app to SD function will not be supported by Android system. It's the limitation of device (rom & hardware).
You can link the app in order to move its files to your SD card.
Q. When I try to link an app I get "mkdir failed for /data/sdext2/data, File exists" error.
This
error has been fixed starting from version 2.4. If you still experiment
this problem, please install latest version and run "Recreate mount
scripts" from the menu within Link2SD and reboot.