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

Force Apps to install to SD without Root!!

Status
Not open for further replies.

SB13X

Android Expert
Jun 24, 2010
930
225
Wigan, UK
mod note: this guide has been superceded by [Guide] Move more (most) apps to SD without root (Simplified)

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.

Here are the instructions:

How to Install Apps to the SD Card by Default on Android 2.2 Froyo | larsa | Androinica

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
 
this works fine up until the step



at this point i get no prompt at all :-(

any ideas what i need to do?


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.
 
Upvote 0
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.
 
Upvote 0
The above method will change the default installation destination to the SD card so in the future most of the apps you install will go to the SD card.

If you wish to move existing apps click Menu > Settings > Applications > Manage applications > then select the app and then click move to sd card.

As mentioned above some apps like widgets that run on the homescreen should/cannot be moved to the SD card.
 
Upvote 0
The way i did it was,

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 ....
 
Upvote 0
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
~/android-sdk-linux_x86/tools$ ./adb devices
List of devices attached
???????????? no permissions
If I try the command
Code:
./adb root
to restart the daemon in root mode again it also returns an error
sudo ./adb root
error: insufficient permissions for device
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
 
Upvote 0
Your OS will prompt you to install new drivers.

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. :)
 
Upvote 0
Try to run adb commands as root.

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
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.

Thanks to the OP for providing the info/tutorial.

Nick
 
Upvote 0
I have an issue, although I'm not sure it has something to do with this.
The problem is in this topic: http://androidforums.com/desire-support-troubleshooting/171386-not-loading-apps-sd.html
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.
 
Upvote 0
Ok guys, so I'm new to both android and the Android Forums. I signed up specially to get help with this.

- So I'm using my HTC Desire, using HTC's official 2.2 froyo update (the o2 version) and the phone is not rooted. And using windows xp.

-I have downloaded the SDK, extracted and installed USB Drivers etc.
- HTC Sync already in use, phone connects successfully etc etc.

- Now I can't get beyond the run CMD part.

I am pretty good with phones and computers etc,but have very little experience or knowledge with windows command promt.

Ive tried to open it, go to run, type in CMD and then the black screen comes up. Ive tried typing in (without quotes)

"CD Android-SDK\tools"
"C: Android-SDK\tools"
"CD Android-SDK-windows\tools"
"C: Android-SDK-windows\tools"
"cd\"
"cd AndroidSDK\tools\"
"adb devices"
"adb shell"
"pm setInstallLocation 2"

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

2u7rrm0.jpg

I think you should check the debug mode checkbox on your phone.
You can find it at settings -> applications -> development.
 
Upvote 0
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 :)


  1. Download the SDK from here- Android SDK | Android Developers
  2. Extract using something like WinRar
  3. Copy the second folder into the sdk named "android-sdk-windows" to the desktop.
  4. 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)
  5. Close the command / windows command prompt window that opens
  6. Untick all options you are promted to download except ones like the manuals, and Essentially, ensure the USB driver option is selected / ticked.
  7. Let these files download
  8. Ensure on your phone, USB Debugging is on - Go to Settings/Applications/Development/USB Debugging and ensure its ticked / on.
  9. Download and install HTC Sync from HTC's website for your device.
  10. Connect your phone by USB and select the HTC sync option when it pops up with charge only, disk mode etc.
  11. Allow the sync to complete.
  12. Open windows command promt. Start / Run
  13. Type in (without quotations) "cmd"
  14. The following should appear. (with your user account instead of William
    2u7rrm0.jpg
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
 
Upvote 0
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 :)


  1. Download the SDK from here- Android SDK | Android Developers
  2. Extract using something like WinRar
  3. Copy the second folder into the sdk named "android-sdk-windows" to the desktop.
  4. 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)
  5. Close the command / windows command prompt window that opens
  6. Untick all options you are promted to download except ones like the manuals, and Essentially, ensure the USB driver option is selected / ticked.
  7. Let these files download
  8. Ensure on your phone, USB Debugging is on - Settings, Development, USB Debugging.
  9. Download and install HTC Sync from HTC's website for your device.
  10. Connect your phone by USB and select the HTC sync option when it pops up with charge only, disk mode etc.
  11. Allow the sync to complete.
  12. Open windows command promt. Start / Run
  13. Type in (without quotations) "cmd"
  14. The following should appear. (with your user account instead of William
    2u7rrm0.jpg
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?.
 
  • Like
Reactions: daviyong and cock_e
Upvote 0
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.
 
Upvote 0
Status
Not open for further replies.

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