自 LG 最新的旗舰手机 LG V20 发布以来,已经有一个多月了。作为 LG 全新推出的旗舰机,尽管有些 小小的不足,但仍然在亚马逊上的手机关注排行榜上,引起了诸多的关注。但就像我们使用其它大多数 Android 手机一样,如果我们想要更好的使用它,那么我们就必须取得它的 Root 权限!
但不幸的是,这款 LG 手机并不像之前的 LG 版本,可以通过 LGPU 的 KDZ 或者 TOT 来进行刷机,从而获取到 root 权限。这也就意味着,我们必须使用其它的方法,来完成 root 的操作!这里简单介绍下 KDZ 和 TOT:KDZ指的官方刷机包,因为官方刷机包的扩展名是KDZ。TOT是 LG 售后用的刷机包,和 kdz 是类似的,文件扩展名是tot。不过 TOT 不是官方对普通用户公开下载的。目前TOT有2种版本,一种是原版的官方TOT 一种是经过修改后的TOT,比如加入了ROOT的TOT等。
但幸运的是,随着一个被称为 Dirty COW(脏牛)的漏洞被披露后,我们便有了可以实现对类 H918 的 LG V20 实现 root 的操作方法。 但想要实现并非那么容易,你必须严格遵循以下操作步骤,下面我将详细介绍具体的实现过程。
要求
开始之前
首先,在正式开始使用这个方法进行 root 操作之前,请确保已经将你手机比较重要的数据进行备份存储。大多数应用程序,将备份在你的 Google 帐户,登录后便可恢复及还原,但像你的照片和 MP3 库之类的个人文件,应该在开始之前,备份到外部存储设备上。
在操作过程中,我们会使用 ADB 和 Fastboot 的命令。因此,建议你在操作之前最好对这两个工具的基本使用命令,有一定的了解。 如果没有,则请确保完全遵循我的操作步骤,否则可能会对你的设备造成破坏。
最后,在这里我要感谢 XDA 的开发研究员 James Addunono 修改了 脏牛的利用脚本,并编译了 TWRP 使其支持用于 LG V20 的 root 操作!
Step 1. 安装 LG 所需的驱动程序
在开始之前,请在你的 Windows 或 Mac 上,安装适用于 LG 的驱动程序,以便手机和你的计算机能够正常实现连接及通信。安装完成后需重启你的计算机,以保证驱动的正常使用。
Step 2. 安装 ADB & Fastboot
接下来,我们需要在计算机上安装 ADB 和 Fastboot 。建议你从 Google 上下载官方版本!
具体安装过程请参照这篇文章:http://android.wonderhowto.com/how-to/android-basics-install-adb-fastboot-mac-linux-windows-0164225/ 这里就不做过多说明了。
Step 3. 使手机支持开发者模式
有很多人会发现, LG 手机似乎在设置选项内找不到 开发者模式 的选项。其实 LG 并非没有做 开发者模式,而是将其隐藏了起来。我们只要依次点开:设置>常规>关于手机>软件信息,找到 内部版本号 这个选项别犹豫,狂点 7 次后,再退出当前界面,你就会发现呈灰色的 开发人员选项 了。
具体操作方法可参照本文: http://android.wonderhowto.com/how-to/android-basics-enable-developer-options-usb-debugging-0161948/
Step 4. OEM 解锁
部分手机系统带有 OEM 锁,如果要进行刷机操作,则必须先打开 OEM 锁并启用 OEM 解锁功能。否则,将会导致无法正常进行刷机操作。打开方式:设置 >开发人员选项,然后打开“OEM解锁”选项,并在提示时按“启用”按钮。
具体操作方法可参照本文:http://android.wonderhowto.com/news/psa-enable-hidden-setting-before-modding-anything-android-0167840/
Step 5. 支持 USB 调试
当完成以上操作后,在当前界面向下滚动一点,我们就可以看到“USB调试”设置,我们同样将它启用。
Step 6. 将手机连接到计算机
接下来,我们就可以使用 USB 数据线将手机连接到计算机上了。注意:你可能需要将手机置入到 PTP模式(用于图像传输)。并点击手机插入后显示的 USB计算机连接通知,然后从弹框中选择“照片传输”选项。
Step 7. 在计算机上打开 ADB Shell
现在,我们在计算机上找到并打开 ADB 和 Fastboot 的安装目录。 对于大多数 Windows 用户,我们可以在 C:/ Program Files(x86)/ Android / android-sdk / platform-tools 中找到它。 对于 Mac 和 Linux 的用户,这需要根据你自己实际解压缩 ADB 文件夹的位置,来进行查找。如果你忘记了安装的路径,则只需在硬盘驱动器上搜索 platform-tools 也可以找到它。
Step 8. 启动 ADB
接下来,我们在命令提示符下键入adb start-server 命令。完成后,手机上会有弹框询问是否接受调试,我们勾选并选择 OK 即可。
Step 9. 解锁启动加载
注意:以下此步骤将擦除手机所有数据,并将手机恢复出厂设置!
通过在 ADB shell 中键入adb reboot bootloader 重新启动到 Fastboot 模式。 一旦你的手机处于 Bootloader 模式(也称为快速启动模式),请键入 fastboot oem unlock。 此时,你会在手机上看到一条确认消息,询问你是否要解锁引导加载程序,通过按电源键来确认你的选择。
完成以上操作后,我们使用命令 fastboot getvar all 来检查引导加载程序锁的当前状态。以确保你的引导加载程序已处于解锁状态。然后通过键入 fastboot 重启并回到你的手机。
Step 10. 重新启用 USB 调试
重新启动后,你将进入初始欢迎和设置界面。 跳过那些不必要的选项,我们的目标是获取 ADB 的操控权。然后当进入主界面,我们只需重复上面 3-8 的步骤,来启用 USB 调试 即可。
Step 11. 下载所需的开发文件
现在我们通过下面的链接,下载 4 个所需的二进制文件,TWRP 和 SuperSU 到你的计算机上。
下载完成后,我们需要将所有下载的文件,移动到 ADB 和 Fastboot 的安装目录下的 platform-tools 文件夹内。如果你不确定此文件夹的位置,请按照上述步骤7 的方法查找。
注意:XDA 高级会员 bezeek 已经将步骤 11 和 12 一键自动化集成了。 但是,我还是建议大家手动来执行这两个步骤。因为,这种一键式操作极易导致我们的手机,开机死循环,甚至变为“砖”。
Step 12. 将脏牛文件拷贝至手机
回到计算机上的命令提示符或终端窗口,一次输入以下命令。 之后,我会简单解释下这些命令的作用。
1 <p><strong>adb push dirtycow /data/local/tmp</strong></p><p><strong>adb push recowvery-applypatch /data/local/tmp</strong></p><p><strong>adb push recowvery-app_process64 /data/local/tmp</strong></p><p><strong>adb push recowvery-run-as /data/local/tmp</strong></p>
上面的 4 条命令会将脏牛的文件放置到手机,以便我们后续的使用。
1 <p><strong>adb shell</strong></p><p><strong>cd /data/local/tmp</strong></p><p><strong>chmod 0777 *</strong></p>
上面的这几条命令会修改脏牛文件的读写权限,使该文件具备读写权限。
Step 13. 执行脏牛文件
接下来,我们键入以下命令,来执行手机上的脏牛 exploit 。
1 ./dirtycow /system/bin/applypatch recowvery-applypatch
完成以上操作后,我们继续键入以下命令:
1 ./dirtycow /system/bin/app_process64 recowvery-app_process64
在上面的命令执行后,你可能会发现,此时你的手机看起来像处于崩溃的状态。 等它完成后我们再继续。
1 <strong>exit</strong>
1 adb logcat -s recowvery
这里我们耐心等待 脏牛EXP 被执行,在进入到下一步之前我们必须保证它已被成功执行!
现在,在继续接下来的命令操作之前,我们需要按键盘上的 CTRL + C 来结束当前的进程,并启动一个新的进程。
1 <p><strong>adb shell reboot recovery</strong></p><p><strong>adb shell</strong></p><p><strong>getenforce</strong></p>
执行完以上操作后,如果你在屏幕上看到“Permissive”提示,则说明这步操作成功!
Step 14. 安装 TWRP
接下来,我们将安装 TWRP,这对我们之后是否能永久获取 root 权限,尤为重要。
1 <p><strong>cd /data/local/tmp</strong></p><p><strong>./dirtycow /system/bin/run-as recowvery-run-as</strong></p><p><strong>run-as exec ./recowvery-applypatch boot</strong></p>
等待它刷新你的启动镜像!
这里是在刷新我们的启动镜像和禁用一些安全功能,以便我们可以在安装后启动 TWRP。
1 <p><strong>run-as su</strong></p><p><strong>exit</strong></p><p><strong>exit</strong></p><p><strong>adb push twrp-3.0.2-1-h918.img /sdcard/twrp.img</strong></p><p><strong>adb shell</strong></p><p><strong>run-as exec dd if=/sdcard/twrp.img of=/dev/block/bootdevice/by-name/recovery</strong></p>
在这里,我们只是用 TWRP 替换了 Android 的 Recovery 模式。
完成以上操作后,接下来我们重启 Recovery :
1 <strong>reboot recovery</strong>
Step15. 设置 TWRP 启动
如果你很快的重启成功,表示你已经进入到 TWRP 。 此时,TWRP将询问您是否要启用系统修改。这里我们向右滑动选择 允许修改 。否则,下次启动系统将不会从 TWRP 启动!
Step 16. 解密设备存储
接下来我们使用 “格式化数据”选项取消设备加密。键入 yes,然后点击复选标记。
Step 17. 使用解密存储重新启动TWRP
回到 TWRP 的主界面,并打开重新启动选项,选择“重新启动恢复”选项。
重启将使你直接回到 解密后的 TWRP ,并将允许你在 TWRP 下,闪存之前下载到设备 SD 卡上的 SuperSU ZIP 压缩包。
Step 18. 闪存 SuperSU 获取永久 Root 权限
现在是时候在 TWRP 中闪存 SuperSU 啦,这样我们就可以保持 root 激活,而不必每次打开手机时重复 脏牛 安装操作。
在 TWRP 中,打开高级选项,并选择 ADB Sideload,然后向右滑动它启动 Sideload 。
接下来,找到你在步骤 11 中,粘贴到 platform-tools 文件夹中的 SuperSU-vXXX.zip文件,然后将该文件重命名为 SuperSU.zip。
之后,我们回到命令提示符窗口,键入以下命令:
1 <p><strong>adb shell</strong></p><p><strong>cd /data/local/tmp</strong></p><p><strong>chmod 0777 *</strong></p>
0
然后按 Enter 键,开始 SuperSU 的安装。
完成后,点击 TWRP 中的“重新启动系统”选项(此时你的手机将会重启好几次)完成后,你将获得一个全新的已被 root 的 Android 系统!
Step 19. Root 权限验证
我们安装一个名为 Root Checker 的应用程序,来检测及验证我们是否已经成功取得 root 权限。
下载地址:https://play.google.com/store/apps/details?id=com.joeykrim.rootcheck
首次启动该应用程序时,将会弹框请求 root 权限。我们点击“授予”,Root Checker 显示我们已经成功获取到 root 操作权限!
*参考来源:wonderhowto,FB小编 secist 编译,转载请注明来自 FreeBuf (FreeBuf.COM)