Forcing apps to move to storage - Gen8, Gen9, Gen10 Themes and Apps

I didn't see the mention of this on this forum, but if one has root one can force apps to move to internal storage (or SD if that's where one's device stores them), even if the developers didn't allow it. Just use adb shell or a terminal emulator and then do:
Code:
su
cd /data/app
ls
Now find the name of your app (app.name.apk, say). Then:
Code:
cp app.name.apk /sdcard
pm install -r -s /sdcard/app.name.apk
And if it works fine, you can clean up by deleting /sdcard/app.name.apk
Would be easy to make an app that does that. I like working with a command-line, so I made a little shell script: force-storage.sh:
Code:
mkdir /sdcard/tmp 2> /dev/null
for x in $* ; do
echo Forcing $x to storage
cp $x /sdcard/tmp
pm install -r -s /sdcard/tmp/$x
done
Here is a list of the kinds of apps you shouldn't do this with.
My apologies if everyone already knows this.

A bonus/downside (depending on how you think about it) is that the apps so moved won't automatically start on boot. Seems to work with Amazon App Store and Appslib (I didn't try with Market).
And of course (and I assume this is well-known) you can set all apps to install by default to sdcard / internal storage even without root:
Code:
pm setInstallLocation 2
(Do pm setInstallLocation 0 to return to the default.) I think there's an app that does that.

As part of my learning how to program on Android, I made a little app to force-move apps to SD/internal-storage. Needs root. Be careful what apps you move--some won't work so well when moved.

Related

How can I remove programs (Fresh ROM)

I'd like to remove some of the bloat which is still in Fresh.
RSS Reader
Peep
Flickr
BlueTooth Share
I was able to remove some of the programs but the above I can't remove.
well, you can try using adb. use the command:
rm /system/app/<application-name>.apk
You will need to reboot. You may not want to remove the bluetooth share though, as some apk's are required for the system to function correctly. I have never tried to remove that app, so I don't know how the system will react. If anything messes up though you can just push the apk back, or do a nandroid backup before you remove anything
I removed Peep, Flickr, and RSS using this method with Fresh and all is well. Didn't touch the BT app.
you can also get a program like root explorer. And delete the apk from the system>app folder. Well worth the $1-2 for this program.
OK cleared off some junk.
adb shell
rm /system/app/Flickr.apk
rm /system/app/RSS.apk
rm /system/app/NewsReader.apk
rm /system/app/HtcTwitter.apk
rm /system/app/com.htc.TwitterWidget.apk
rm /system/app/Bluetooth.apk
rm /system/app/Calculator.apk
rm /system/app/Calendar.apk
rm /system/app/VoiceDialer.apk
rm /system/app/htccalendarwidgets.apk
rm /system/app/com.htc.rosiewidgets.*
rm /system/app/htcbookmarkwidget.apk
rm /system/app/HtcStreamPlayer.apk
Did you not have any problems with the widgets afterwards? When I did app removal using that method my widgets list was all messed up showing strange icons and displaying text such as #bf00070
Very frustrating...
Sent from my PC36100 using XDA App
You have to reboot after you do it to let it clear that junk out.
Hrm, I believe I tried thats well I'll give it another go.
Sent from my Evo using XDA App
My personal recommendation, at least until you are 100% positive removing an app won't break something (or even if you are not 100% sure you don't in fact want the app) is to use root explorer. highlite the apps (individually of course) you don't want and rename to something like "calculator.apk" to "calculator.apk.bak". This way if, down the road you are having issues that may be tied to the app you removed, you can easily remove the ".bak" part and everything is back to normal. This way you can also be more aggressive on what you are removing and still have a backup plan.
You can also do this completely free via adb, but i am often-times screwing around with stuff like this on the road... root explorer easily allows me to do all that and more. any app that you rename with "bak" (or "old" or any thing else for that matter.. pick a system that works for you and go with it) will look like its no longer in place.. so unless you need the space you could just leave it there for future use.
terminal
you can also download a FREE terminal and:
su
cd /system/app
rm packagenamehere.apk
tonyh703 said:
you can also download a FREE terminal and:
su
cd /system/app
rm packagenamehere.apk
Click to expand...
Click to collapse
Or you can do as the guy above me said and rename them:
su
cd /system/app
mv filename.apk filename.apk.bak

[Q] How do you delete bloatware via adb

Ive done this before and for the life of me i cannot remember how to do this, and ive been searching xda and google for a half hour now, can anybody help me out. How do you remove stock apps via adb?
Thanks guys
adb shell
$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# cd /system/app
# rm xxx.apk
Replace xxx with app names. Case sensitive.
Edit: ignore $ and # when typing the commands
well this is weird, i know i have root but when i try those commands thru cmd on pc, i get error sh-3.2 it won't let me su but when i do it in terminal on phone it works fine
androidtoy09 said:
adb shell
$ su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# cd /system/app
# rm xxx.apk
Replace xxx with app names. Case sensitive.
Edit: ignore $ and # when typing the commands
Click to expand...
Click to collapse
Do I need to remove the odex files as well?
Sent from DynamikD's R00t3d & OC G2
Advisable to, yes. Also, reboot and clear cache in recovery for best results.
What is the command to list "dir" to get the app names? I've done this on my mytouch3g as well but rusty
Edit: It's "ls" lol.
Ok, so I just attempted this and get this error:
rm failed for Twitter.apk, Read-Only file system
Click to expand...
Click to collapse
And I also would like to remove these:
amazonmp3.apk
Email.apk
com.google.android.apps.finance-1.apk
Web2GoShortcut.apk
Twitter.apk
Web2GoShortcut.odex
Email.odex
What is a .odex file?
Sent from my T-Mobile G2 using XDA App
Make sure is not a typo.
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
Click to expand...
Click to collapse
Anyone know the name of the photobucket APK?
So now that we have Perma-ROOT, is it safe to delete these bloatwares without worrying about future OTA's?
And what's a .odex file? How do we delete this? Can we just delete these apps thru Titanium Backup and then boot into Recovery to clear cache?
*EDIT* - n/m i see how to delete the .odex files now
What's the .apk name for Photobucket?
*EDIT* - Got it... it's PbAndroid.apk
Need help!
Well those are the commands to remove a app how do you push a apk file back onto the /system/app. I want to push a Bluetooth.apk file from the old ROM to the new OTA and see if that helps with the Bluetooth issue I'm having with the new OTA.
If your perma rooted why not just install titanium backup and uninstall the app. If your temp rooted then you can only disable the app cuz if you delete the apps it'll only reappear after a reboot.
Becuz titanium does not let u remove apps, if it was that easy I think everyone would do it
fryrice8850 said:
Becuz titanium does not let u remove apps, if it was that easy I think everyone would do it
Click to expand...
Click to collapse
It doesn't? Then what the heck does titainium do when I press uninstall? This is a serious question.. not sarcasm.
Sent from my T-Mobile G2 using XDA App
Nvm u need to select "problems" and it will download busybox on ur g2 and then u can uninstall stock apps...
fryrice8850 said:
Nvm u need to select "problems" and it will download busybox on ur g2 and then u can uninstall stock apps...
Click to expand...
Click to collapse
Then it really is that easy... and everyone should do it.
Sent from my T-Mobile G2 using XDA App
how would the remount command change for the MyTouch4G?
nemesys571 said:
how would the remount command change for the MyTouch4G?
Click to expand...
Click to collapse
Don't think it would.
BTW you can also try this remount command for either, I was advised that it's preferable to use and it's certainly easier:
mount -o remount, rw /system

[HOW TO] add extra +700mb to Internal memory storage +600-900MB from /system

[Tweak root] add extra +700mb to Internal memory storage from /cache & +600-900MB from /system folders.
just run terminal with root & paste code
su
chmod -R 777 /cache
mkdir /cache/"your-program-folder"
mount -o bind /cache/"your-program-folder" /storage/sdcard0/"your-program-folder"
add extra +600mb (+900mb if you have LiteRom) from /system folder.
su
mkdir /system/share
chmod -R 777 /system/share
mount -o bind /system/share /storage/sdcard0/sharе
before you can write to /storage/sdcard/share mount it RW
su
mount -o rw,remount /system
after every reboot do it again. how add script to startup folder, any Idea?
all work great. I have 4.5GB + 700MB + 800MB internal storage for my music and maps.
But you cant use any OTA updates because your download /cache folder filed now. Remove all data before update
rm -R /system/share/*
rm -R /cache/*
Re: [Tweak root] add extra +700mb to Internal memory storage
Are you sure you got these commands right? And why don't you just make a script to automatically run these commands at boot? You know, so you don't have to keep running the commands over and over? And you have the work "program" spelled wrong. Its spelled with only 1 "m". Program, not programm.
Sent from my XT907 using Tapatalk 2
Re: [Tweak root] add extra +700mb to Internal memory storage
So what happens if you are using your whole internal sd including this 700 megs and you reboot? Does the system freak out?
Sent from my XT907 using Tapatalk 2
Update
sniperkill
absolutely right. And why don't you just make a script to automatically run these commands at boot?
How, do it, init.rc not work.
Clienterror said:
So what happens if you are using your whole internal sd including this 700 megs and you reboot? Does the system freak out?
Sent from my XT907 using Tapatalk 2
Click to expand...
Click to collapse
everything will be fine, just live little more space on /cache (100mb at least)
UPDATE 1st post. add extra +600mb (+900mb if you have LiteRom) from /system folder. Now I have 6GB internal storage for my music and maps.
su
mkdir /system/share
chmod -R 777 /system/share
mount -o bind /system/share /storage/sdcard0/share
before you can write to /storage/sdcard/shear mount it RW
su
mount -o rw,remount /system
But you cant use any OTA updates because your download /cache folder filed now. Remove all before update
rm -R /system/share/*
rm -R /cache/*
serraxer said:
sniperkill
absolutely right. And why don't you just make a script to automatically run these commands at boot?
How, do it, init.rc not work.
everything will be fine, just live little more space on /cache (100mb at least)
UPDATE 1st post. add extra +600mb (+900mb if you have LiteRom) from /system folder. Now I have 6GB internal storage for my music and maps.
su
mkdir /system/share
chmod -R 777 /system/share
mount -o bind /system/share /storage/sdcard0/share
before you can write to /storage/sdcard/shear mount it RW
su
mount -o rw,remount /system
But you cant use any OTA updates because your download /cache folder filed now. Remove all before update
rm -R /system/share/*
rm -R /cache/*
Click to expand...
Click to collapse
Well, make a new folder on your sdcard, I used root explorer. I called it "67tweaks", I then zipped up the folder, then navigated to my zipped folder and I removed the .zip extension (doing it this way allowed me to make a new text document, but theres prolly an easier way, but this is the way i used) and then I long pressed it so it would let me open it up as a text document. I deleted some jibberish that was inside, I then started with #!/system/bin/sh, then space, then pasted your commands under the space and I then placed the file under system/etc/init.d folder. Now every time I boot up, the script gets run. You can also use an app like "ROM toolbox" and go to scripts and just create a new script and select it to run at boot, or you can use SMmanager and create a script to run at boot.
serraxer said:
sniperkill
absolutely right. And why don't you just make a script to automatically run these commands at boot?
How, do it, init.rc not work.
I'm no dev so I wouldn't be able to make a script to run at boot, but if you don't have init.d support you can add a script to your init.qcom.post_boot.sh file in system/etc folder and it should run at boot.
Sent from my HTCONE using Tapatalk 2
Click to expand...
Click to collapse
Looks right to me.
Thanks for the info. I am learning to love my M more and more.
thinks, I'm going to have a try.
serraxer said:
[Tweak root] add extra +700mb to Internal memory storage from /cache & +600-900MB from /system folders.
just run terminal with root & paste code
su
chmod -R 777 /cache
mkdir /cache/"your-program-folder"
mount -o bind /cache/"your-program-folder" /storage/sdcard0/"your-program-folder"
add extra +600mb (+900mb if you have LiteRom) from /system folder.
su
mkdir /system/share
chmod -R 777 /system/share
mount -o bind /system/share /storage/sdcard0/sharе
before you can write to /storage/sdcard/share mount it RW
su
mount -o rw,remount /system
after every reboot do it again. how add script to startup folder, any Idea?
all work great. I have 4.5GB + 700MB + 800MB internal storage for my music and maps.
But you cant use any OTA updates because your download /cache folder filed now. Remove all data before update
rm -R /system/share/*
rm -R /cache/*
Click to expand...
Click to collapse
I cut and pasted this exactly and it doesn't work. Can you please reply with exact sequences. I keep getting mkdir failed for /cache/your-program-folder, File exists
Will this work on a bionic?
Sent from my DROID BIONIC using XDA Premium HD app

[Q] Need help deleting a directory

So here's the thing i've been exploring the possibilities of USBHost and decided to try an usb stick so i installed Paragon https://play.google.com/store/apps/details?id=com.paragon.mounter
It took me a while to get the hang of things. At first my usbstick was formatted in fat32. I specified in paragon i would like the default mount point to be USBStorage instead of /paragonNTFS. I made a small typo at first and named the folder usbStorage
now here comes the problem.
for some reason the app created 2 subfolders called sdb1 and sdb2 and i cannot remove them
Things i've tried:
cyanogenmod file manager in root access mode
-- delete directory > "This operation needs elevated permissions. Try switching to root access mode" (translated from dutch so wording may be a bit off
-- modifying permissions of folders > denied > changing permissions failed. for security reasons some filesystems, such as on sdcards do not allow changing permissions
Same problem for Astro file manager
Same problem when attaching the tablet to computer. parent directory (and sub dirs) get "removed" in windows but when checking the file system on the tablet, the opposite is true and the directories is still present
and now it's starting to piss me off. I want that folder "usbStorage" and it's subfolders "sdb1" and "sdb2" removed. so my guess is it'll have to be done by terminal commands but my terminal experience is ZERO.
in preperation of you guys helping me installed https://play.google.com/store/apps/details?id=jackpal.androidterm the same one used in cyanogenmod roms. I tried a bit of tinkering myself but prob doing something wrong
what i've tried (in sequence, --ok behind the command means it was succesfully executed)
su --ok
cd sdcard --ok
*rm -rf /usbStorage >> *rm: not found
rm -rf /usbstorage --ok, but folder was still present
rm -rf usbstorage --rm failed for usbStorage, Directory not empty
cd usbStorage --ok
rm -rf sdb1 --ok, rm failed for sdb1, Permission denied
at that point i gave up. I hope you guys can help me out
I do have paragon configured properly now and my USBstick in NTFS is getting recognised. Upon mounting of the usbstick, it now creates a folder called "USBStorage" where the contents of the usb stick is properly displayed.
so where are those android terminal / linux masters to help me out
only thing i can add is that when opening paragon with the stick attached but unmounted i do see a line above it /dev/block/sda1 but that doesn't seem to affect mounting in the specified directory
Bump, anyone? I want and need this folder removed
Verstuurd vanaf mijn Nexus 7 met Tapatalk
From my understanding of your post.
You are rooted and using cyanogenmod?
Did you try going into the app information and clear data?
In the app drawer hold the app and then drag it to App Info
Clear data.
Did that solve it? If not continue below.
Make sure you don't have the USB stick mounted and or plugged in.
Then go into terminal and type
su
Then type.
mount
The mount command shows all listed mount points. If you don't see the usbStorage or whatever mounted.
Then type.
busybox rm -rf usbStorage
Or whatever the main directory is...
For example directory is at.
/sdcard/usbStorage
cd /sdcard
rm -rf usbStorage
Let me know how you make out.
Sent from my Galaxy Nexus using xda app-developers app
nope, my phone is running CM 10.2 (not relevant to the question) this is the nexus section and its my nexus 7 2013 running stock rom but rooted yes that needs the folders removed.
The folders i need to delete according to the Nexus 7 mount main mount path SD content
main path: /storage/emulated/0 or /storage/emulated/legacy (both are the same according according to ParagonNTFS as a folder the mount path /sdcard/USBStorage = /storage/emulated/0/USBStorage or /storage/emulated/legacy/USBStorage
important lines?
/dev/fuse /storage/emulated/0/ fuse rw,nosuid,nodev,realtime, user_id=1023, default_permissions,allow_other 0 0
/def/fuse /storage/emulated/legacy fuse rw,nosuid,nodev,relatimeuser,user_id=1023, group_id=1023,default_permissions,allow_other 0 0
folders to delete are
/storage/emulated/0/usbStorage
/storage/emulated/0/usbStorage/sdb1 <= can select these just fine
/storage/emulated/0/usbStorage/sdb2
/storage/emulated/0/ParagonNTFS <= simply selecting this folder prompts CM manager "this operation needs elevated priviledges. Try switching to rootmodus, even when the CM filemanager already is in root mode
so i went
Opening terminal
su
cd sdcard (command ok)
cd usbStorage (commando ok)
busybox rm -rf sdb1
rm: can't remove 'sdb1': permission denied
Then i tried
cd /sdcard
rm -rf usbStorage
rm failed for usbStorage, Directory not empty
cd usbStorage
rm -rf sdb1
rm failed for sdb1, Permisison denied
busybox rm -rf sdb1
rm: can't remove 'sdb1': Permision denied
According to Cyanogen mod file manager:
Filesysteminfo:
Status: rw
linkpath?: /storage/emulated/0
Device: /dev/fuse
Type: fuse
Options: rw,nosuid,nodev,relatime,user_id=1023,default_permissions,allow_other
Dump / Pass: 0 / 0
even with the app ParagonNTFS uninstalled it doesnt work
hmm
try
close the app ParoganNTFS and uninstall it.
then try to delete those directories.
Also when you type
mount
does it show any of the directories you are trying to delete as mounted?
if it is try
umount /sdcard/usbStorage/sdb1
rm -rf /sdcard/usbStorage/sda1
were you able to delete the dir?
I had the same problems under very similar circumstances. Stickmount rather than paragon. The only way I could delete the dir was to boot into recovery (team win recovery project v2.7.1.1) and delete it with TWRP's terminal command. Something in the OS apparently locks on to the mount and simply will not let it go ever. It has to be done before android starts. It's very annoying. I am beginning to really be disgusted with many of the decisions google is making with regard to android. Why do they hate sdcard expansion so much? its absurd.
---------- Post added at 04:22 AM ---------- Previous post was at 04:17 AM ----------
Oh and by the way, even though the OS latched on to that folder as if its very existence depended on it, I was never able to even see the files on the USB memory stick with any file explorer. Worked just fine in kit kat and before. In some ways lollipop really sucks.

[method] change play store download location

Hi guys, today i am here to tell you a method only tested on a galaxy y, but i hope it will work for all. this is a method to change the download location for play store.
WARNING!!!
1. WARRANTY IS NOW VOID.
2. NOT MY PROBLEM IF SOME APP FAIL.
3. PLEASE, PLEASE, PLEASE DO A NANDROID BACKUP BEFORE THIS.
This is a simple code but it needs root for sure. now the necessities are as follows:
1. A complete nandroid backup
2. Root Permissions
3. Any terminal emulator. e.g https://play.google.com/store/apps/details?id=hecticman.jsterm
4. You need to know the default download location and the mount point of sd card( if that is where you want the new download location )
Now let's start.
Just know this that mnt/sdcard will have to be replaced by your sdcard mount point and data/app will have to be replaced by the default download location. i underlined them for easy understanding.
NOT MY PROBLEM IF THIS FAILS AND YOUR PLAY STORE CRASHES. JUST DO A NANDROID RESTORE.
THERE WILL ALREADY BE A $ AT START SO U DON'T HAVE TO PUT IT.
$ su
# mkdir /mnt/sdcard/playstore
# cp -r /data/app/* /mnt/sdcard/playstore
# rm -rf /data/app
# ln -s /mnt/sdcard/playstore /data/app
Click to expand...
Click to collapse
what the code does:
1. Grant super user permissions
2. Make a directory in sdcard named playstore.
3. Copy all items (recursively) from data/app to sdcard/playstore
4.Symlink the new location to fake the original.
Hitting Thanks can help.
and once again PLEASE BACKUP BEFORE THIS AND RESTORE IF NOT SUCCESSFUL.
This is based on the code used by link2sd.
Could you please double check your code fragments?
For me it looks, like you create a directory "playstore", but then copy to a directory "playstore-temp", which will most like not exist at that moment.
The ln you're using can't realy work as long as the /data/app directory is still in place... so you would first need to delete /rename it.
Just my 2¢
thanks dude
DThought said:
Could you please double check your code fragments?
For me it looks, like you create a directory "playstore", but then copy to a directory "playstore-temp", which will most like not exist at that moment.
The ln you're using can't realy work as long as the /data/app directory is still in place... so you would first need to delete /rename it.
Just my 2¢
Click to expand...
Click to collapse
looks like i was drunk making so much mistakes . corrected it.
It's not so simple if you use Link2SD. If you link some apps to sdext partition, some files in /data/app are symlinks which cannont be copied to /mnt/sdcard/playstore as it's FAT32. You have to try to symlink /app/data to folder on sdext partition. Create a folder /data/sdext2/playstore, copy /data/app/* there, delete /data/app and symlink /data/sdext2/playstore as /data/app. Sdext partition uses linux filesystem and all symlinks should work properly. I haven't tested it yet, but will do in a minute.
EDIT:
It doesn't work with Link2SD. Phone hangs on boot. It's probably cause Link2SD app must be directly in internal memory (so in real /data/app, not symlinked). I'll try to symlink /data/data or /data/dalvik-cache to save some internal memory but I doubt it'll work.

Categories

Resources