Instead of moving all applications to SD card with app2sd, I want to move only selected applications.
Because I don't want to move my launcher, soft keyboard and dialer application to SD and make them unavaliable on boot if my SD card has problem or not inserted.
In order to resolve this I developed an application called Link2SD.
The idea behind is same, linking to SD card's second partition but differs in two ways.
One, instead of linking /data/app folder (that means moving all applications), you can select applications that you want to move.
Two, it's an application which means has a user interface. You can manage your applications, create or remove links with just one click.
Creates and removes link for apk, dex and lib files of the applications you select
Lists applications, shows their link status
Sorts and filters applications
Displays available space information of internal storage, SD card and SD card 2nd partition.
What you need:
a second partition on your SD card. You should have two partitions on SD card and both should be primary.
The first FAT partition is your standard SD card storage. The second partition is used for application files and can be ext2, ext3, ext4 or FAT32.
ext4 is the latest ext format but several ROMs have issues with it while fewer have issues with ext3 and ext2. FAT works on all ROMs.
I use free "MiniTool Partition Wizard Home Edition" (windows application) for this.
You can create the second partition without repartitioning, formatting or deleting your existing partition with this tool. Connect your SD card to PC with a card reader or phone itself and make it visible as a drive. Open Minitool select this drive and resize down FAT partition, you will see an unallocated area at the end of the card. Create ext2, ext3 or FAT32 partition in that area (create as primary, not logical), click apply. Unplug from the PC and reboot the phone. (To be on the safe side backup your data before starting)
That's all. Just install Link2SD, it will do all necessary. No need to copy files or run scripts.*
* Some phones lack the ext2, ext3 or ext4 file system support and you may get mount errors like "no such device", "invalid argument". These phones need a matching ext2.ko or ext3.ko modules and even some additional modules to be able to mount.
Using FAT32 on the second partition will eleminate such problems, because FAT32 is supported on all phones.
How it works:
Link2SD mounts the second partition of your SD card as /data/sdext2 and makes OS mounts it at boot time.
When you select an application and press "Create Link" button you can select which files of the application will be linked and moved to SD card. Apk, dex and lib files can be moved and you can select all three or any two of three or even only one of them.
Then, according to your selection, Link2SD moves apk file, dalvik-cache (.dex) file and lib files (.so) to SD card's second partition and creates symbolic links in original directories.
Note: On Android 1.6 and 2.1, shortcut and the widget of the app should be re-added to homescreen if you move the apk file.
Can I remove the links and put application files back to phone?
Yes, just click on application that is linked and press "Remove Link" button. You can select which files of the application will be unlinked and moved back to internal storage.
Then, Link2SD removes the symbolic links and moves the files you selected to original directories.
What happens if I uninstall a linked application?
If you uninstall a linked application apk, dex and lib files will be automatically deleted from the SD card by Link2SD.
What happens if I update a linked application?
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 applications.
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.
Link2SD detects applications which are already moved to SD card on Android 2.2+ natively and disables "create link" for them.
System applications should not be linked to SD card. Link2SD does not allow these applications to be linked.
When you connect your phone to PC as mass storage, Android unmounts FAT partition but the second partition remains mounted. Therefore linked applications are not affected and can be run without problems.
Link2SD does not move application's private data directory; it moves apk, dex (dalvik-cache) and lib files.
DISCLAIMER: It is made available for use at your own risk with no warranty of any kind.
It's avaliable on Android Market. Search the market for "Link2SD" or scan the QR here.
- fixed force close on application startup on some devices
- added horizontal screen orientation support
- added "Link dalvik-cache files" menu back
- improved loading and scrolling performance of the app list
- added cache size to app list
- fixed "Storage Info" bug on Android 2.3
- better CM7 support
* library files get unlinked after reboot on Android 2.3 and sometimes on 2.1 and 2.2. (PackageManager unpacks all native libraries from the apk files at boot)
- added option to link library (.so) files along with apk and dex files
- added automatic linking option for the new installed apps
- added ability to link/unlink apk, dex and lib files separately
- added '->' linked indicator to Apk, Dex and Lib labels
- added lib file size and link status information
- added lib size to sort options
- some bugfixes