This was linked to within the Froyo Tips thread above however the link connected to a Blog where the blogger no longer wished to support the advice contained therein. He also appears to have taken down his blog completely since then.
So here is the guide to installing your apps to SD by default by using the Android SDK and your phone attached to your PC under Disk drive while having USB Debugging active, to have all apps you download install to SD by default.
First you have to enable USB debugging on your Android device from Settings > Applications > Development > USB debugging. Now you need to download and install the Android SDK on your computer from http://developer.android.com/sdk/.
Once you’ve downloaded and extracted the package to the folder of your choice, run SDK Setup.exe and click on Available Packages to the left. If you get an error message at this point, enable “Force https://…” in the Settings. From the list of available packages, select “Usb Driver package”, click on the Install Selected button in the bottom right corner and follow the prompts.
Connect your phone to your computer with a USB-cable. Your OS will prompt you to install new drivers. Choose to install them from the android-sdk/usb_driver folder. Do not mount your device; you only need to plug-in the cable.
Next, run a command prompt and navigate to the Android-SDK\tools folder. In Windows, this is done by selecting Run from the Start Menu (or by pressing Win+R) and typing cmd. You change drives in the command prompt by entering the drive letter followed by a colon (, and change folders with the CD command. For example, to enter the Android-SDK folder, simply type cd android-sdk.
In the Android-SDK\tools folder, type in adb devices and you should get a serial number starting with “H” in return. All you have to do next is entering adb shell pm setInstallLocation Voilą, you’re done! Android will now installapps to the SD card by default.
To switch back to storing software on the internal memory, enter adb shell pm setInstallLocation 0.
I should point out that it’s preferable to install certain apps to the main memory, since it will take a while before the SD card becomes available when you start your phone. Applications installed on the memory card will also be unavailable to the system each time you mount your phone as a disk drive. The internal storage is probably quicker as well, even though Google claims that “there is no effect on the application performance so long as the external storage is mounted on the device.” In general, apps that integrate with the Android OS and that often run in the background is better to install on the internal storage, while games and most other applications will have no problem chilling outside on your SD.
Update: Homescreen widgets should be installed to the internal storage as well. I noticed that LauncherPro, for example, won’t recognize widgets stored on the SD card when you start your phone, because when the app is launched, the memory card is still unavailable.
If you have any issues after installing any apps or after moving them please ensure that you have power cycled your phone before replying to this thread with issues.
I will check back daily to either answer your question directly or advise you on where best to look.
Connect your phone to your computer with a USB-cable. Your OS will prompt you to install new drivers. Choose to install them from the android-sdk/usb_driver folder. Do not mount your device; you only need to plug-in the cable.
If you are running Windows 7 like me, UNPLUG your phone from PC, d/l the Android SDK kit but entirely skip the part with installing USB driver, instead just go to HTC page ( http://www.htc.com -> Support and find your product ) and d/l HTC Sync application, install it. Plug in the phone now, set connection type to synchronize and check if HTC Sync recognizes the phone, if yes, you are set (HTC Sync installs the needed ADB drivers under Win 7).
All you need to do now is to enable the USB Debugging in your phone and set connection type to "Charge only" (tho it worked also with sync setting) and follow up rest of the tutorial.
The Following 3 Users Say Thank You to felix1318 For This Useful Post:
does this force apps that are not permitted to be stored on the SD card onto the SD card? Or does this just change the installation location default settings?
the apps that can't be moved: maps, what the doodle, jewllust, basket ball, facebook, and abduction world attack. the rest (about another 50-70) are all now on SD card.
Yes - yes - yes. Made me a happy bunny. Just a quick add if other people are having problems. The ADK extracted as "android-sdk-windows", so I had to type cd android-sdk-windows\tools . Otherwise easy to do, and works great.... thanks.
also just another note, some apps i had to move back otherwise the widgets wouldn't load properly, or notifications would stop etc.
These were:
no lock, missed reminder, battery time lite, advanced task killer, jorte, 3g watchdog. You get the idea. Handcent is working from the SD fine but is force closing every time I send a message now so I might move that back too.
hi, I was wondering if there was a way to move certain apps? And after I do the command will they all automatically move, or is it just the next install to come?
cd\
cd AndroidSDK\tools\
adb devices
adb shell
pm setInstallLocation 2
do it exactly like that including all spaces/capital letters etc to make it work.
Even I have win 7, and even I did not get the prompt, so I installed the HTC Sync........now the next step says to navigate to AndroidSDK\tools folder ..... now where is that. i cannot find this location on my c drive ...???
EDIT ::: never mind I figured that out ..... you need to go the folder where you extracted SDk Package ......
and BTW thanks for this guide @stublake ..... this works perfectly ..... tried an application immediately after following up the steps and the apps did show on the SD card ..... Thanks again ....
Last edited by sam9s; September 6th, 2010 at 02:33 PM.
I have an issue, although I'm not sure it has something to do with this.
The problem is in this topic: Not loading apps on sd
It only happened twice now and only did after I used this trick.
The Following User Says Thank You to jelte12345 For This Useful Post:
I'm following the instructions, but when I connect to my computer (running xp)
I don't get any prompt to install the drivers, and I can't seem to navigate to the folder using the cmd command. Exactly where should I put it? .. Thanks.
SOLVED:
My son helped me out, we had to install HTC sync from their site, to get the correct drivers.
Now working great .. Thanks to OP. :-)
Last edited by Mavis Cruet; September 10th, 2010 at 06:56 AM.
Thanks for the suggestion but, as I loosely mentioned in my post, running as root still presents permission errors.
In the end, sadness of all sadness, I had to fire up Win 7 in a VM. Install HTC Sync in it. Download the SDK for Windows and was able to perform this from there with a few reboots and visits to Device Manager to get the drivers installed and running. Funny thing too for me was that I can't get HTC Sync (latest version downloaded from HTC's site) to recognise the phone. It's definitely recognised and all the drivers are installed by the OS but HTC Sync can't recognise it. But executing
Quote:
adb devices
while in the correct folder (tools folder where the SDK had been extracted to) it appeared and I executed the
Code:
adb shell pm setInstallLocation 2
everything worked and I was able to relocate all those apps that are OK to be relocated to SD.
Would love to know how to fix the permissions problem when using Ubuntu so I can make better use of it next time.
I have an issue, although I'm not sure it has something to do with this.
The problem is in this topic: Not loading apps on sd
It only happened twice now and only did after I used this trick.
I just thought of something. I have two pc's and only one of them has the sdk and htc sync installed.
is it possible that it causes this problem when I try to connect to the pc (mount as diskdrive) i haven't installed it on?
please help me.
i now have an issue where my win 7 pc does not recognise my phone at all in disk mode, but connecting in htc sync suddenly works in disk mode. not a big deal but meh.
anyway.
will any OTA updates screw up my phone now that I have moved tonnes of apps over that should not have normally been allowed?
etc etc and It always comes up with errors and not recognised, code not expected errors and stuff and I am completely lost.
Below is what my command promt thingy looks like. Please please please can someone reply back telling me specifically telling me about capitals and spaces etc what I have to type exactly for my system.
What do I put after C:\Documents and Settings\William> ??? I am desperate to get this working.
Thanks.
William
I think you should check the debug mode checkbox on your phone.
You can find it at settings -> applications -> development.
Device(s): HTC Desire
Current ROM: Redux 2 Test Builds (Gingerbread 2.3.5)
Carrier: Not Provided
Thanks: 90
Thanked 217 Times in 79 Posts
My Noob's Guide to this Process.
Ignore my last post. Successfully running most apps from my SD Card now. I think I will clarify how to do this for other users, as as helpful as the first post is - I think it misses out some key points for noobs
Copy the second folder into the sdk named "android-sdk-windows" to the desktop.
Open the folder on the desktop and open the file, SDK Manager.exe (as no such file as setup.exe exists in the new version of the SDk)
Close the command / windows command prompt window that opens
Untick all options you are promted to download except ones like the manuals, and Essentially, ensure the USB driver option is selected / ticked.
Let these files download
Ensure on your phone, USB Debugging is on - Go to Settings/Applications/Development/USB Debugging and ensure its ticked / on.
Download and install HTC Sync from HTC's website for your device.
Connect your phone by USB and select the HTC sync option when it pops up with charge only, disk mode etc.
Allow the sync to complete.
Open windows command promt. Start / Run
Type in (without quotations) "cmd"
The following should appear. (with your user account instead of William
15. Type in the following after the ">" at each step (without quotations,and including spaces and capital letters)
"cd desktop\android-sdk-windows\tools"
"adb devices"
"adb shell"
A $ sign should pop up
"pm setInstallLocation 2"
Another $ should pop up
And your done. Close everything, disconnect phone, turn off phone and then turn it back on again.
16. Now the phone will be set to install all apps you install onto the SD card. However, current apps on phone will mostly still be stored on the internal memory. This process doesn't move these apps for you, it adds the ability. So you must now manually move those already installed on the phone.
To do this, go to settings / applications / manage applications
Then you just click on an app, and the move to SD card box should no longer be Grey. So you must now move all the apps you want onto the SD Card.
Note: I would not advise moving apps like widgets, or anything system related. Furthermore, for example, I have the 3g watchdog app and the advanced task killer app constantly running, so it is advisable to keep apps like that on the internal memory.
Good luck. Any questions just ask. Ill check back regularly too. Hopefully, this guide is a little simpler for noobs
William
Last edited by williamj1; September 12th, 2010 at 06:16 AM.
The Following 8 Users Say Thank You to williamj1 For This Useful Post:
Ignore my last post. Successfully running most apps from my SD Card now. I think I will clarify how to do this for other users, as as helpful as the first post is - I think it misses out some key points for noobs
Copy the second folder into the sdk named "android-sdk-windows" to the desktop.
Open the folder on the desktop and open the file, SDK Manager.exe (as no such file as setup.exe exists in the new version of the SDk)
Close the command / windows command prompt window that opens
Untick all options you are promted to download except ones like the manuals, and Essentially, ensure the USB driver option is selected / ticked.
Let these files download
Ensure on your phone, USB Debugging is on - Settings, Development, USB Debugging.
Download and install HTC Sync from HTC's website for your device.
Connect your phone by USB and select the HTC sync option when it pops up with charge only, disk mode etc.
Allow the sync to complete.
Open windows command promt. Start / Run
Type in (without quotations) "cmd"
The following should appear. (with your user account instead of William
15. Type in the following after the ">" at each step (without quotations,and including spaces and capital letters)
"cd desktop\android-sdk-windows\tools"
"adb devices"
"adb shell"
A $ sign should pop up
"pm setInstallLocation 2"
Another $ should pop up
And your done. Close everything, disconnect phone, turn off phone and then turn it back on again.
16. Now the phone will be set to install all apps you install onto the SD card. However, current apps on phone will mostly still be stored on the internal memory. This process doesn't move these apps for you, it adds the ability. So you must now manually move those already installed on the phone.
To do this, go to settings / applications / manage applications
Then you just click on an app, and the move to SD card box should no longer be Grey. So you must now move all the apps you want onto the SD Card.
Note: I would not advise moving apps like widgets, or anything system related. Furthermore, for example, I have the 3g watchdog app and the advanced task killer app constantly running, so it is advisable to keep apps like that on the internal memory.
Good luck. Any questions just ask. Ill check back regularly too. Hopefully, this guide is a little simpler for noobs
William
Have done everything as above and keep getting :the system cannot find the path specified when I run the cmd part, can anyone advise me on what to do?.
The Following 2 Users Say Thank You to Nessiehunters For This Useful Post:
Device(s): HTC Desire
Current ROM: Redux 2 Test Builds (Gingerbread 2.3.5)
Carrier: Not Provided
Thanks: 90
Thanked 217 Times in 79 Posts
Quote:
Originally Posted by Nessiehunters
Have done everything as above and keep getting :the system cannot find the path specified when I run the cmd part, can anyone advise me on what to do?.
Can you upload a picture like i did of the command prompt window showing what you are attempting to type in or tell me what it is your typing ?
The invalid path message suggests it cannot find the required folder you are asking it to. My method only works if you have saved it to the desktop. If you have saved it elsewhere it won't work. You would have to redirect the desktop part of the code ("cd desktop\android-sdk-windows\tools") to somewhere else.
For example if you saved it in my docs instead, it would be - "cd My Documents\android-sdk-windows\tools". That's why I used the desktop, it's far easier to code the cmd to find the file.
Finally, part of the problem is that when you extract the core sdk rar file, it is extracted to a folder wherever it was saved originally titled android-sdk-windows, but in that is another folder called android-sdk-windows, and then only once you open that second folder do you gain access to the tools, usb driver folders and so on. Therefore, you must either, remove the first folder so you are left with just a folder named android-sdk-windows which inside contains tools... or you must recode my above to say "cd Desktop\android-sdk-windows\android-sdk-windows\tools".
Likewise, beware as I can't remember for certain, but I think the sdk in its core form is called android-sdk_r07-windows or something, so rename this to android-sdk-windows.
Last edited by williamj1; September 12th, 2010 at 05:43 AM.
Reason: Added more info.
After the last step: 'pm setInstallLocation 2' I have got the following error: 'setInstallLocation: permission denied'. Do I need to enable permissions before somewhere? Thanks.
Device(s): HTC Desire
Current ROM: Redux 2 Test Builds (Gingerbread 2.3.5)
Carrier: Not Provided
Thanks: 90
Thanked 217 Times in 79 Posts
Quote:
Originally Posted by kureka
After the last step: 'pm setInstallLocation 2' I have got the following error: 'setInstallLocation: permission denied'. Do I need to enable permissions before somewhere? Thanks.
Step 8. Ensure on your phone, USB Debugging is on - Go to Settings/Applications/Development/ and ensure USB Debugging is ticked.
Then make sure you connect in Sync mode and allow the htc sync to complete.
The Following User Says Thank You to williamj1 For This Useful Post:
Device(s): HTC Desire, LG Shine Plus, LG Optimus One
Carrier: Not Provided
Thanks: 6
Thanked 56 Times in 46 Posts
Quote:
Originally Posted by nicknefarious
Hey all,
Can anyone help me out here... I am trying to do this on my non-rooted HTC Desire using Ubuntu Lucid 64-bit.
When I try to run the
Code:
./adb devices
command in a terminal after navigating to the tools directory where adb is located it returns an error message saying If I try the command
Code:
./adb root
to restart the daemon in root mode again it also returns an error This happens when I run execute any of the adb commands. How do I pass myself the permissions for the device so I can execute the commands?
Any help here is much appreciated.
Big cheers,
Nick
You don't need to sudo on your Ubuntu to do these adb commands as long as adb's installed on your home directory. And from the results of your adb devices, you don't have an android.rules setup.
as root (in Ubuntu) open a new file in /etc/udev/rules.d/51-android.rules and add:
Managed to get it to work! I had the folder on the desktop, I had not opened the second folder containing the files, thanks for the tutorial above it really helped me a lot. Thanks Williamj1 for taking the time to Provide the instructions.
Last edited by Nessiehunters; September 13th, 2010 at 06:59 AM.
Have done everything as above and keep getting :the system cannot find the path specified when I run the cmd part, can anyone advise me on what to do?.
To do this, go to settings / applications / manage applications
Then you just click on an app, and the move to SD card box should no longer be Grey. So you must now move all the apps you want onto the SD Card.
Hi, I have done all the steps a couple of times now but when I go into settings and manage applications, the option to move to sd card is not there, not even greyed out. Am I doing something wrong?
guys jus remember after you do this.all new apps will install to sdcard
so if its a widget or an app that automatically starts up at boot, then u need to do the following
after app/widget is installed. go to applications.and click on the app/widget and move to sd. then you need to restart your phone.otherwise you wont see the widget in the list when you trying to add it to one of your homescreens
Device(s): HTC Desire
Current ROM: Redux 2 Test Builds (Gingerbread 2.3.5)
Carrier: Not Provided
Thanks: 90
Thanked 217 Times in 79 Posts
Quote:
Originally Posted by Magser
Hi, I have done all the steps a couple of times now but when I go into settings and manage applications, the option to move to sd card is not there, not even greyed out. Am I doing something wrong?
What is your phone?
Is the phone running android version 2.2 froyo?
What application are you trying to move?
this method certainly works! The only downside appears to be that applications installed pre-modification and then subsequently moved to the SD card don't seem to be updated via the Market - at least not to the SD card. But a re-installation seems to work fine. So all in all, a good tip.
It is great to be able to move most apps but having used it for a weeks I've noticed several apps still leave a 'footprint' on the system memory, and some of these can be quite big.
Rockplayer for example is a whopping 12 meg on the internal memory but even when moved to the SD card it leaves 8 meg on the system memory used up - for an app that does nothing in the background unless actively used it's pretty disappointing.
Device(s): Nexus7 Unrooted
SGS II Unrooted
HTC Desire (Mildwild 4.3)
ZTE Blade (TPT to Gen2, Self moded CM7.2)
Carrier: Not Provided
Thanks: 59
Thanked 9 Times in 9 Posts
I am thinking of doing this and have some questions. Please help.
1. Is there any chance of bricking the phone whilst doing this?
2. Does it work after official branded software update?
3. Can you move apps to phone once they are installed to sd without reversing the save location using this method?
I have done it successfully....
Thanks all........
but still after installing application though it is installing in SD but phone memory filling up.and also few application can not move, like google map, adove flush player...
Is there any way to move them to SD.
thanks all.. agian
Device(s): HTC Desire / HTC Desire HD / HTC One X / Sony Ericsson Xperia X10 Mini Pro
Carrier: Not Provided
Thanks: 166
Thanked 225 Times in 176 Posts
One thing I am discovering is that your phone memory will still have data added with every app installed however this is just data that allows the phone to locate the required app. Another thing is that you may still continue to get low memory notifications. That said I have found out that you can quite happily ignore it, and if the notification sitting there bothers you a great deal a quick reboot of the phone will remove it until you install something else where it may well appear again. HTH
Device(s): ASUS Transformer Tf101 ICS Rooted
HTC Desire - MIUI
Carrier: Not Provided
Thanks: 63
Thanked 18 Times in 18 Posts
Hi,
I cannot get this to work at all. I have the latest sdk and Sync software installed (both downloaded today).
Following the instructions and I sync the mob, then issue the command:
adb devices - this then results in:
adb server is out of date. killing...
* daemon started successfully *
At this point, my phone is disconnected automatically from Sync and the rest of the instructions fail (permission denied), presumably because of the disconnection. I have to replug my mob into the cable to get Sync to recognise it again.
I have tried rebooting the phone and performing the steps with it set to "charge only" (doesn't work at all) and with it running Sync.
How can I stop it killing the adb server? If I could prevent it from doing this, I think it would probably work.
Device(s): HTC Desire
Current ROM: Redux 2 Test Builds (Gingerbread 2.3.5)
Carrier: Not Provided
Thanks: 90
Thanked 217 Times in 79 Posts
Quote:
Originally Posted by jim_h
Hi,
I cannot get this to work at all. I have the latest sdk and Sync software installed (both downloaded today).
Following the instructions and I sync the mob, then issue the command:
adb devices - this then results in:
adb server is out of date. killing...
* daemon started successfully *
At this point, my phone is disconnected automatically from Sync and the rest of the instructions fail (permission denied), presumably because of the disconnection. I have to replug my mob into the cable to get Sync to recognise it again.
I have tried rebooting the phone and performing the steps with it set to "charge only" (doesn't work at all) and with it running Sync.
How can I stop it killing the adb server? If I could prevent it from doing this, I think it would probably work.
Any help would be appreciated.
Cheers,
Jim
No. It should kill the adb server. The code you typed ^^ is correct.
And put it in Sync mode, not charge only mode, then allow HTC Sync to complete and try again.