[font=verdana, geneva, lucida,]OK, finally i got root on my SH-01D, here's the tut:
First, grab the attachment "root.rar"
Run these so as to put "shdisphook" into the phone.
"shdisphook" is used to "monitor" the SD-unmount event for further action
adb push onload.sh /data/local/
adb push libsdservice_jni.so /data/local/
adb push shdisphook /data/local/
adb shell chmod 755 /data/local/onload.sh
adb shell chmod 755 /data/local/shdisphook
Create the "oncmd.sh" file for further action triggered by SD-unmount.
And then grant it "system" right.
adb shell
$ echo 'chmod 777 /cache' > /data/local/oncmd.sh
$ echo 'chmod 666 /cache/recovery' >> /data/local/oncmd.sh
$ chmod 755 /data/local/oncmd.sh
Trigger the "shdisphook"!
adb reboot
adb wait-for-device shell /data/local/shdisphook
Note that after running "reboot", the cmd would wait for some time.
Once the cmd is ready, run "wait-for-device" immediately.
After the phone is restarted, go "settings" -> "SD" -> "unmount SD"
There is a dialog asking you to confirm it.
Simply click "cancel". The "shdisphook" should effect!
Please check if "/cache" is 777.
adb shell ls -l /cache
If it is like this, you can proceed:
drwxrwx--- root root 2011-11-11 03:39 lost+found
drw-rw-rw- system cache 2012-01-24 10:48 recovery
If you are already used the old menthod to try to root before, you must change the /cache directory back to origin like this:
adb shell rm -r /cache/recovery
adb shell mv /cache/recovery_ /cache/recovery
RUN these code:
adb shell mv /cache/recovery /cache/recovery_
adb shell ln -s /dev/boot_daemon_drv /cache/recovery
Please check again if "/cache" is correct.
adb shell ls -l /cache
If it is like this, you can proceed:
drwxrwx--- root root 2011-11-11 03:39 lost+found
drw-rw-rw- system cache 2012-01-24 10:48 recovery_
lrwxrwxrwx shell shell 2012-03-02 13:24 recovery -> /dev/boot_daemon_drv
If not please try again from step 1.
Then RUN installfile.cmd
Finally, run adb shell and then su enter to check if it's root #. You might want to install su manager first though.[/font]
First, grab the attachment "root.rar"
Run these so as to put "shdisphook" into the phone.
"shdisphook" is used to "monitor" the SD-unmount event for further action
adb push onload.sh /data/local/
adb push libsdservice_jni.so /data/local/
adb push shdisphook /data/local/
adb shell chmod 755 /data/local/onload.sh
adb shell chmod 755 /data/local/shdisphook
Create the "oncmd.sh" file for further action triggered by SD-unmount.
And then grant it "system" right.
adb shell
$ echo 'chmod 777 /cache' > /data/local/oncmd.sh
$ echo 'chmod 666 /cache/recovery' >> /data/local/oncmd.sh
$ chmod 755 /data/local/oncmd.sh
Trigger the "shdisphook"!
adb reboot
adb wait-for-device shell /data/local/shdisphook
Note that after running "reboot", the cmd would wait for some time.
Once the cmd is ready, run "wait-for-device" immediately.
After the phone is restarted, go "settings" -> "SD" -> "unmount SD"
There is a dialog asking you to confirm it.
Simply click "cancel". The "shdisphook" should effect!
Please check if "/cache" is 777.
adb shell ls -l /cache
If it is like this, you can proceed:
drwxrwx--- root root 2011-11-11 03:39 lost+found
drw-rw-rw- system cache 2012-01-24 10:48 recovery
If you are already used the old menthod to try to root before, you must change the /cache directory back to origin like this:
adb shell rm -r /cache/recovery
adb shell mv /cache/recovery_ /cache/recovery
RUN these code:
adb shell mv /cache/recovery /cache/recovery_
adb shell ln -s /dev/boot_daemon_drv /cache/recovery
Please check again if "/cache" is correct.
adb shell ls -l /cache
If it is like this, you can proceed:
drwxrwx--- root root 2011-11-11 03:39 lost+found
drw-rw-rw- system cache 2012-01-24 10:48 recovery_
lrwxrwxrwx shell shell 2012-03-02 13:24 recovery -> /dev/boot_daemon_drv
If not please try again from step 1.
Then RUN installfile.cmd
Finally, run adb shell and then su enter to check if it's root #. You might want to install su manager first though.[/font]
附件
-
921.6 KB 查看: 0