I need to make a script that executes a lots of thing on Android device, my device is rooted, when I enter on the shell, I can give the command su, and it works but I need pass this command like:
adb shell " su; mv /sdcard/Download/app_test /data/local; cd /data/local; ./app_test; exit; exit; "
when I put some commands before the su it works, according what I read su creates a new shell that return immediately, but I need give commands on the su shell, how can I do that?
Well if you phone is rooted you can run commands with the “su -c” command.
Here is an example of a cat command on the build.prop file to get a phones product information.
adb shell “su -c ‘cat /system/build.prop |grep “product”‘”
This invokes root permission and runs the command inside the ‘ ‘
Notice the 5 end quotes, that is required that you close ALL your end quotes or you will get an error.
For clarification the format is like this.
adb shell “su -c ‘[your command goes here]'”
Make sure you enter the command EXACTLY the way that you normally would when running it in shell.
Give it a try, hope this helps.
su command does not execute anything, it just raise your privileges.
adb shell su -c YOUR_COMMAND.
By default CM10 only allows root access from Apps not ADB. Go to Settings -> Developer options -> Root access, and change option to “Apps and ADB”.
On my Linux I see an error with
adb shell "su -c '[your command goes here]'"
su: invalid uid/gid ‘-c’
The solution is on Linux
adb shell su 0 '[your command goes here]'