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

Force app move to SD w/o root?

Droid Maxx 2 (Vz branded Motorola) / up to date / not rooted

I installed a high speed / large capacity SD card and formatted it as internal storage. After reading about this option I mistakenly thought it would let me choose where to install apps to; the HD or the SD. I was wrong. That choice is predetermined by the developers, so some apps auto install to the HD and some to the SD. I did not realize that until after I had already set this up and have installed several dozen apps.

I really don't want to have to start over from scratch or root the phone.

I have found no root methods on line for moving the apps from the HD to the SD that involve installing the java SDK and a file manager and using USB debugging to move the apps manually. I have not tried this method for one reason: since I have formatted the SD card as internal storage I have not been able to find a file manager (yet) that will recognize the SD as a separate device. All the file managers I have found so far just see both the internal HD and the SD as one large pool of storage. (Anybody know of a file manager that can see the HD and SD as two separate devices even with the SD formatted as internal storage?)

Right now things are working fine and I am just trying to future proof. The SD card I bought is more than fast enough to act as a HD. And it is 128GB. Internal HD is only 16GB. Since I formatted the SD as internal storage and ran the built in data migration tool even the apps that are "required" to be installed to the HD still store all of their data on the SD card. Right now I've got 80+ apps installed (with some auto-installing to the HD and some auto-installing to the SD) with about half the free space on the HD still unused. I could probably install another 80 or so apps in this configuration before I run out of room on the internal storage. But, I'm guestimating that at that point I would probably still have 1/2 (or more) of the SD still empty and unusable for anything other than direct storage (downloads, pics, etc). I don't do much of that kind of stuff and def do not need 64GB+ for it.

Anybody have any suggestions that don't involve staring over from scratch? I have a very highly customized install as I touch every app on install and individually configure every aspect of its use to maximize unit performance, battery life and to just make it work the way I want. I'd rather not have to spend three days uninstalling, reinstalling and reconfiguring all my apps.

Any help appreciated.
 
One thing to be careful about with the net is that you will find recipes that don't apply to your device. For example, searching for instructions to force all apps to install to SD will probably bring up recipes telling you to use the command "adb shell pm set-install-location". That's not relevant to you, because that refers to the old Android 2.3 method of partially moving apps, and is nothing to do with a card that's formatted as internal.

Just to check, are your file managers really seeing phone and sd as a single unit, or are they actually just showing you the SD?

To be honest I'm dubious about using a file manager to move apps. For one thing, an installed app has several components, it's not just a matter of moving one file or folder. For another, you can't actually see the installed app using a file manager unless you have root (data files it stores in the user space, yes, but not the actual app). Also USB debugging is a set of terminal commands, so what do you actually do with a file manager if you are using USB debugging? I thought you would be able to use the system menu to move any app that you want to move (and which the system will allow - obviously pre-installed apps won't move).
 
Here is the the method I was looking at. (Not sure how to do links here.)

http://www.baatkar.com/2015/12/how-to-install-apps-directly-into-your.html

I understand that not all recipes work for all versions. (BTW, I'm on 6.1.) It's been a while since I looked at this and it appears that I either misunderstood or misremembered how it works. This method uses the android SDK, java JDK, windows file manager, usb debugging, windows android drivers and the abd shell.

A lot of this is new to me. But I'm fairly technically literate in general terms. I know that when I set up the SD card as internal storage, for reasons I *think* I understand, I had to enable the dev options and enable USB debugging for it to work. (I think it's b/c things will go Ka F'n Boom if you pull a SD card after you make it internal storage. So they make you enable USB debugging to make stuff work w/o having to pull the card.) So it is already enabled.

I also already have the windows moto drivers set up and working.

When I DL'd and installed a couple dif file managers directly on the phone they just showed me as having one large storage pool, not two storage devices.

This method uses the windows file manager. IIRC, when I hooked my phone to my PC to run a back up to a USB HD the windows file manager saw both the device and its USB card. So I'm thinking this method may work for me?

But, I see it also making reference to the abd shell; which you say does not apply to me?

If this method will not work for me do you a have link to a tut that will work on 6.1 with me having my SD card formatted as internal storage?
 
Yup, that's exactly the recipe that I was thinking of. That's for the old way, when the SD card is removable storage and you used a "move to SD" button in the app manager screen to move part of the app (only part, and none of its internal data) to a hidden folder on the SD card. I used that back in Android 2.2, and formatting an SD as internal storage (i.e. "adopting" the SD card) was only introduced in 6.0.

Because it is much, much older than adoptable storage I've been assuming it's irrelevant to your situation, but you know what, you could try it. If it really is irrelevant now then it won't make any difference. And if your SD is completely formatted as internal then it won't be able to make the old way the default (which you'd not want - that moves a lot less stuff). So you can give it a try, it should be easy to reverse. But I don't think it should be needed.

The person who wrote that recipe is only using the file explorer on the PC to find the SDK and the ADB command. He's not using it to look at files on the Android device at all, so it doesn't matter what it shows you on Android.

TBH if that doesn't do anything then I don't know anything that does. I personally plan never to use adoptable storage, so I've had no chance to experiment with it.
 
OK, I found a more capable file manager included in Android Assistant. It can see the ROM (53% 5.7GB/10.89) and Internal Storage (3% 4.18GB/117.20GB).

When I tap the "file manager" in AA it opens /storage/emulated/0 which is full of a bunch of folders; most of which, what they are is obvious.

If I tap the ROM icon in AA it opens / with a lot of the stuff I'm seeing making some sense as I have a fairly good familiarity with linux.

In / is a folder named sdcard. When I open it this way the location shows a "/sdcard" not '/storage/emulated/0"; but contains all of the exact same stuff. In the ROM icon (/) file manager there is also a folder named "storage". When I open "/storage" the location in the address bar auto-changes to "/storage/emulated/0". So, I'm guessing that when I set up the SD card as internal storage all those locations were symlinked together to point at the same location?

I found this tut:

http://techgage.com/article/moving_your_non-movable_android_apps_to_an_sd_card/

And 1/2 way down the page it has a screen shot showing:

"adb shell pm getInstallLocation (To see what it’s set to.)"

And below that it shows in the terminal:

"(0 = Auto; 1 = Internal Phone Storage; 2 = microSD External Storage"

So pull the current setinstall location and see if it's already set to 2? And if not change it and see if it works?

The reason I ask is b/c even with all those hard links pointing to the same location (SD card) there is still some version of the "move" function left in the system back end, somewhere, b/c I can look at the apps installed on the SD card and I have the option to move them back over to what the system/storage app lists as "internal storage"; which AA lists as ROM. And there is a "Move to SD" function in AA and it lists the one and only movable app I kept on the HD b/c it won't work from the SD.

Like I said: I'm just trying to future proof. Right now I've got almost 5GB left on the built in hard drive. And with letting the devs pick where an app installs I'm getting roughly a 60/40 break down with well more more than 1/2 of apps installing to ROM and the rest to SD card.

I'd like to be able to change the default app install location to the SD card now (before ROM gets full) b/c I have found 1 out of 34 apps that were eligible to move from ROM to the SD that did not work correctly after the move, so I moved it back. If I can start to get all of my apps to install to the SD by default from now on then I can manually move those few rare ones that will only work on the HD, if I have the space available.

But, the above tut, which was reposted recently but was originally posted in 2011, says this method won't work on 5/6 w/o root? It also makes mention of LinktoSD and multiple partitions on the SD with one being ext4 to install apps? (My whole SD card is ext4.)

I have a back up, in case I blow things up. But, it is not a sector by sector directly restorability image. If I blow things up there will be a lot of manual recovery work to do; at which point I would probably set the card up as a "regular" SD card before starting over.
 
OK, I found the perfect solution to my problem. None of this is original. I'll document here for others having a hard time finding the info. This is the short version of about a 1/2 dozen you tubers.

1) Install APK Editor from the play store
2) Enable install from unknown sources (I re-disable when done)
3) Open APK Editor
4) Select APK from App
5) Tap the app you want
6) Common edit
7) Change install location to "Prefer External"
8) Save
9) Close the ad
10) After successful save remove the app
11) After successful remove then install the app
12) After re-installing the modified APK go to your internal storage, find the app and select the option to move it to external storage.

This will not be ideal for everyone. It has a few draw backs:

1) You have to have enough room on internal storage to install APK editor.
2) You have to have enough room on internal storage to dl / install the app that you want to modify.
3) You have to have enough room on internal storage to create a temp version of the app when modifying / uninstalling / reinstalling through APK editor.
4) I don't think you would want to use this on something like a game you've played to high level and don't want to lose the progress
5) It's kind of kludgey.

On the upside: On initial testing APK editor does not appear to break the symlink with the play store, so the app appears to still think it was directly installed and will still pull updates? Of course, the possible downside to that is that an update might break it or move it back to internal storage?

But, this is the best solution I've found so far.

Anybody know of anything easier / better?
 
Back
Top Bottom