hi,
two days ago i rooted my Nexus One FRF91-Vodafone with these two methods ( forum.xda-developers.com/showthread.php?p=7548842 and forum.xda-developers.com/showthread.php?t=736271). Still some commands of adb don't work and i can't find a solution.
Code:
C:\>cd android/tools
C:\android\tools>adb devices
* daemon not running. starting it now *
* daemon started successfully *
List of devices attached
HT05EP800252 device
C:\android\tools>adb shell
$ su
su
# id
id
uid=0(root) gid=0(root)
# exit
exit
$ exit
exit
C:\android\tools>adb remount
remount failed: Operation not permitted
C:\android\tools>adb root
adbd cannot run as root in production builds
C:\android\tools>
as you can see the device is connected in debug mode and i am rooted but the commands "adb remount" and "adb root" don't work (and maybe some other commands? i don't know). does it happen because the bootloader is still locked? if so, is there a way to have those commands working without unlocking it? if not, what could it be?
sorry for my english
thanks a lot
I'd have to guess because "remount" and "root" are not the way to do it.. Where are you seeing this is the way to do what you need to do?
how shoul it be used? i found a lot place where is written just like that. besides i read that the default.prop should be like this:
Code:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=0
ro.debuggable=1
persist.service.adb.enable=1
for adb to work properly
but mine is like this
Code:
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=1
ro.allow.mock.location=0
ro.debuggable=0
persist.service.adb.enable=0
and i don't understand why, i cant change it because it's a read-only file
What about:
Code:
mount -o remount,rw /system
?
i have this same problem, im guessing you went the way without unlocking your bootloader?
if so i dont think you can do adb remount
but what you can do is this method
adb shell
su
#mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
this will remount your phone system to read-write and you should be good to push/pull/cp/rm/clear/ and what your trying to do
Thanks for the info. I was having the same issue with my N1. The full mount path worked
Kage_
If you're really slick, I imagine you could add an alias "remount" to your shell profile script (.csh or something similar) to execute that full command for you when you needed it
Related
See title. Mostly I just want to have some aliases set every time I open terminal emulator or adb shell. Does anyone know if this is possible?
Just dig /init.rc then you may find the way.
biAji said:
Just dig /init.rc then you may find the way.
Click to expand...
Click to collapse
I don't think that works, init.rc looks like it's executed on boot... I'm looking for a file that executes every time a shell is started.
Hi there,
I'm wondering the same thing.
I've tried to create a bashrc
(/.bashrc ; /system/etc/bash.bashrc ; /root/.bashrc ) But none is working.
I'm about to try a different way,
I've cp /system/bin/sh to /system/bin/sh1
then I'll try to replace /system/bin/sh by a shell script that will launch my aliases then sh1
Something like:
Code:
#!/system/bin/sh1
alias lsa='ls -Alh '
[...]
/system/bin/sh1
But i'm not pretty sure It could work properly. Firstly because I remember a gain-super-user manipulation that requires to copy and modify rights on sh. (but it could be ok if the script and the copy of sh have the same rights).
Secondly, because I'm not really OK with this; When I'll remove /system/bin/sh in order to replace it, I'll have no shell for a time (if it crashes, I'll not be able to use sh anymore, even with adb).
So if anybody have an other solution it could be damn cool
Thank you all
EDIT: I've just tried this. It's ok, I've not lost my shell, but the modifications (one alias, and a path export), are not applied.
There is no such file. In fact, the default shell is sh, not bash.
However, there is a solution. Read my post in this thread: http://forum.xda-developers.com/showthread.php?t=518959
lbcoder said:
There is no such file. In fact, the default shell is sh, not bash.
However, there is a solution. Read my post in this thread: http://forum.xda-developers.com/showthread.php?t=518959
Click to expand...
Click to collapse
That is interesting. I'll have to try it. I assume it won't work with ADB? Or am I wrong (please say yes)?
I would have thought that it would work with adb, but when I try this:
adb shell /path/to/bash --rcfile /path/to/bashrc
it seems that its a 1-way shell...
well you can always run bash after connecting....
adb shell
/path/to/bash --rcfile /path/to/bashrc
Alternatively, with a little bit of craftiness, you may be able to replace the sh binary with a script that runs bash.
Sweet, can't wait until I get home.
The best way, and what a lot of the ROM devs are doing now is putting a check/call to /system/init.rc and /data/init.rc so we can add our own customizations. This would include boot time chmod/chowns or aliases if need be. Hell we could put a call to /etc/.profile if we wanted and put all our aliases in there. But we can't do any of that till ROM devs put that call in boot.img->boot.ramdisk->init.rc
Android's default shell /system/bin/sh is a link to mksh in the same directory. It reads /system/etc/mkshrc & ~/.mkshrc
I think it also reads ~/.profile & /etc/profile but I'm not sure & I don't know what order.
See https://www.mirbsd.org/mksh.htm for the documentation.
Also worth noting is that most, if not all, shells read /etc/profile & ~/.profile so anything in there should be very general.
Yes there is
lbcoder said:
There is no such file. In fact, the default shell is sh, not bash.
However, there is a solution. Read my post in this thread: http://forum.xda-developers.com/showthread.php?t=518959
Click to expand...
Click to collapse
Edit /system/etc/mkshrc. You can add your aliases there after the defaults. Type 'alias' from the terminal to see the default aliases that are defined in this file. I believe this file is the master, and when a shell is envoked, the mksh command pipes a hidden copy of this file into the users home directory as .mkshrc for the terminal session.
Also, this is the file to edit to append to your $PATH.
alanthehat said:
Android's default shell /system/bin/sh is a link to mksh in the same directory. It reads /system/etc/mkshrc & ~/.mkshrc
I think it also reads ~/.profile & /etc/profile but I'm not sure & I don't know what order.
See https://www.mirbsd.org/mksh.htm for the documentation.
Also worth noting is that most, if not all, shells read /etc/profile & ~/.profile so anything in there should be very general.
Click to expand...
Click to collapse
/system/etc/mkshrc & ~/.mkshrc
You had the answer right here but you didn't know it
smasraum said:
That is interesting. I'll have to try it. I assume it won't work with ADB?
Click to expand...
Click to collapse
curiously enough my bash aliases work when in the adb shell. I'm running bash on my mac. I guess the alias get expanded by bash before there are sent to adb shell.
Code:
mac $ alias ll
alias ll='\ls -albhFG'
mac $
Code:
mac $ adb shell
[email protected]_a11chl:/ $ ll
drwxr-xr-x root root 2016-10-03 13:10 acct
lrwxrwxrwx root root 2016-10-03 13:24 busybox -> /data/data/com.jrummy.app.managerfree/files/busybox
drwxrwx--- system cache 2016-10-03 14:37 cache
drwxrwx--x system carrier 2016-09-02 15:24 carrier
dr-x------ root root 2016-10-03 13:10 config
Please note this does not work:
Code:
mac $ adb shell ll
/system/bin/sh: ll: not found
On my side, here is what I did :
Code:
adb root
Code:
adb remount
Code:
adb shell
Code:
vim /etc/mkshrc
I added the following line :
Code:
alias ls='ls --color=auto'
Results attached, now I may play with the PS1 to get colors in the prompt....
In nougat, there is a bashrc in
"/system/etc/bash/bashrc"
idk about other versions check and tell me
Code:
uname -a: Linux debian 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u5 (2018-09-30) x86_64 GNU/Linux
[email protected]:/# adb root #restart adb with root permissions
[email protected]:/# adb remount #remount partitions on device read-write
remount succeeded
[email protected]:/# adb shell #run remote, interactive shell
device:/ # test0 #execute command test0
/system/bin/sh: test0: not found
127|device:/ # alias test0='date'
device:/ # test0
Wed Oct 10 15:06:16 +00 2018 #SUCCESS
[email protected]:/# adb root
adbd is already running as root
[email protected]:/# adb remount
remount succeeded
[email protected]:/# adb shell
klteusc:/ # test1
/system/bin/sh: test1: not found
127|klteusc:/ # echo "alias test1='date'">>/system/etc/mkshrc
klteusc:/ # test1
/system/bin/sh: test1: not found
127|klteusc:/ # exit
[email protected]:/# adb shell
klteusc:/ # test1
Wed Oct 10 15:10:41 +00 2018
klteusc:/ # exit
[email protected]:/# adb root
adbd is already running as root
[email protected]:/# adb remount
remount succeeded
[email protected]:/# adb shell
klteusc:/ # test2
/system/bin/sh: test2: not found
127|klteusc:/ # echo "alias test2='date'">>/system/etc/bash/bashrc
klteusc:/ # test2
/system/bin/sh: test2: not found
127|klteusc:/ # exit
[email protected]:/# adb shell
klteusc:/ # test2
/system/bin/sh: test2: not found
dirtygardner said:
Code:
uname -a: Linux debian 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u5 (2018-09-30) x86_64 GNU/Linux
[email protected]:/# adb root #restart adb with root permissions
[email protected]:/# adb remount #remount partitions on device read-write
remount succeeded
[email protected]:/# adb shell #run remote, interactive shell
device:/ # test0 #execute command test0
/system/bin/sh: test0: not found
127|device:/ # alias test0='date'
device:/ # test0
Wed Oct 10 15:06:16 +00 2018 #SUCCESS
[email protected]:/# adb root
adbd is already running as root
[email protected]:/# adb remount
remount succeeded
[email protected]:/# adb shell
klteusc:/ # test1
/system/bin/sh: test1: not found
127|klteusc:/ # echo "alias test1='date'">>/system/etc/mkshrc
klteusc:/ # test1
/system/bin/sh: test1: not found
127|klteusc:/ # exit
[email protected]:/# adb shell
klteusc:/ # test1
Wed Oct 10 15:10:41 +00 2018
klteusc:/ # exit
[email protected]:/# adb root
adbd is already running as root
[email protected]:/# adb remount
remount succeeded
[email protected]:/# adb shell
klteusc:/ # test2
/system/bin/sh: test2: not found
127|klteusc:/ # echo "alias test2='date'">>/system/etc/bash/bashrc
klteusc:/ # test2
/system/bin/sh: test2: not found
127|klteusc:/ # exit
[email protected]:/# adb shell
klteusc:/ # test2
/system/bin/sh: test2: not found
Click to expand...
Click to collapse
You need to manually edit the mksh file and add your command in for it to persistently work.
Just running the command below will work but will be wiped on reboot.
Code:
alias test1='date'
If you need it to stay persistent over reboots manually edit /system/etc/mkshrc
Code:
## Adding the test0 alias via file editing:
taimen:/ # test0
Wed Aug 5 13:09:46 GMT 2020
## Adding test1 alias via command line:
taimen:/ # alias test1='date'
taimen:/ # test1
Wed Aug 5 13:10:06 GMT 2020
## Reboot Device
taimen:/ # reboot
## Check for persistant changes:
taimen:/ # test0
Wed Aug 5 13:04:24 GMT 2020
taimen:/ # test1
/system/bin/sh: test1: not found
Example file that I used:
Code:
# Copyright (c) 2010, 2012, 2013, 2014
# Thorsten Glaser <[email protected]>
# This file is provided under the same terms as mksh.
#-
# Minimal /system/etc/mkshrc for Android
#
# Support: https://launchpad.net/mksh
: ${HOSTNAME:=$(getprop ro.product.device)}
: ${HOSTNAME:=android}
: ${TMPDIR:=/data/local/tmp}
export HOSTNAME TMPDIR
alias test0="date"
if (( USER_ID )); then PS1='$'; else PS1='#'; fi
PS4='[$EPOCHREALTIME] '; PS1='${|
local e=$?
(( e )) && REPLY+="$e|"
return $e
}$HOSTNAME:${PWD:-?} '"$PS1 "
This will stay persistent on reboot.
Ok, I'm not a total noob. I've been trying to return to 1.5 as cleanly as possible, but now I'm having an error when trying to remount my phone.
Code:
C:\android-sdk-windows\tools>adb devices
List of devices attached
HT9C1HF03306 device
C:\android-sdk-windows\tools>adb remount
remount failed: Operation not permitted
C:\android-sdk-windows\tools>adb shell
$ su
su
#
This is what I did:
Flashed the 1.5 RUU that Flipz has had out for months. No errors
Ran the Avalaunch PRI fix to get rid of the flipz_01 PRI name
updated my profile
updated my PRL (which is now 65000??)
rooted through the normal sequence without error, I can boot to the recovery just fine, but when I adb shell into the phone I end up at $ instead of #. I have to su to get to # and at the c:\windows-sdk-windows\tools\adb remount fails with "remount failed: operation not permitted"
Is it possible that the PRI update has foiled the root exploit? I even restored a nand backup that I know had a working root and I still have the same results. This is too weird.
Anyone else have this issue? I searched the forum but I came up empty.
Try adb remount before adb shell. I'm pretty sure anythig with adb should be ran at just the command prompt.
Someone feel free to correct me if I'm wrong.
right, this is at the c:\android-sdk-windows\tools\ prompt. I guess I need to re-word that last bullet point to be more clear.
Code:
C:\android-sdk-windows\tools>adb devices
List of devices attached
HT9C1HF03306 device
C:\android-sdk-windows\tools>adb remount
remount failed: Operation not permitted
C:\android-sdk-windows\tools>adb shell
$ su
su
#
Yeah the wording got me. I was hoping it was as simple as that for you tho. Defiantly Strange. Believe me I've had plenty of those moments where hours would have been saved if someone could have just said "no your just doing it wrong".
Maybe try rerunning the RUU and start from scratch the PRI fix should hold thru the RUU but if it did affect something else running the RUU again may correct it.
I RUU'd about 4 times so far on two different laptops, one with XP and one with Win7, running both versions of the HTC Sync drivers.
Something is definitely different. I'm thinking of doing the PRI fix again to see if that helps. The PRL being 65000 instead of the normal 60664 is another anomaly I'm curious about.
looks as if the 65000 PRL is a new one. I can't confirm (not with Sprint) but there is a thread over in General talking about it.
http://forum.xda-developers.com/showthread.php?t=684873
YEAH! I fixed it....well....actually Flipz fixed it for me. I created a custom ROM in the kitchen and flashed it. Now the remount miraculously works. I'm back to being happy...though I don't know why. Its not like I was using root for anything
Nextelian said:
right, this is at the c:\android-sdk-windows\tools\ prompt. I guess I need to re-word that last bullet point to be more clear.
Code:
C:\android-sdk-windows\tools>adb devices
List of devices attached
HT9C1HF03306 device
C:\android-sdk-windows\tools>adb remount
remount failed: Operation not permitted
C:\android-sdk-windows\tools>adb shell
$ su
su
#
Click to expand...
Click to collapse
Can someone splain how to fix this issue w/o flashing? Like maybe from command prompt/shell? Pleeeeease?
mrsato said:
Can someone splain how to fix this issue w/o flashing? Like maybe from command prompt/shell? Pleeeeease?
Click to expand...
Click to collapse
I found something that help me and you. it properly works!!
I can't spell out instructions for the above mentioned suggestion, since I
don't know which file editor comes on the shipped device, but I have an
alternative solution.From the SDK's tools directory, run adb shell. In the
prompt run the following:
# su
# mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
# chmod 777 /system (Or any subdirectory you want to push to inside system)
# exit
adb push <local file> <device location>
and eventually you should restore the original directory permissions by:
# chmod 755 /system (Or any subdirectory you modified permissions to)
Hope this helps,
Yoav
Click to expand...
Click to collapse
still no Read/Write on /system
I tried the above, and I could not mount /system as read/write:
Code:
adb shell
$ su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
Permission denied
$ mount: Operation not permitted
My Android 1.6 is rooted, so I feel like I should be able to do this. But any help would be...helpful.
mojotexas said:
I tried the above, and I could not mount /system as read/write:
Code:
adb shell
$ su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
Permission denied
$ mount: Operation not permitted
My Android 1.6 is rooted, so I feel like I should be able to do this. But any help would be...helpful.
Click to expand...
Click to collapse
I'm not at my computer but I think the command is off... check to make sure its exactly how it should be... maybe the coma after the rw
Sent from my HERO200 using XDA App
mojotexas said:
I tried the above, and I could not mount /system as read/write:
Code:
adb shell
$ su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
Permission denied
$ mount: Operation not permitted
My Android 1.6 is rooted, so I feel like I should be able to do this. But any help would be...helpful.
Click to expand...
Click to collapse
Just cd to your tools directory and adb remount
huedawg said:
Just cd to your tools directory and adb remount
Click to expand...
Click to collapse
Is there a solution for this?
I have a rooted HTC Desire.
When I type adb remount I get permission denied.
When I type adb shell and then su , i get permission denied!
This was a stock 2.2 rooted with unrevoked 3.
Any idea?
[edit]
i noticed root permissions pop-up on the phone and allowed so su worked.
[/edit]
Hi,
I have a Desire with stock froyo rooted with unrevocked 3 too and cannot use adb remount:
D:\android-sdk-windows\tools>adb remount
remount failed: Operation not permitted
Click to expand...
Click to collapse
D:\android-sdk-windows\tools>adb shell
$ remount
remount
remount: permission denied
$
Click to expand...
Click to collapse
I have allowed ADB via the Super user app popup.
Any idea?
EDIT: I have set S-OFF using AlphaRev's recovery fastboot and I am now able to remount in rw (well no access denied anymore)
still missing some access as I fail to remove the Google Maps app (want to use Brut maps only)
ghost_boy1412 said:
I found something that help me and you. it properly works!!
Click to expand...
Click to collapse
This worked perfectly! Thank you!
Good freakin lord why the heck did you feel the need to bump this thread thats almost a year old just to say that!!!!!!!! I rarly shout like this, but this crap is starting to drive me crazy!!!!!!!!!!!!
Grrrrrrrrrrrrrrr
same thing for me. i get permission denied
DannyMichel said:
same thing for me. i get permission denied
Click to expand...
Click to collapse
thank you for letting us all know, and in such detail, and with new valuable information no less
/me shakes fists in rage.
Post deleted.
Don't mean to bring up this dead thread but a more simple solution would be this
adb shell
$ su
# busybox mount -o remount,rw /system (or another desired directory)
# chmod 777 (or another desired permission set) /system (or another desired directory)
# exit
$ exit
Ladies and Gents:
Please help me out.
I am trying to install a "Japanese IME" that sir JMaurice has kindly provided through one of the forums.
Did everything (I think) required in order to get my N1 connected and recognized by my laptop. Then used SuperOneClickv1.5.5-ShortFuse to gain root. Started on the IME installation and got the following.
>adb devices
List of devices attached
HTxxxPxxxxxx device
>adb kill-server
* server not running *
>adb root
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
adbd cannot run as root in production builds
>adb remount
remount failed: Operation not permitted
So I decided to confirm root.
>adb shell
$ su
su
# exit
exit
$ exit
exit
I couldn't start the "adb push" sequence due to the errors above. What am I doing wrong?
Did you reboot after executing SuperOneClick? Try that.
Jack_R1 said:
Did you reboot after executing SuperOneClick? Try that.
Click to expand...
Click to collapse
Believe I rebooted. Rebooted again just in case. Still gives me the following:
>adb root
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
adbd cannot run as root in production builds
>adb remount
remount failed: Operation not permitted
Weird, but already seen on the forum not a long time ago, I think. I'm not sure what can be done in this situation. "adb remount" can be easily substituted by shell commands, root shell you're still achieving by "su", but how to solve this - I have no idea. Might be permissions thing.
Jack_R1 said:
Weird, but already seen on the forum not a long time ago, I think. I'm not sure what can be done in this situation. "adb remount" can be easily substituted by shell commands, root shell you're still achieving by "su", but how to solve this - I have no idea. Might be permissions thing.
Click to expand...
Click to collapse
Thanks for your replies. Am searching the forums for a similar post; still no luck. Hopefully someone will chime in with an answer.
Thanks again.
You have root, you just don't have an insecure boot.img
Rusty! said:
You have root, you just don't have an insecure boot.img
Click to expand...
Click to collapse
Please clarify. Where possible, detailed explanation/instructions would be most appreciated.
You have root, that's all fine.
To use the command adb remount, you need an insecure bootloader, as you don't have this (due to using the stock boot.img) you have to mount /system as RW in a different way:
su
mount -o remount,rw /dev/mtdblock3 /system
Rusty! said:
You have root, that's all fine.
To use the command adb remount, you need an insecure bootloader, as you don't have this (due to using the stock boot.img) you have to mount /system as RW in a different way:
su
mount -o remount,rw /dev/mtdblock3 /system
Click to expand...
Click to collapse
What I am trying to achieve after adb remount is:
adb push iWnnIME/jp.co.omronsoft.iwnnime /data/data/
adb push iWnnIME/[email protected]@[email protected] /data/dalvik-cache/
adb push iWnnIME/libiwnn.so /system/lib/
.
.
.
adb push iWnnIME/libnjubase2.so /system/lib/
adb push iWnnIME/DroidSansJapanese.ttf /system/fonts/
adb install iWnnIME/iWnnIME.apk
This will actaully be the first time for me to use su. Could you confirm whether the following sequence of commands are correct?
>adb shell
$ su
# mount -o remount,rw /dev/mtdblock3 /data
# exit
$ exit
> adb push iWnnIME/jp.co.omronsoft.iwnnime /data/data/
> adb push iWnnIME/[email protected]@[email protected] /data/dalvik-cache/
>adb shell
$ su
# mount -o remount,rw /dev/mtdblock3 /system
# exit
$ exit
> adb push iWnnIME/libiwnn.so /system/lib/
.
.
.
> adb push iWnnIME/libnjubase2.so /system/lib/
> adb push iWnnIME/DroidSansJapanese.ttf /system/fonts/
> adb install iWnnIME/iWnnIME.apk
Please let me know if I am missing anything.
Wrong. You don't need to remount data, it's always writeable, and the command is erroneous - you're mounting system partition and calling it "data". You need to just push the apps to /data, as shown below:
> adb push iWnnIME/jp.co.omronsoft.iwnnime /data/data/
> adb push iWnnIME/[email protected]@[email protected] /data/dalvik-cache/
> adb shell
$ su
# mount -o remount,rw /dev/mtdblock3 /system
# exit
$ exit
> adb push iWnnIME/libiwnn.so /system/lib/
.
.
.
> adb push iWnnIME/libnjubase2.so /system/lib/
> adb push iWnnIME/DroidSansJapanese.ttf /system/fonts/
> adb install iWnnIME/iWnnIME.apk
Jack_R1 said:
Wrong. You don't need to remount data, it's always writeable, and the command is erroneous - you're mounting system partition and calling it "data". You need to just push the apps to /data, as shown below:
> adb push iWnnIME/jp.co.omronsoft.iwnnime /data/data/
> adb push iWnnIME/[email protected]@[email protected] /data/dalvik-cache/
> adb shell
$ su
# mount -o remount,rw /dev/mtdblock3 /system
# exit
$ exit
> adb push iWnnIME/libiwnn.so /system/lib/
.
.
.
> adb push iWnnIME/libnjubase2.so /system/lib/
> adb push iWnnIME/DroidSansJapanese.ttf /system/fonts/
> adb install iWnnIME/iWnnIME.apk
Click to expand...
Click to collapse
I think I am starting to understand this. I punched in the first adb push sequence and got the following:
> adb push iWnnIME/jp.co.omronsoft.iwnnime /data/data/
push: iWnnIME/jp.co.omronsoft.iwnnime/dicset/master/njuserphone.a -> /data/data/dicset/master/njuserphone.a
failed to copy 'iWnnIME/jp.co.omronsoft.iwnnime/dicset/master/njuserphone.a' to '/data/data/dicset/master/njuserphone.a': No such file or directory
Checked in tools directory and the appropriate directory/file combination was there. Does this indicate that I have to create the appropriate directory in my phone?
Someone? Anyone?
Or is it possible to execute the same adb sequence in shell as su?
I must admit, I've never pushed more that a single file at a time over, given you appear to be trying to push an entire directory tree, perhaps you might be better off copying it over to the SD card in Windows, and using busybox to get it where you need it.
Exactly as Rusty suggested above me. Otherwise you need to create all the directories manually, through adb shell mkdir <your_directory_that_is_not_on_the_phone> .
This guide is for people who want root but want to keep their stock rom, not breaking the warranty, unlocking bootloader etc.
A proud ubuntu user, I am writing this in a new thread purely because the manual rageagainstthecage method and SuperOneClick method did not not work for me, see link to my conclusion below if you care
http://forum.xda-developers.com/showpost.php?p=11305312&postcount=2526
What did work however was via adb shell using psneuter and its fairly simple if you follow the following commands.
This guide assumes you know how to get access to the shell via adb, if you dont then search elsewhere for a useful guide
OK lets get to business!
1. Download the attached nexus_one_softroot.tar from the bottom of this post and extract contents to the same folder as adb
2. Open up your terminal, cd to the same folder as adb and the extracted files
3. Enter the following commands:
Code:
sudo ./adb push psneuter /data/local/tmp/psneuter
sudo ./adb push busybox /data/local/tmp/busybox
sudo ./adb push su /data/local/tmp/su
sudo ./adb shell chmod 755 /data/local/tmp/psneuter
sudo ./adb shell chmod 755 /data/local/tmp/busybox
sudo ./adb shell chmod 755 /data/local/tmp/su
sudo ./adb shell
After this you should see only a $ which tells us that we at the android command line with user privileges only, lets continue
Code:
$ cd /data/local/tmp
$ ls
busybox
su
psneuter
$ ./psneuter
property service neutered.
killing adbd. (should restart in a second or two)
You will now be kicked out of android shell, lets go back in
Code:
sudo ./adb shell
After this you should see only a # which tells us that we root baby! If you want to double check issue this command
Code:
# id
uid=0(root) gid=0(root)
Lets continue on. From this point we will install busybox and su which will make root permanent
Code:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# cd /data/local/tmp
# ./busybox cp busybox /system/bin
# chmod 4755 /system/bin/busybox
# busybox cp su /system/bin
# chmod 4755 /system/bin/su
# exit
For some reason I sometimes have to enter exit twice to leave the android shell. Again, re-access the android shell
Code:
sudo ./adb shell
Now in the android shell we can finish up
Code:
# su
# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
# exit
# exit
Lastly we must install Superuser, and I did this from the android market so I knew its the latest version, its simple to get, less command input etc.
Now you have root! I hope this was simple enough to follow, I have not really written a guide before but from lots of searching I just could not find a solution for my Nexus One 2.2.1 FRG83D, especially any guide that uses psneuter.
Anyway, glad to contribute
EDIT - also, being new to starting threads, this may not quite be in the right section of the forum, sorry if thats the case mods
Added link to the thread from Wiki.
upgraded to gingerbread 2.3.3. after copying and setting permissions, got this:
PHP:
$ cd /data/local/tmp
$ ls -l
-rwxr-xr-x shell shell 26248 2010-07-22 10:20 su
-rwxr-xr-x shell shell 1062992 2010-10-16 22:29 busybox
-rwxr-xr-x shell shell 585731 2011-01-08 18:02 psneuter
su
busybox
psneuter
$ ./psneuter
Failed to set prot mask (Inappropriate ioctl for device)
second time threw me out of shell. again adb shell gives this:
PHP:
$ id
uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),3001(net_bt_admin),3002(net_bt),3003(inet)
mfkr said:
upgraded to gingerbread 2.3.3. after copying and setting permissions, got this:
Code:
$ ./psneuter
Failed to set prot mask (Inappropriate ioctl for device)
Click to expand...
Click to collapse
I believe this is due to a change in the kernel as it is upgraded into gingerbread, the input/output controls have changed, leaving psneuter out of date with the current kernel.
However if an exploit is found with the kernel used in 2.3.3, you can use it in place of psneuter with the above method.
Hi,
I have rooted Nexus One which runs on GingerBread. I can open 'adb shell' and then execute 'su' there.
But when I try to 'adb remount', it fails.
Code:
$ adb root
adbd cannot run as root in production builds
$ adb remount
remount failed: Operation not permitted
Basically, I want to copy a file from my Desktop (MacOSX) to /system/bin on the device, is there anyway to do that on my Nexus One?
You rooted a stock OS - it doesn't have insecure boot, so ADB doesn't allow remount and other root commands.
hap497 said:
Hi,
I have rooted Nexus One which runs on GingerBread. I can open 'adb shell' and then execute 'su' there.
But when I try to 'adb remount', it fails.
Code:
$ adb root
adbd cannot run as root in production builds
$ adb remount
remount failed: Operation not permitted
Basically, I want to copy a file from my Desktop (MacOSX) to /system/bin on the device, is there anyway to do that on my Nexus One?
Click to expand...
Click to collapse
It seems like you are trying a bunch of things without reading beforehand, and understanding what you are doing. As has been said to you before, you cannot use the adb remount command with a secure boot image. If you want read/write access to the /system partition, you need to do the following:
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
Now you have read/write access to the /system partition. No you can copy files from your sdcard to the system partition if you want. When you are finished with whatever you have to do, don't forget to issue the following command:
mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system
There you have it. However, if you would have read a bit, instead of starting a new thread for each question you had, you would already have found what to do...