Related
I have been following the unlock instructions on these posts on how to unlock the Hero, but I am having some trouble. When to comes to making the adb shell, it just doesn't do it. It shows a dollar sign and says that the request is denied. I just don't get what I'm doing wrong. Are there extra steps for me because there are x86 files? If I have to put the android sdk into the program files x86 folder, how would I enter that into the commander? Any help would be appreciated guys, this is driving me crazy.
OK so you get to the dollar sign. What do you do then?
Kamar234 said:
I have been following the unlock instructions on these posts on how to unlock the Hero, but I am having some trouble. When to comes to making the adb shell, it just doesn't do it. It shows a dollar sign and says that the request is denied. I just don't get what I'm doing wrong. Are there extra steps for me because there are x86 files? If I have to put the android sdk into the program files x86 folder, how would I enter that into the commander? Any help would be appreciated guys, this is driving me crazy.
Click to expand...
Click to collapse
Just extract the sdk so its a folder. Then go to Start->Run-> type cmd.exe in the box that opens. Now navigate to where you extracted the sdk folder. If you extracted it straight onto the c:\ drive at top level, you'd do something like this:
Code:
cd c:\android-sdk\tools
That will get you into the directory that has adb.exe
Now follow the instructions in the "how to root" thread.
I can get down to the point where I execute the adp push and all the lines come up saying that the adp is restarted and there is obviously a command that is executed.
adb shell
chmod 0755 /data/local/asroot2
this part is when it says access is denied. I follow everything perfectly, but I just don't get it.
Oh, easy.
Type "su" and hit enter.
The dollar sign prompt indicates you are running as a regular user. Run su and it will give you a # prompt indicating you are running as root.
Then do the chmod.
It specifically says after entering this line
/data/local/asroot2 /system/bin/sh
system cannot find the path specified. Any ideas?
so when the dollar sign comes up, just type su and hit enter, that's it?
Kamar234 said:
It specifically says after entering this line
/data/local/asroot2 /system/bin/sh
system cannot find the path specified. Any ideas?
Click to expand...
Click to collapse
Are you sure the asroot2 file has been copied over to your phone? What I did is extract asroot2 into the tools folder, so that I could just say adb push asroot2 /data/local/
My suggestion is to make sure the file is in /data/local/
Also, here is the full thing taken from the other thread:
Code:
adb push /directory_you_placed_asroot2/asroot2 /data/local/
adb shell
chmod 0755 /data/local/asroot2
/data/local/asroot2 /system/bin/sh
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
cd /system/bin
cat sh > su
chmod 4755 su
Yup, I put it in the tool folder within the android sdk. I am using the 1.5 sdk as well.
I just really can't understand what I'm doing wrong
Do:
ls -al /data/local
Do you see asroot there?
it says not found. I entered it by the dollar sign
Kamar234 said:
it says not found. I entered it by the dollar sign
Click to expand...
Click to collapse
That means the file isn't copied over. You need to do the adb push line again, and make sure it copies the file over.
how do I do that? Is there a something that it does or says to let you know it has copied over?
Kamar234 said:
how do I do that? Is there a something that it does or says to let you know it has copied over?
Click to expand...
Click to collapse
The first line here:
Code:
adb push /directory_you_placed_asroot2/asroot2 /data/local/
That puts the asroot2 file into your phone's /data/local/ directory.
This line gets you into your phone's shell:
Code:
adb shell
AT THIS POINT, you should see a $ dollar sign. This means you are in your phone.
This line will let you check that asroot2 has been copied over:
Code:
ls -al /data/local
This line gives the file you just copied over, permission to execute/run:
Code:
chmod 0755 /data/local/asroot2
This line runs the file you copied over:
Code:
/data/local/asroot2 /system/bin/sh
This line mounts your file system on your phone as writable:
Code:
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
I am also running windows 7 through vmware fusion, do you think that would make a difference.
Kamar234 said:
I am also running windows 7 through vmware fusion, do you think that would make a difference.
Click to expand...
Click to collapse
I don't know, I don't think it should. Can you type everything in and then paste us your results?
Type pwd and hit enter.
What do you see?
Thank you so much for all your help everyone. I think I may have finally gotten it. If I am installing an app that needs root access, will it install at all if the phone isn't rooted?
Hi,
I'm making a batch file (*.bat) for myself to try make some things easier file where I enter commands with adb.exe.
The problem is, any code after 'adb shell' is not executed in the batch.
So if I had a batch with the following:
Code:
adb shell
su
'su' will not be executed and stays at '$'.
It seems like it's too deep for a batch file to enter codes.
I also tried pushing a sh with the same script and run it from adb but then all I get it permission denied.
I have also tried 'adb shell su' without any luck.
Anyone with a solution?
Anyone? Or how about a .rc file that gets su and runs commands...
Sent from my HTC
To execute a script, you can always push your script and then execute it:
Code:
adb push script /sdcard/script
adb shell sh /sdcard/script
As for the commands you have shown, keep in mind that su doesn't simply change the running shell's permissions or the like but creates a new child environment within its own shell. You leave your script and after the new shell has finished, you're back in your old environment and the script continues.
mizch said:
To execute a script, you can always push your script and then execute it:
Code:
adb push script /sdcard/script
adb shell sh /sdcard/script
As for the commands you have shown, keep in mind that su doesn't simply change the running shell's permissions or the like but creates a new child environment within its own shell. You leave your script and after the new shell has finished, you're back in your old environment and the script continues.
Click to expand...
Click to collapse
yes, is there any way to automate the script inside the shell and use exit to finally go back to the batch script.
Can you provide me with an example of what you want to achieve?
To execute shell commands from a batch, it doesn't matter if I have to push a script and execute it. It's so that I get su and automate commands after that. Like flash_image, remount, chmod etc..
you will need to use the 'adb shell command' ad 'sh' files
I am trying to create a unix script file that copies files from /dbdata/databases to another folder as a backup.
When I try running the script in adb shell as SU, I get
cd: can't cd to /dbdata/databases
This is on a rooted Captivate. Any help would be greatly appreciated!
Hi,
su -c "command" should do the job for you. You will need to enclose the whole of the command in quotes however, otherwise su will be expecting the command to execute, doing nothing.
Example: adb shell "su -c 'sqlite3 /data/data/my.db/databases/mydb.db < /sdcard/dump.sql'" (run from a Unix or Windows(?) shell). Notice the use of "" and ''.
(in this case dump.sql contains .dump, for instance)
Of course the sqlite3 command could be placed within another script on the android device.
Hope that helps.
I looked around a bit and found the answer.
The simple answer is, wrap the command
Code:
cp "source" "destination"
in double quotes!
Thank you grindingbob for the adb shell "su -c 'sh /mnt/sdcard/tmp/2.sh'" command.
No probs I was more referring to executing commands as a su without interacting with adb shell.
As a side-note, cp might not be a good idea, unless you're sure no db accessing is taking place at the same time.
I am pretty sure well as sure as a novice can be! The files I am backing up are log files, call history and text message history.
The results from running a unix script which contains
Code:
cp "/dbdata/databases/com.android.providers.contacts/contacts2.db" "/mnt/sdcard/tmp4/contacts2.db"
cp "/dbdata/databases/com.android.providers.telephony/mmssms.db" "/mnt/sdcard/tmp4/mmssms.db"
cp "/dbdata/databases/com.sec.android.provider.logsprovider/logs.db" "/mnt/sdcard/tmp4/logs.db"
are only the logs.db file is copied, the other two are not.
grindingbob said:
No probs I was more referring to executing commands as a su without interacting with adb shell.
As a side-note, cp might not be a good idea, unless you're sure no db accessing is taking place at the same time.
Click to expand...
Click to collapse
Permission issues for *.sh files from ADB
Dear All,
I have a 3.2 device with Root permissions & Busybox.
I created a sample *.sh file, Pushed to SDcard, and gave '777' Permissions. When i Try to run it from ADB shell its not working Any help...
CMD prompt Traces:
Step -1: Created a sh file
cat TAB.sh
#!/bin/sh
cd /data/data/com.android.gallery/shared_prefs
Step -2 Pushed the file to SDcard
# ls -l *.sh
ls -l *.sh
-rw-rw-r-- root sdcard_rw 56 2012-03-13 15:06 SP.sh
-rw-rw-r-- root sdcard_rw 62 2012-03-13 15:05 TAB.sh
Step -3 Gave 777 permission for *.sh files
# chmod 777 *.sh
chmod 777 *.sh
# ls -l
ls -l
-rw-rw-r-- root sdcard_rw 56 2012-03-13 15:06 SP.sh
-rw-rw-r-- root sdcard_rw 62 2012-03-13 15:05 TAB.sh
Execute permission not applied
Tried other operations, dint workout
Step 4 other options:
# chmod +X *.sh
chmod +X *.sh
Bad mode
# chmod +x *.sh
chmod +x *.sh
Bad mode
# chmod u+x *.sh
chmod u+x *.sh
Bad mode
Any Help?
so I'm new to scripting, and I have a TON of lg optimus S's to root for work. So I figured I'd write a script to make life easy. I know all the shell commands are correct as if I manually type everything in it works. What happens is it gets through gingerbreak exploit and when the prompt returns # - everything seems to go to hell.
Here is my script I am using. I'm using Kubuntu 11.04 writing it in Kate, name of my script is Script2 and I'm executing it in bash via $sh Script2
echo "removing TMP directory";adb shell rm -r /data/local/tmp
echo "creating TMP directory";adb shell mkdir /data/local/tmp
echo "pushing gingerbreak";adb push gingerbreak /data/local/tmp/gingerbreak
echo "CD TMP";adb shell cd /data/local/tmp
echo "CHMOD TMP";adb shell chmod 777 /data/local/tmp/*
echo "running gingerbreak";adb shell /data/local/tmp/gingerbreak &
sleep 32
adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock5 /system
adb shell cat /sdcard/flash_image > /system/bin/flash_image
adb shell chmod 755 /system/bin/flash_image
adb shell mount -o remount,ro -t yaffs2 /dev/block/mtdblock5 /system
adb shell flash_image recovery /sdcard/xionia_cwma_12518.6.img
adb shell reboot recovery
I've tried with out sleep command and also with out "&" at the end of gingerbreak, and when I do that and it returns # it seems like no commands will work, even if I type them in it returns just a blank line with out #.
With that current script after sleep 32, it returns #, few seconds later it tries to mount and I get (including the end of gingerbreak exploit).
[!] dance forever my only one
# mount: Operation not permitted
Script2: 9: cannot create /system/bin/flash_image: Directory nonexistent
Unable to chmod /system/bin/flash_image Read-only file system
mount -o: permission denied
reboot: Operation not permitted
then it returns me to bash$
Thanks!
So something interesting, I've been playing with this for awhile, and I took everything out past the
adb shell /data/local/tmp/gingerbreak
it seems if I run it as
bash$ adb shell /data/local/tmp/gingerbreak
vs
bash$ adb shell
$ cd /data/local/tmp
$ ./gingerbreak
when # is returned, the first option won't take any commands its like it hangs, if I type out the next command it will just return a blank line with out $ or #, I have to forcibly end the process by CTRL+C and it will return me to bash, if I do the second option it works and I can enter the next command in and it takes and returns me to #. Anyone know why this is? I'm pretty sure this is the problem.
I would happily use the second option, but I'm not sure how to get the script to take any android shell commands without a "adb shell" infront. If anyone knows how to get around this, that would be awesome =)
Hi @ all,
I have that following problem: My phones display turns off automatically while im receiving or doing a call. My proximity sensor is broken and i would like disable it and i found a good solution here in this formus:
http://forum.xda-developers.com/showthread.php?t=925814&page=5
# cd /data/local
# touch userinit.sh
# echo "#!/system/bin/sh" > userinit.sh
# echo "#" >> userinit.sh
# echo "chmod 0000 /dev/cm3602" >> userinit.sh
# echo "chmod 000 /dev/cm3602" >> userinit.sh
# chmod 777 userinit.sh
But there's a little problem. I'm not well in programming - now my question is: can someone cange the code that it fit's to my phone. It's a Desire S with CyanogenMod 10 Beta.
Would be very thankful!
our phone has a /dev/cm3602 as well, so it probably uses the same chip.
note: the following is untested
Code:
cat>/etc/init.d/98-disable-sensor<<EOF
#`which sh`
chmod 000 /dev/cm3602
EOF
run that through adb shell and if your kernel has init.d support it will automatically disable your proximity sensor every boot. disable the sensor for your current session by running a simple 'chmod 000 /dev/cm3602' through adb shell.
THX! I will try it out soon.
Sent from my Desire S using xda app-developers app
I've just figured out that those commands won't work as is -- I stupidly forgot you need to remount system r/w and make the file executable for it to run. This should work (still didn't test it) -- run it all in an adb shell:
Code:
mount -o remount,rw /system
cat>/etc/init.d/98-disable-sensor<<EOF
#!`which sh`
chmod 000 /dev/cm3602
EOF
chmod 755 /etc/init.d/98-disable-sensor
mount -o remount,ro /system
i just tried it out and it says
[email protected]:/ # mount -o remount,rw /system
mount -o remount,rw /system
[email protected]:/ # cat>/etc/init.d/98-disable-sensor<<EOF
cat>/etc/init.d/98-disable-sensor<<EOF
> #!'which sh'
#!'which sh'
> chmod 000 /dev/cm3602
chmod 000 /dev/cm3602
> EOF
EOF
sh: can't create temporary file /sqlite_stmt_journals/mksh.vXIer13043: No such file or directory
but simply 'chmod 000 /dev/cm3602' works fine for one session! thanks!
Ooh, joy, it's that bug in the android shell that I'd forgotten about.
Try this instead:
In an adb shell, run 'which sh'. Note the path it returns.
On your computer, copy the following to a text file named '98-disable-sensor'. Be sure to use an editor (e.g. Notepad++) that can save with LF newline bytes and make sure you tell it to do that! (Under Windows, a newline is marked by the bytes \r\n, which is wrong for Linux - it should be just \n. Save the file as 'Unix text file' or something like that when asked.)
Code:
#!/path/to/sh/you/wrote/down/earlier
chmod 000 /dev/cm3602
Push it to your device: 'adb remount' + 'adb push 98-disable-sensor /etc/init.d/'
Make it executable: 'adb shell chmod 755 /etc/init.d/98-disable-sensor'
Remount system r/o again: 'adb shell mount -o remount,ro /system'
Aquous said:
Ooh, joy, it's that bug in the android shell that I'd forgotten about.
Try this instead:
In an adb shell, run 'which sh'. Note the path it returns.
On your computer, copy the following to a text file named '98-disable-sensor'. Be sure to use an editor (e.g. Notepad++) that can save with LF newline bytes and make sure you tell it to do that! (Under Windows, a newline is marked by the bytes \r\n, which is wrong for Linux - it should be just \n. Save the file as 'Unix text file' or something like that when asked.)
Code:
#!/path/to/sh/you/wrote/down/earlier
chmod 000 /dev/cm3602
Push it to your device: 'adb remount' + 'adb push 98-disable-sensor /etc/init.d/'
Make it executable: 'adb shell chmod 755 /etc/init.d/98-disable-sensor'
Remount system r/o again: 'adb shell mount -o remount,ro /system'
Click to expand...
Click to collapse
Hi
Do you know what is the command to turn off all sensors ?
i want to execute the command when screen is off (by xposed edge)
and turn on again when screen is on
loopypalm said:
Hi
Do you know what is the command to turn off all sensors ?
i want to execute the command when screen is off (by xposed edge)
and turn on again when screen is on
Click to expand...
Click to collapse
I use the below command on low battery trigger via Tasker
Code:
cmd statusbar click-tile com.android.settings/.development.qstile.DevelopmentTiles\$SensorsOff
varunpilankar said:
I use the below command on low battery trigger via Tasker
Code:
cmd statusbar click-tile com.android.settings/.development.qstile.DevelopmentTiles\$SensorsOff
Click to expand...
Click to collapse
Thx but i don't want to use tasker or any extra app
loopypalm said:
Thx but i don't want to use tasker or any extra app
Click to expand...
Click to collapse
Us can use the via adb or shell script event trigger.
varunpilankar said:
Us can use the via adb or shell script event trigger.
Click to expand...
Click to collapse
what is the adb comand ?
loopypalm said:
what is the adb comand ?
Click to expand...
Click to collapse
Code:
adb shell cmd statusbar click-tile com.android.settings/.development.qstile.DevelopmentTiles\$SensorsOff
varunpilankar said:
Code:
adb shell cmd statusbar click-tile com.android.settings/.development.qstile.DevelopmentTiles\$SensorsOff
Click to expand...
Click to collapse
it work on PC but no luck in terminal/xposed edge
Edit : i found a way !
replace "adb shell" with "#!/bin/sh" work
If you have root then you can use Su directly
varunpilankar said:
If you have root then you can use Su directly
Click to expand...
Click to collapse
and the comand is ?
terminal - type
su
cmd statusbar click-tile com.android.settings/.development.qstile.DevelopmentTiles\$SensorsOff
Hello!
I want to create a homescreen widget shortcut for Terminal Emulator to do the following command line:
Code:
killall -9 mediaserver
To do so, I created a sh file type with the following lines and moved it to /system dir with rwxrwxrwx permissions:
Code:
#!/system/bin/sh
su
killall -9 mediaserver
exit
exit
And then created a widget with Term shortcut with this text on argument window:
Code:
su -c "sh /system/camscript.sh"
The problem is: When I select the Terminal Icon on my homescreen, it open the terminal emulator appears
Code:
[email protected]:/ $ su -c "sh /system/camscript.sh"
[email protected]:/ #
The thing is that I want it to execute the command and exit the terminal emulator prompt by itself.
Can anyone help me?
Thanks
Please! Someone??
teforeon said:
Code:
#!/system/bin/sh
su
killall -9 mediaserver
exit
exit
And then created a widget with Term shortcut with this text on argument window:
Code:
su -c "sh /system/camscript.sh"
The problem is: When I select the Terminal Icon on my homescreen, it open the terminal emulator appears
Code:
[email protected]:/ $ su -c "sh /system/camscript.sh"
[email protected]:/ #
The thing is that I want it to execute the command and exit the terminal emulator prompt by itself.
Click to expand...
Click to collapse
Thanks for your command example. It works for me and I can live with the disadvantage that the "Terminal Emulator" does not close after command execution. In my case I need even a running "Terminal Emulator" before I can run the "Term shortcut" although the "Term shortcut" opens a "Terminal Emulator"-window (strange ).
By the way you have written "#!/system/bin/sh" . In my case it is enough to write just "#!/bin/sh"
schnick_schnack said:
Thanks for your command example. It works for me and I can live with the disadvantage that the "Terminal Emulator" does not close after command execution. In my case I need even a running "Terminal Emulator" before I can run the "Term shortcut" although the "Term shortcut" opens a "Terminal Emulator"-window (strange ).
By the way you have written "#!/system/bin/sh" . In my case it is enough to write just "#!/bin/sh"
Click to expand...
Click to collapse
Hhaha yes, I seem to have to open it too. But the command not always works for what I need anymore (reset camera on custom firmware).
I know that I'm a little late to the party but, why not use "am force-stop jackpal.androidterm" at the end of your script.
This kills the terminal emulator app.
bamoka said:
I know that I'm a little late to the party but, why not use "am force-stop jackpal.androidterm" at the end of your script.
This kills the terminal emulator app.
Click to expand...
Click to collapse
I am even later to the party LOL
Your am force command did not work for me as it says that I need special permissions to force close an app
What did work is to add a "&& exit"
e.g.
Code:
su -c "sh /system/camscript.sh" && exit