[NOOB!!! with GSM HERO] How to get App2SD working? - Hero, G2 Touch Q&A, Help & Troubleshooting

Hello
i want app2sd!
so i went flashing rcmix2.2b. but where i can check that app2sd is working? better: where i can see that app2sd is included in the rom??
PLEASE HEELP

U need Ext partition for apps2sd work. download phoneinfo app from market to see the Ext partion..

If you want to move your apps2sd and set sdcard as your default install location then you need download terminal emulator app from market or use ADB. Go to the app and give it superuser permission and enter the following commands
$ su
# pm setInstallLocation 2 (case-sensitive)
In the cmd (2) means it saves apps to sd card you can change it to (1) that is system and (0) means auto
You can check the location by typing the command
$ su
# pm getInstallLocation 2 (case-sensitive)
Case-sensitive is not included in the command it is only for info
Hope it helps
@0mpranav

Related

[EXPANDSD] Join your external SD with internal SD!

WARN: For developer only.
attachment is the EXPANDSD script.
Why use it?
So many applications use /sdcard for mass data storage(gameloft, navigation...),
but I9100's internal_sd size is limit to 11G, so we need external_sd's space.
But these applications dosen't know how to use external_sd, old method is hack the apk for external_sd, but this will change apk's signature, and need smali/baksmali to work. My method work in system level, don't need change any apk file.
How to use:
1.make expandsd.ownhere dirctory in external_sd root directory.
2.move internal_sd's directory(for example:/gameloft) to expandsd.ownhere
3.run init_expandsd.sh
Theory:
use 'mount --bind' feature, bind external_sd's dir to internal_sd.
Because the sd card using fat32 partition format, the 'ln -s' command does not work, so the "mount --bind" is the only way to dynamically change the directory content.
Hi mate,
Thks for your shares. I have a question. How run init_expandsd.sh?
I tried gscript and init.d, but doesn't seem to be working
woohoo a great dev has come. glad you got here mate! love your work on Desire section.
harrynghiem said:
Hi mate,
Thks for your shares. I have a question. How run init_expandsd.sh?
Click to expand...
Click to collapse
you can try to use terminal emu, just type su then navigate to folder where the script located, then type sh init_expandsd.sh then enter. this might do the trick to execute .sh
dexterdave said:
you can try to use terminal emu, just type su then navigate to folder where the script located, then type sh init_expandsd.sh then enter. this might do the trick to execute .sh
Click to expand...
Click to collapse
Does it work for you?
It's a great idea thanks a lot for your work. I was wondering why ln was not working.
But too bad it does not work for me, i get the following error :
[1] Segmentation fault
Do you have any idea why ?
Thanks again
problems when connecting phone to pc
hi,
tried the "mount --bind" in order to try your script.
works fine. the directory contents is shared between the 2 path's,
but i have a problem when i connect the phone to a pc.
when i try to disconnect, the sdcard and external_sd are not
available anymore until i reboot the phone
note: the commands that i have executed are:
Code:
mkdir /mnt/sdcard/external_sd/foo
echo "test" > /mnt/sdcard/external_sd/foo/test
mkdir /mnt/sdcard/foo
mount --bind /mnt/sdcard/external_sd/foo /mnt/sdcard/foo
Can this script be placed in init.d folder for autorun at boot?
Edit: sorry, already answered above: no, it cannot.
Sent from my GT-P1000 using Tapatalk
Seems abandoned by @ownhere
Sent from my GT-I9100
Idan73 said:
Seems abandoned by @ownhere
Sent from my GT-I9100
Click to expand...
Click to collapse
too bad, it could be very useful..
TheFirstBen said:
It's a great idea thanks a lot for your work. I was wondering why ln was not working.
But too bad it does not work for me, i get the following error :
[1] Segmentation fault
Do you have any idea why ?
Thanks again
Click to expand...
Click to collapse
got the same problem please help
How to use?
ownhere said:
WARN: For developer only.
attachment is the EXPANDSD script.
Why use it?
So many applications use /sdcard for mass data storage(gameloft, navigation...),
but I9100's internal_sd size is limit to 11G, so we need external_sd's space.
But these applications dosen't know how to use external_sd, old method is hack the apk for external_sd, but this will change apk's signature, and need smali/baksmali to work. My method work in system level, don't need change any apk file.
How to use:
1.make expandsd.ownhere dirctory in external_sd root directory.
2.move internal_sd's directory(for example:/gameloft) to expandsd.ownhere
3.run init_expandsd.sh
Theory:
use 'mount --bind' feature, bind external_sd's dir to internal_sd.
Because the sd card using fat32 partition format, the 'ln -s' command does not work, so the "mount --bind" is the only way to dynamically change the directory content.
Click to expand...
Click to collapse
thanks,
this is genius
I'm not using your script (have myself some ux & scripting skills) but did not know about the -bind option on android
Ridiculously simple and efficient
Did it my own way and it works great
Thanks a lot for this
dawabz94 said:
thanks,
this is genius
I'm not using your script (have myself some ux & scripting skills) but did not know about the -bind option on android
Ridiculously simple and efficient
Did it my own way and it works great
Thanks a lot for this
Click to expand...
Click to collapse
Then why not share with us please !
Let us know how you did
Yes I'd like to know another method also.!
Sent from my GT-I9100 using XDA
Chairmansaab said:
Then why not share with us please !
Let us know how you did
Click to expand...
Click to collapse
Hi,
it's very easy indeed, once you got the point.
I do most of my stuff using an "adb shell" session so I'll post here my steps to get it working.
Also I like simple implementation so my script is the strict minimum needed to mount necessary folders
I assume you have a rooted device with working busybox and a kernel that supports /etc/init.d/
I suggest you do the test on a dummy folder before applying on a real folder.
So start by creating a folder called /sdcard/dummy
Do it the way you want , I do it with an "adb shell" session
Code:
cd /sdcard
mkdir dummy
Then copy some files in it (photos for examples)
Code:
cd /sdcard
cd DCIM
cd Camera
cp `ls -1 |tail -5` /sdcard/dummy
From now on, we consider we want to move transparently /sdcard/dummy to the external SD
1. move the folder to the external sd
CAUTION : I'm running a CM9 rom => my external sd is mounted on /mnt/emmc
Standard samsung sdcard mount is /sdcard/external_sd
The path might be different according to your brand and rom
Moving the folder code
Code:
cd /sdcard
mv dummy /mnt/emmc/
2. Create the mount point in the indernal SD
Code:
cd /sdcard
mkdir dummy
3.a Check the mount is successful by manually doing it
Code:
mount --bind /mnt/emmc/dummy /sdcard/dummy
3.b Check you see exactly the same thing on both folders
Both commands should return exactly the same output
Code:
ls -l /sdcard/dummy
Code:
ls -l /mnt/emmc/dummy
If everything is fine, then you're good to go
4. Automate mount at boot time
Create a script in /etc/init.d to automate the mount at boot time
I personally use "vi" but most people prefer graphical UIs, I can't recommend any here, do it your own way
So basically you would go root,remount /system in read/write mode and create the file
Code:
su
mount -o remount,rw /dev/block/mmcblk0p9 /system
cd /etc/init.d
vi 90binds
Insert following lines, save and exit
Note that the "sleep 60" is to let the system boot up before mounting partitions (thanks to the initial script shared here)
Code:
#!/system/bin/sh
sleep 60
mount --bind /mnt/emmc/dummy /sdcard/dummy
Change owner and permissions, flush disk cache and remount /system in read only
Code:
su
mount -o remount,rw /dev/block/mmcblk0p9 /system
cd /etc/init.d
chown root:shell
chmod 6755 90binds
sync
mount -o remount,ro /dev/block/mmcblk0p9 /system
To check, run
Code:
su
cd /etc/init.d
ls -l 90binds
The output should look like this :
Code:
-rwsr-sr-x 1 root shell [I]0 MMM D HH:MM[/I] 90binds
5. Now you can reboot and check - after reboot - that the mount is done
Both commands should return exactly the same output (always ran in an "adb shell" session)
Code:
ls -l /sdcard/dummy
Code:
ls -l /mnt/emmc/dummy
6. Now you're good to move other folders
Basically, you move the folder to external SD
Create the mount point on the internal SD
Append the mount command in the 90binds script
And that's it
Hope this helps
---------- Post added at 11:09 AM ---------- Previous post was at 11:04 AM ----------
benc88 said:
Yes I'd like to know another method also.!
Sent from my GT-I9100 using XDA
Click to expand...
Click to collapse
Just posted
Take time to read and understand the idea

[Q] Recommended way to uninstall apps bloatware?

I got my XXKG3 phone rooted today... now is time to clean that bloatware.
I was wondering if you used any other apps beside SystemApp Remover and Titanium Backup. I'm looking also at Script Manager.
My first pick would be SystemApp Remover, then Script Manager... let me know what is your choice.
Now I use Titanium Backup but before that I have used: ADB, Terminal emulator and Root Explorer.
But if you already use Titanium Backup why would you want to use something else?
All those apps will get the job done for you but I prefer Titanium backup. I always use it to freeze/uninstall bloat and have never had an issue.
My vote would be titanium, does the job very well.
Titanium Backup, very reliable
I think I will stick with a terminal for now, I feel more comfortable to see what is going on with my own eyes in my phone.
I did an output list of all the packages:
Code:
$ pm list packages -f >> /sdcard/packages 2>&1
so I know now where each package is located and what is the associated name.
All I have to do is run:
Code:
$ su
# rm -f /system/app/package.{apk,odex}
# pm clear PACKAGE
# pm uninstall PACKAGE
Running "mount | grep system" tells me right away where and how /system is mounted:
Code:
/dev/block/mmcblk0p9 on /system type ext4 (ro,relatime,barrier=1,data=ordered)
so all I have to do is change the mount perms to write, instead of read:
Code:
# mount -o remount,rw /dev/block/mmcblk0p9 /system
Package Manager commands:
Code:
# pm
usage: pm [list|path|install|uninstall]
pm list packages [-f] [-d] [-e] [-u] [FILTER]
pm list permission-groups
pm list permissions [-g] [-f] [-d] [-u] [GROUP]
pm list instrumentation [-f] [TARGET-PACKAGE]
pm list features
pm list libraries
pm path PACKAGE
pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
pm uninstall [-k] PACKAGE
pm clear PACKAGE
pm enable PACKAGE_OR_COMPONENT
pm disable PACKAGE_OR_COMPONENT
pm setInstallLocation [0/auto] [1/internal] [2/external]
The list packages command prints all packages, optionally only
those whose package name contains the text in FILTER. Options:
-f: see their associated file.
-d: filter to include disbled packages.
-e: filter to include enabled packages.
-u: also include uninstalled packages.
The list permission-groups command prints all known
permission groups.
The list permissions command prints all known
permissions, optionally only those in GROUP. Options:
-g: organize by group.
-f: print all information.
-s: short summary.
-d: only list dangerous permissions.
-u: list only the permissions users will see.
The list instrumentation command prints all instrumentations,
or only those that target a specified package. Options:
-f: see their associated file.
The list features command prints all features of the system.
The path command prints the path to the .apk of a package.
The install command installs a package to the system. Options:
-l: install the package with FORWARD_LOCK.
-r: reinstall an exisiting app, keeping its data.
-t: allow test .apks to be installed.
-i: specify the installer package name.
-s: install package on sdcard.
-f: install package on internal flash.
The uninstall command removes a package from the system. Options:
-k: keep the data and cache directories around.
after the package removal.
The clear command deletes all data associated with a package.
The enable and disable commands change the enabled state of
a given package or component (written as "package/class").
The getInstallLocation command gets the current install location
0 [auto]: Let system decide the best location
1 [internal]: Install on internal device storage
2 [external]: Install on external media
The setInstallLocation command changes the default install location
0 [auto]: Let system decide the best location
1 [internal]: Install on internal device storage
2 [external]: Install on external media
yqed said:
I think I will stick with a terminal for now
Click to expand...
Click to collapse
term + rm
tru dat!

Eclipse Android - add superuser permission

Hi, i'm trying to access /system/app/ so i can put apps in there, since i couldt figure out how to install apk files form Eclipse. I'm running Eclipse with the SDK installed, any help or example would be awesome. Thanks
/system is typically read-only (is on every android I know of). On many (most?) devices, the partition containing /system is also write-locked in the eMMC firmware. User apps should be installed into the /data partition.
What do you mean by installing from eclipse? Eclipse uses adb to push the package to the device and launch the package installer.
Please use the Q&A Forum for questions Thanks
Moving to Q&A
There are two ways that may be of help that I know of.
ADB Install:
1. In your Android SDK manager you should have a tool called ADB (Google how to add it to your system path to make life easier)
2. Navigate to your apk file you are trying to install and shift right click in the windows explorer windo and select Open Command line here.
3. then using command line (Console) type in:
Code:
adb install nameofapphere.apk
Note: If the app has spaces in the installer name either take out the spaces or add quotes to the command line as shown below.
Code:
adb install "name of app here.apk"
Second choice is gaining command line root and remounting the system directory with rw permissions.
1. Gain console root access.
2. in console type in:
Code:
adb shell
Note if you see $ you are not in root and # if you are in root.
3. (Please double check)
Code:
mount -o remount,rw /dev/null /system
This will remount your system drive so you have read/write access to it.
4. Push the file to /system/app
5. Set the permissions you want for the application
JavaChips said:
There are two ways that may be of help that I know of.
ADB Install:
1. In your Android SDK manager you should have a tool called ADB (Google how to add it to your system path to make life easier)
2. Navigate to your apk file you are trying to install and shift right click in the windows explorer windo and select Open Command line here.
3. then using command line (Console) type in:
Code:
adb install nameofapphere.apk
Note: If the app has spaces in the installer name either take out the spaces or add quotes to the command line as shown below.
Code:
adb install "name of app here.apk"
Second choice is gaining command line root and remounting the system directory with rw permissions.
1. Gain console root access.
2. in console type in:
Code:
adb shell
Note if you see $ you are not in root and # if you are in root.
3. (Please double check)
Code:
mount -o remount,rw /dev/null /system
This will remount your system drive so you have read/write access to it.
4. Push the file to /system/app
5. Set the permissions you want for the application
Click to expand...
Click to collapse
What i mean i'm writing an app in eclipse. And i have a listview with the apk's, i want when the user clicks on the items, it gets installed. Any ideas?
spxc said:
What i mean i'm writing an app in eclipse. And i have a listview with the apk's, i want when the user clicks on the items, it gets installed. Any ideas?
Click to expand...
Click to collapse
Why did this thread get moved. Took me forever to find it.
Anyway, it seems you want to programmatically install an APK from within an android app, is that correct? Just launch an intent with the package installer as a target:
Code:
Intent installIntent = new Intent(Intent.ACTION_VIEW);
installIntent.setDataAndType("/path/to/my/apk","application/vnd.android.package-archive");
startActivity(installIntent);
Moderator: this is definitely development related. Why was it moved to Q&A?
Gene Poole said:
Code:
Intent installIntent = new Intent(Intent.ACTION_VIEW);
installIntent.setDataAndType("/path/to/my/apk","application/vnd.android.package-archive");
startActivity(installIntent);
Moderator: this is definitely development related. Why was it moved to Q&A?
Click to expand...
Click to collapse
I'll agree, and secondly I think it was moved to Q&A because the original question was asked in a way that was not clear to it's intents.
So yeah, just pointing the apks to be run by the package installer via intent will launch the installer and install the app selected.

[SOLUTION][GUIDE]Running *.sh file without problem

This thread will help those who are struggling with running the scripts.
Try to clean up the code first - check for errors/bugs, update it!!
You need to root your phone.
First method:
To change permissions use chmod 0755 script.sh
as android/busybox chmod binary does not uses the chmod +x or chmod a+x notation and make sure that su binary is installed i.e phone is rooted
Second method:
Also you must have Busy Box Installed.
Here is the link to Google Play of that busybox app: https://play.google.com/store/apps/details?id=com.jrummy.busybox.installer
Don't install the few latest versions because it is in nightlies.
I use Samsung Galaxy Y and I use the version 1.18.2.
Reboot your phone after installation.
Also you must have script manager installed.
Here is the link to Google Play of that manager app: https://play.google.com/store/apps/details?id=os.tools.scriptmanager
Open Script Manager and give super user access.
Tap on Menu > Advanced Options > Config
Scroll down until you see Browse as Root
Tap on it and press the back button to save
Once again grant Script Manager SuperUser Access to save config
Exit Script Manager
Now again open Script Manager and browse for your script file (name_of_the_script.sh)
Tap on it and set properties to:
Favorites (Star Icon)
Root (Green Android Skull Icon)
After setting properties, tap on Run to execute the script installer.
When executed, it will do initial test, be patient and wait for it to complete its tasks.
If it shows errors that your phone is not rooted and the app doesn't have root permissions, then,
Sometimes, some methods are better than using terminal.
Download a root checker app from the play store and check whether your phone is really rooted.
If no, try to root again by following tutorials on xda.
If yes, update su binaries.
Also go to settings / preferences of superuser app, and click automatic response and then select 'allow'.
If you want to get yourself with terminal emulator commands, then see the following link
http://forum.xda-developers.com/showthread.php?t=1979909
If you are trying to copy a script from sdcard to internal memory, you can do that in three ways AFAIK:
copy the file via terminal
copy the file via file manager apps
copy by making a edify script and flashing it
If you are trying to run a script, you can do that in two ways AFAIK:
copy the file via terminal
copy by making a edify script and flashing it
Download Android Terminal Emulator from Google Play: https://play.google.com/store/apps/details?id=jackpal.androidterm&hl=en
Goto Preferences in terminal and select Initial Command and enter "su" and save it
Also Change the terminal type to "linux" when you are using linux type commands.
Press thanks if I have helped.
I just want to tell you, I also have SGY and Busybox version 1.21.0 and 1.20.x work fine.
Sent from my GT-S5360 Gadget of Mass Destruction using xda-app
Using CWM........Busybox Commands........No I use my hands
can you plz try to run this script!!
https://www.dropbox.com/s/8atidhjswrts7qe/yamas.sh

[Q] move Apps to SD Card

Hello all,
i have a non rooted device with Android 5.x
I try to move big Apps like facebook and chrome to SD card, and I followed the procedure with adb:
--> adb shell pm set-install-location 2
but I receive the error:
Error: java.lang.SecurityException: Package android does not belong to 2000
did anyone see this before, or can anyone guide me how to move Apps which are by default non-movable to SD Card?
Thanx
You can do this by rooting and using link2sd.
Thanks
How to root android 5.x
I rooted the previous android version, but this version seem to have a different method
aluay said:
Thanks
How to root android 5.x
I rooted the previous android version, but this version seem to have a different method
Click to expand...
Click to collapse
use search
http://forum.xda-developers.com/g2-mini/development/root-root-g2-mini-lollipop-t3123652
You need root ---impossible without root!--- but, AFAIK, not necessarily App2SD. Just adb; but with the following syntax (yours is wrong):
$ adb shell <ENTER>
$ su <ENTER>
# (now you are root, see changed shell sign)
# pm set-install-location 2 <ENTER>
(you are done, CHECK it to believe
# pm get-install-location <ENTER>
# 2[external]
SUCCESS!

Categories

Resources