Free yourself from fixing complex.
eleven

更新(3rd March 2012):本方法仅适用于ITL41D (4.0.1), ITL41F (4.0.1)和ICL53F (4.0.2)。在IMM76D (4.0.4)下失效。

 

本文介绍的方法可以在没有解锁的Galaxy Nexus上获取root权限。至于为什么不直接解锁,对我来说,仅仅只是不想看到启动画面上那把打开的白色小锁而已。

  • 首先需要Android SDK附带的adb.exe命令,跟着下载文末附件Root-locked-GN.zip,解压后将它们和adb.exe放在同一个目录下。
  • 打开命令行提示符并进入存放相关文件的目录中。
  • 把相关文件copy进手机:
    [cc lang="bash"]adb push mempodroid /data/local/tmp/mempodroid[/cc]
    [cc lang="bash"]adb push su /data/local/tmp/su[/cc]
    [cc lang="bash"]adb push Superuser.apk /data/local/tmp/Superuser.apk[/cc]
  • 打开adbshell,敲入命令:
    [cc lang="bash"]adb shell[/cc]
  • 赋予mempodroid可执行权限,并执行它:
    [cc lang="bash"]chmod 777 /data/local/tmp/mempodroid[/cc]
    [cc lang="bash"]./data/local/tmp/mempodroid 0xd7f4 0xad4b sh[/cc]
  • 挂载/system分区为可读写:
    [cc lang="bash"]mount -o remount,rw -t ext4 /dev/block/mmcblk0p1 /system[/cc]
  • 把su程序复制进/system分区:
    [cc lang="bash"]cat /data/local/tmp/su > /system/bin/su[/cc]
  • 赋予su程序执行权限:
    [cc lang="bash"]chmod 06755 /system/bin/su[/cc]
  • 安装Superuser.apk
    [cc lang="bash"]cat /data/local/tmp/Superuser.apk > /system/app/Superuser.apk[/cc]
  • 修改Superuser.apk的权限
    [cc lang="bash"]chmod 0644 /system/app/Superuser.apk[/cc]
  • 把/system分区恢复成只读:
    [cc lang="bash"]mount -o remount,ro -t ext4 /dev/block/mmcblk0p1 /system[/cc]
  • 重启手机:
    [cc lang="bash"]reboot[/cc]

注: GN使用的Linux内核(2.6.39)被发现一个local privilege escalation exploit(本地特权提升漏洞).mempodroid就是利用这个漏洞使没有解锁的Android设备得到root权限。Credit to the original post on XDA.

 

头一次发现cat命令可以当作cp复制用。

2012-03-09