Hi
I have a new Android device, it's not any of the ones that have their own forum.
More specifically it runs Android 11 on top of a 4.19.193 Rockchip BSP kernel.
I need to read one or two specific files but these files are only readable by root.
I have ADB shell access.
What I do want to acheive:-
Temporarily have an ability to copy a file that's readable only by root, this could be by some GUI app that copies files, as long as the copy is readable by normal user, running commands as root, copy a partition to an image file, export to a desktop machine and read it there. Any one of these would get me that file.
What I don't want to do:-
I don't want to permanently modify the device, unlock the bootloader, put su into /system or anything like that.
Does anyone know of a rooting app that can give me temporary root access but then doesn't actually change the system?
thanks
To get temporary super-user ( AKA root ) rights on an Android's device shell all you have to do is to find a suitable su binary and copy it onto Android's filesystem.
A: To run Android shell commands with super-user right from within the shell on desktop computer ( AKA Command Prompt ) you have to run within desktop computer shell
Code:
adb devices
adb push <LOCATION-OF-SUITABLE-SU-BINARY-ON-PC-HERE> /data/local/tmp/
what will 1. connect the Android device to your desktop computer and 2. upload the su binary in the Android device temporary directory always available for the user.
B: Then, in desktop computer shell type
Code:
adb shell "cd /data/local/tmp & chmod 776 su"
what makes the su binary executable: its ownership by default is set to shell.
C: Then in desktop computer shell type
Code:
adb shell "ls -l"
what will show you content and permissions on recently uploaded files.
D:
To apply a series of Android shell commands what require super-user rights you now would run
Code:
adb shell
export PATH=/data/local/tmp:$PATH"
su -c "<SHELL-CMD-HERE>"
....
su -c "<SHELL-CMD-HERE">
exit
BTW:
When in an Android shell another process like su gets started then this spawned process runs as a child process means it inherits most of the parent process attributes.
adb push allowed me to send the file
Code:
adb push su /data/local/tmp/
su: 1 file pushed. 1.2 MB/s (11640 bytes in 0.009s)
but the adb shell command is failing
Code:
adb shell "cd /data/local/tmp & chmod 776 su"
chmod: su: No such file or directory
if I then log in over adb I don't seem to have permissions to do anything in data
Code:
adb shell
ls -al
drwxrwx--x 47 system system 4096 2022-09-02 16:31 data
cd data
ls -al
ls: .: Permission denied
additionally, I thought that su would need the suid bit set
Does chmod 766 acheive that?
oh this works
Code:
adb shell
cd /data/local/tmp
ls -al
total 18
drwxrwx--x 2 shell shell 3452 2022-09-02 16:32 .
drwxr-x--x 4 root root 3452 2022-07-27 03:04 ..
-rw-rw-rw- 1 shell shell 11640 2022-09-02 16:29 su
Code:
chmod 776 su
ls -al
total 18
drwxrwx--x 2 shell shell 3452 2022-09-02 16:32 .
drwxr-x--x 4 root root 3452 2022-07-27 03:04 ..
-rwxrwxrw- 1 shell shell 11640 2022-09-02 16:29 su
Code:
adb shell
export PATH=$PATH:/data/local/tmp
su
su: setgid failed: Operation not permitted
The device has separate boot_a, boot_b, dtbo_a, dtbo_b partitions.
If I could be reasonably sure that booting a boot partition from a similar device (I have one) would pick up the dtb from this device then I think I could be reasonably confident of not frying anything, I might try and boot it from fastboot.
Related
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 this is probably the wrong place, but I don't see anywhere more applicable, so please move if necessary.
Bought a LG Viper for the wife today, so had to root it
I found a post elsewhere (can't post URLs yet, but it's on androidcentral) that stated how using SuperOneClick, but personally I'm a CLI kind of guy, so this is for anyone using linux (probably could easily be used on Windows, I think you'd need the "LG Universal Drivers", but )
Getting right to the point, you must have adb installed and working.
Notes: Make sure you've got USB Debugging enabled at this point. Might as well make sure "Unknown Sources" are allowed as well.
Go ahead and plug your phone in to your computer now.
Step 1) Find the device on your computer
In /etc/udev/rules.d/51-android.rules add the following (editing as root):
* Note: I had recently rooted a Kindle Fire and had other config in this file, if you do to you can just prefix the lines with a "#" and it will be ignored. You can find the vendor ID by running 'lsusb'
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666", OWNER="YOUR-USERNAME", GROUP="YOUR-USERNAME"
Reboot at this point (or restart udev and logout/in)
Step 2) Grab a copy of "rageagaintthecage" and do the following
adb push rageagainstthecage /data/local/tmp
Step 3) Shell time
adb shell
Once you're in the prompt:
chmod 755 /data/local/tmp/rageagainstthecage
/data/local/tmp/rageagainstthecage
* Note: You'll be kicked out out the prompt at this point, as expected.
Step 4) You've got temporary root (if that's all you want, stop now), otherwise let's make it permanent
adb kill-server
adb start-server
adb shell
su
mount -o remount,rw /dev/block/mmcblk0p27 /system
adb push su /system/bin
adb shell chmod 755 /system/bin/su
Step 5) Install tools
On your phone, download "Superuser" and "Busybox Installer"
Run Busybox Installer
Step 6) Enjoy
Post up any questions, glad to help if possible
Which version of su did you use to push to the device?
The temp root has worked but when I go to install Superuser and update I get this error:
Getting exe path failed with 13: Permission denied
Any ideas? Thank.
-Shaun
When I run RATC, how long do I leave it running? I see the adb shell prompt ($) come up, but then the console feeds a line, and doesn't respond. I eventually press ^C to get back to the windows cmd prompt, but I don't know if I'm doing that too soon (it hasn't spawned all the proc it needs to yet) or if it just doesn't work.
when I type "su" into the adb shell after restarting the server, I get
[email protected]:/ $ su
su
/system/bin/sh: su: not found
I pushed a copy of su into /data/local/tmp and made it executable, but that doesn't work.
127|[email protected]:/ $ /data/local/tmp/su
/data/local/tmp/su
reloc_library[1285]: 15938 cannot locate '_mktemp'...
CANNOT LINK EXECUTABLE
255|[email protected]:/ $
Any suggestions?
Use any 1 of the following methods.
I have personally tried these on 2 of my china android phones.
1. Using linux {Recommended}Install Ubuntu or DebianEither
Install the android-sdk.
dl.google.com/android/adt/adt-bundle-linux-x86-20130717.zip <==x86
dl.google.com/android/adt/adt-bundle-linux-x86_64-20130717.zip <==x86_64
or
Just get the standalone adb and fastboot executables
texasice-cream-sandwich-mirror.googlecode.com/files/adb_fastboot.zipInstall ia32-libsRun this in a terminal
Code:
sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
Now download the files required for root and put it in the same folder as adbmir.cr/GDEPZT4VAfter you finish installing the files,
Connect your device with debugging mode enabled
Run
Code:
cd path/to/adb
where "path/to/adb" is the directory of your adb file
Now run
Code:
sudo chmod a+x adb
sudo chmod a+x fastboot
>>Root
Code:
./adb devices
./adb push psneuter /data/local/tmp/
./adb push busybox /data/local/tmp/
./adb push su /data/local/tmp/
./adb push Superuser.apk /data/local/tmp/
./adb shell
Chmod and run the exploit under adb shell
Code:
cd /data/local/tmp/
chmod 755 psneuter
./psneuter
Now re-engage an adb shell to check if the exploit worked.
Code:
./adb kill-server
./adb devices
./adb shell
If you see a # sign, the exploit was was successful. Otherwise repeat from >>Root
Now run these on the same adb shell
Code:
cd /data/local/tmp
./busybox ash
mount -o remount,rw /dev/block/mtdblock0 /system
cp /data/local/tmp/su /system/xbin/su
chmod 6755 /system/xbin/su
chown 0.0 /system/xbin/su
cp /data/local/tmp/Superuser.apk /system/app/Superuser.apk
chmod 777 /system/app/Superuser.apk
cp /data/local/tmp/busybox /system/xbin/busybox
chmod 6755 /system/xbin/busybox
Now reboot your device and open up SuperSU. Let it update the binary.
Your device should be rooted. 2. Use Windows + MoboroboMethod 1 {Recommended but hard}
Download Moborobo from
Code:
moborobo.com
This software can Install drivers for many china phones and other branded phones.
After installing Moborobo download the files required for root
Code:
mir.cr/GDEPZT4V
Extract the files to the installation directory of Moborobo.
Code:
C:\Program Files (x86)\Moborobo
Run a CMD window under that directory and type
Code:
xcopy AndroidInterface.exe adb.exe
Connect your device in debugging mode & Open up Moborobo, It will install the drivers.
Keep Moborobo open & Follow the instructions mentioned in >>Root
P.S- the linux commands begin with a "./" remove this in windows or else it won't work. Note: Wherever I mentioned a terminal, the windows equivalent to this would be cmdMethod 2 {Easier}
Download and Install Moborobo just like above and run this under a cmd on that folder
Code:
xcopy AndroidInterface.exe adb.exe
Also download UnlockRoot or SuperOneClick
To make sure the adb files are of the same version, Copy over
Code:
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
to UnlockRoot's tools directory or SOC's ADB directory
Connect your device in debugging mode and open up moborobo.
Now keep Moborobo open and Run UnlockRoot or SOC. Good Luck :good:
---Smo0thK, team BL4CKF1R3---
Click thanks if I helped you.
[/COLOR]
Hi there!
under method 2 in the end...I could not locate ROOT nowhere.....
>>Root
arena1 said:
Hi there!
under method 2 in the end...I could not locate ROOT nowhere.....
Click to expand...
Click to collapse
I said follow the instructions mentioned in ">>Root".
I named a step in Method one as ">>Root". So I meant you should repeat those steps.
Now download the files required for root and put it in the same folder as adb
mir.cr/GDEPZT4V
Click to expand...
Click to collapse
What files?
EDIT: managed to do all the steps using method 1 in windows but got this message with executing ./psneuter :
mnmap() failed. Invalid argument
I used windows to root
failed at adb shell psneuter command...
/system/bin/sh: psneuter: not found
how to proceed ?
All apps that have been granted not only permanent, but also only potential access to the microphone can listen to everything, are a so-called wiretap, as long as they have not been closed and the phone is in operation.
German speaking users may watch
this video
with which it's shown.
Although your post is absolutely off-topic ...
The main rooting idea I posted in the mentioned thread is to get TEMPORARILY super-user rights on a Android device shell. Like a standard Linux shell, it allows you to interact with the device by executing commands from the shell. The Android shell can be accessed via ADB (Android Debug Bridge) command tool from every desktop computer.
Requirements:
A PC with ADB installed to interact with your Android device.
How-to:
A: To run Android shell commands with super-user right from within the shell on desktop computer you have to run within desktop computer shell
Code:
adb wait-for-device
adb push "<LOCATION-OF-SUITABLE-SU-BINARY-ON-PC-HERE>" /data/local/tmp/
what will 1. connect the Android device to your desktop computer and 2. upload the su binary in the device temporary directory always available for the user.
B: Then, in desktop computer shell you type
Code:
adb shell "cd /data/local/tmp & chmod 776 su"
[code]
what makes the [b]su[/b] binary executable: its ownership by default is set to shell.
C: Then in desktop computer shell you type
[code]
adb shell "ls -l"
what will show you content and permissions on recently uploaded files.
D:
To apply a series of shell commands what require super-user rights ( e.g. mount ) you now would run in desktop computer shell
[/code]
adb shell
export PATH=/data/local/tmp:$PATH"
su -c "<SHELL-CMD-HERE>"
....
su -c "<SHELL-CMD-HERE">
exit
[/code]
@xXx yYy , that helps tremendously.
and apologies for OT. post deleted.
i got a new qubo big one and wanted to root it
Your phone's Android OS is rooted as soon as the cmdlet named su - what by default is left off - is present in Android's file system and executable.
Hence add a suitable version of su to Android OS: can be done via ADB.
Please can I get a step by step
xXx yYy said:
Your phone's Android OS is rooted as soon as the cmdlet named su - what by default is left off - is present in Android's file system and executable.
Hence add a suitable version of su to Android OS: can be done via ADB.
Click to expand...
Click to collapse
Instruction?
Please I need a step by step guide
A: To run Android shell commands with super-user right from within the shell on desktop computer ( AKA Command Prompt ) you have to run within desktop computer shell
Code:
adb devices
adb push <LOCATION-OF-SUITABLE-SU-BINARY-ON-PC-HERE> /data/local/tmp/
what will 1. connect the Android device to your desktop computer and 2. upload the su binary in the Android device temporary directory always available for the user.
B: Then, in desktop computer shell type
Code:
adb shell "cd /data/local/tmp & chmod 776 su"
what makes the su binary executable: its ownership by default is set to shell.
C: Then in desktop computer shell type
Code:
adb shell "ls -l"
what will show you content and permissions on recently uploaded files.
D:
To apply a series of Android shell commands what require super-user rights you now would run
Code:
adb shell
export PATH=/data/local/tmp:$PATH"
su -c "<SHELL-CMD-HERE>"
....
su -c "<SHELL-CMD-HERE">
exit
.
xXx yYy said:
A: To run Android shell commands with super-user right from within the shell on desktop computer ( AKA Command Prompt ) you have to run within desktop computer shell
Code:
adb devices
adb push <LOCATION-OF-SUITABLE-SU-BINARY-ON-PC-HERE> /data/local/tmp/
what will 1. connect the Android device to your desktop computer and 2. upload the su binary in the Android device temporary directory always available for the user
xXx yYy said:
A: To run Android shell commands with super-user right from within the shell on desktop computer ( AKA Command Prompt ) you have to run within desktop computer shell
Code:
adb devices
adb push <LOCATION-OF-SUITABLE-SU-BINARY-ON-PC-HERE> /data/local/tmp/
what will 1. connect the Android device to your desktop computer and 2. upload the su binary in the Android device temporary directory always available for the user.
B: Then, in desktop computer shell type
Code:
adb shell "cd /data/local/tmp & chmod 776 su"
what makes the su binary executable: its ownership by default is set to shell.
C: Then in desktop computer shell type
Code:
adb shell "ls -l"
what will show you content and permissions on recently uploaded files.
D:
To apply a series of Android shell commands what require super-user rights you now would run
Code:
adb shell
export PATH=/data/local/tmp:$PATH"
su -c "<SHELL-CMD-HERE>"
....
su -c "<SHELL-CMD-HERE">
exit
Click to expand...
Click to collapse
B: Then, in desktop computer shell type
Code:
adb shell "cd /data/local/tmp & chmod 776 su"
what makes the su binary executable: its ownership by default is set to shell.
C: Then in desktop computer shell type
Code:
adb shell "ls -l"
what will show you content and permissions on recently uploaded files.
D:
To apply a series of Android shell commands what require super-user rights you now would run
Code:
adb shell
export PATH=/data/local/tmp:$PATH"
su -c "<SHELL-CMD-HERE>"
....
su -c "<SHELL-CMD-HERE">
exit
Click to expand...
Click to collapse
Thanks