LGiki's Blog

愿每个人都能被这个世界温柔相待

国行Z500M(P027)刷入国际版固件及Root权限的获取

这篇文章依然是来自于之前的旧博客,本来是不想恢复这篇博客的,但是偶然间发现这篇博客被某个恶心的采集站给采集过去了,并且出处信息全无。我一直以来就很讨厌这种把别人的劳动成果直接拿过来当成自己成果的行为。所以想想还是把这篇文章恢复了,并适当进行修改,文章里面记录的刷入国际版固件和获取Root权限的方法至今依旧可用。

手上有台一直放着吃灰的平板,华硕的 Zenpad 3S 10,型号是 P027,在上篇博文介绍的《通过 VNC 为 Linux 扩展第二显示器》,我就是拿它当来当电脑的扩展显示器的,整体用下来效果还不错,写代码看文档方便多了,就是屏幕一直亮着还是挺费电的。

作为一个喜欢折腾各种电子产品的人,对于手上的这个平板当然还是想拿来折腾一下。这个平板有多个版本,我手上的是国行的,是最蛋疼的一个版本,ASUS 官方一直没给国行版本的 P027 更新系统,在国际版已经更新到 Android N (7.0) 很长一段时间了之后,国行版还是没有收到任何更新,一直停留在 Android M (6.0) ,多次找官方反馈国行版本的系统更新问题之后给的答复始终是:更新系统可能导致系统不稳定,所以国行版本暂时没有更新计划。喵喵喵?那为啥国际版更新了系统就不会不稳定?

没办法,那就只能自己寻找办法啦。毕竟 Android 是开放的,只要有一定的动手能力,那么就一定可以丰衣足食!

我首先想到的是下载国际版的固件尝试通过官方 Rec 刷入,于是就屁颠屁颠地跑到 ASUS 官方上找到了这个平板的固件下载页面,下载了最新的国际版固件,然后进官方 REC,开刷!然后…果不其然失败了。果然事情不会这么简单,看了一下 ROM 的 updater-script 文件,即刷机脚本,在这个文件的开头可以找到这么一句话:

1
2
3
ifelse(  getprop("ro.product.name") == "OPEN_Zenpad", ui_print("OPEN SKU device"), (
getprop("ro.product.name") == "WW_P027" || abort("This package is for "WW_P027" devices; this is a "" + getprop("ro.product.name") + "".");
) );

看来官方还是留了一手,在刷入之前会先判断你的 product.name ,如果不是当前刷机包对应的版本直接退出安装过程。阻止了你在各个版本之间的互刷。暂时也没啥办法,毕竟官方 Rec 只能刷入官方签名的刷机包。

之后想到的就是尝试 Root,但是无一例外也失败了,其实在 XDA 上已经有人研究出这个平板的解锁工具以及在 Android N 下的 Root 方法了,甚至 TWRP 都已经有人编译好了,但是这些方法在 Android M 下用不了。不过之前在寻找 Root 的方法的时候在 CN_13.6.6.2 这个版本的固件上发现了存在 Dirty COW 漏洞,但是后来由于考试比较忙,一直没时间深入研究可否利用该漏洞 Root。

需要

  • 能正常通过USB连接平板的电脑(需要执行Fastboot和ADB指令)
  • CN固件的ASUS Z500M,且有充足的电量
  • 连接稳定的数据线
  • 一定的命令行使用经验
  • 知道如何在开机的时候跳过或完成Google的设置向导(国际版固件带有Google Play框架)
  • 胆大心细
  • 考虑清楚自己是否一定需要Root权限

刷入国际版固件

备份你的所有个人数据

做任何风险比较大的操作之前切记:备份所有的数据!备份所有的数据!备份所有的数据!

通过Fastboot刷入国际版固件

常规方法无法在国行CN版的系统上刷入国际版WW固件,所以这里需要一个小trick,在Fastboot模式下刷入国际版的固件。

首先下载这个文件并解压:

链接: https://pan.baidu.com/s/1hyPKSLdXIpQr6d-c2n9CoQ

提取码: a72k

MD5: 418ccfb7f73078d1f44dfe839b31f92c

SHA256: cb45da6d6e022dc3daa51507b763f8afc8c868ecf5a2fcb8fefdfc7223f0772c

然后把平板关机,通过 音量下 + 电源键 开机,之后就会进入到一个启动选择界面。

在这个界面里:音量下是切换不同的选项,音量上是确认,这里我们通过音量下键让末尾的光标指向Fastboot,并按音量上确认,这样就成功进入了Fastboot模式。

进入到Fastboot模式之后,通过数据线将平板和电脑连接起来,确认电脑已经成功识别并且自动安装好了平板的相关驱动。

之后就可以找到解压出来的文件里面的 flashall.cmd 文件运行,这是一个批处理文件,会自动通过Fastboot刷入国际版固件。

然后你可以泡杯 Java (Coffee),等待刷机完成。具体刷入用了多长时间我也记不清了,反正屏幕上会一直滚动刷入的日志,直到最后如果看到 Download_PASS 就是刷入成功了。

刷入国际版固件成功之后平板会自动重启,第一次重启大概需要 5 分钟左右的时间。重启完开机之后会进入首次开机设置界面,建议在这个设置界面上不要连接WiFi,等进入到桌面之后再连接 WiFi。

到这里,你已经成功从国行版固件刷入到国际版固件了。不过通过Fastboot刷入的国际版固件并不是最新的,还是Android M,所以还需要进一步通过官方固件升级到最新版本,直接到官方网站下载最新的国际版固件(WW_V14.0210.1806.33):https://www.asus.com.cn/Tablets/ASUS-ZenPad-3S-10-Z500M/HelpDesk_BIOS/,下载之后放到平板内部存储的根目录下,之后系统通知栏会提示发现系统更新文件,是否立即更新,选择更新,然后等待系统自动更新完成即可。

自动更新完成之后到系统设置里面的“关于”中就能看到已经升级到 Android 7.0 了。

Root it

解锁Bootloader

解锁Bootloader有两种选择,可以通过官方提供的解锁工具进行解锁,也可以使用XDA上的第三方解锁工具。这里我是通过XDA上的第三方解锁工具进行解锁的,因为我使用官方的解锁工具一直无法成功解锁。

通过官方解锁工具解锁

官方解锁工具的下载链接是:https://dlsvr04.asus.com/pub/ASUS/EeePAD/Zenpad/Z500M/0823-1812_SIGNED_UnlockTool_9.1.0.6_180806_fulldpi.apk.zip,下载之后解压出来是个 apk 文件,安装上打开,之后根据提示一步步操作即可。

通过XDA上的第三方工具解锁

由于我一直无法通过官方解锁工具成功解锁 Bootloader ,所以只好选择 XDA 上的第三方解锁工具进行解锁。这是第三方解锁工具的帖子链接:https://forum.xda-developers.com/android/development/tool-unlock-bootloader-asus-zenpad-10-t3730909。帖子里面有详细的说明,有两种解锁方法,这里选择第一种方法。

获取临时Root权限

首先需要获取临时 Root 权限,其实获取的方法很简单,就两个步骤:通过 Magisk 修补 Boot -> 通过 Fastboot 启动修补过的 Boot。下面详细说明:

通过Magisk修补Boot

首先从 ASUS 官网下载的最新国际版刷机包(就是前文下载的那个 WW_V14.0210.1806.33 的刷机包)中解压出 boot.img 文件,然后将其放到平板中你能方便找到的任意地方。

平板上安装 Magisk Manager 并打开,选择安装,之后会有个选择安装方法的对话框,这里需要点击选择并修补一个文件,之后就会弹出一个文件选择框了,这里就选择刚刚解压出来的 boot.img 文件就行了,之后等待 Magisk Manager 自动修补 boot.img 文件,修补完成如下图所示:

之后就能在平板内部存储的 Download 文件夹下找到一个名叫 magisk_patched.img 文件了。将这个文件拷贝到电脑上。

通过Fastboot启动Magisk Patched Boot

之后平板关机进入 Fastboot 模式,并连接电脑,然后电脑上打开 CMD,通过以下指令使用 magisk_patched.img 文件引导平板开机:

1
fastboot boot /path/to/magisk_patched.img

PS:上面这个命令里面的/path/to/magisk_patched.img意思是magisk_patched.img这个文件的路径,可以先输入fastboot boot,再输入一个空格,之后直接将magisk_patched.img拉入终端中,终端会自动填入所拉入文件的路径。

这里如果你电脑上没有fastboot相关工具的话,可以使用cd指令切换当前工作目录到前文下载下来的线刷固件解压出来的文件夹下,这个里面有自带fastboot工具以及下文会用到的adb工具。

开机之后,再次打开Magisk Manager就能看到已经显示Magisk已安装了,但是此时还是临时的Root权限,重启就会没掉。

解锁Bootloader

有了临时 Root 权限我们就能解锁 Bootloader 啦!首先到这个帖子里面下载解锁工具:unlock_tool_z500m_v0.6a.zip,下载之后解压,放到平板上的 /data/local/tmp 目录下,具体如何操作这里不再详细说明,这一步我是使用 Root Explorer 完成的。

放好这个文件之后,数据线连接平板和电脑,平板记得打开 ADB 调试,然后执行以下指令:

1
2
3
adb shell
cd /data/local/tmp
sh unlockbl.sh

之后按照解锁脚本的提示,选择 1. Unlock bootloader ,之后根据提示输入 Yes, I want to unlock ,然后脚本就会自动进行解锁,完成之后如果看到以下提示就说明解锁成功了:

1
2
Done!
Please reboot your device.

重启平板,可以看到开机的时候会显示Orange State,这就说明解锁成功了。

刷入Magisk Patched Boot

解锁了 Bootloader 之后就可以对平板做任何修改了,下面讲讲如何获取永久 Root 权限(也就是如何刷入Magisk Patched Boot)。

依旧使用前文的方法,通过fastboot boot /path/to/magisk_patched.img开机,以获取临时的Root权限,然后打开 Magisk Manager,选择安装 Magisk,然后还是会弹出选择安装方法的对话框,这时候就要选择直接安装(推荐)了,之后 Magisk Manager 就会自动修补当前系统的 Boot 分区,并将其刷入。等提示成功之后,重启平板就会发现 Root 权限一直都在了。

应该也可通过fastboot flash命令直接在Fastboot模式下刷入magisk_patched.img,这个我也没尝试过,感兴趣的可以试试。

刷入TWRP

之后就是刷入 TWRP 了,有了第三方 Rec 就可以为所欲为了!

首先到这个帖子里下载 twrp-3.2.1-0-z500m.ziphttps://forum.xda-developers.com/zenpad-10/development/twrp-asus-zenpad-3s-10-z500m-t3758333,下载完成之后解压,可以得到一个 img 文件,这个就是 TWRP 的镜像了。将这个文件复制到平板中你能方便找到的地方,当然电脑上也要留一份这个文件,下面需要用到。

依旧很简单,平板关机并启动到 Fastboot,数据线连接到电脑,并使用以下指令使用 twrp-3.2.1-0-z500m.img 引导平板:

1
fastboot boot /path/to/twrp-3.2.1-0-z500m.img

之后平板会启动到临时 TWRP 中,这时候可能会有一个警告界面,选择 Keep System Read-only

然后就会进入到 TWRP 的主界面了,选择 INSTALL ,选择底部的 Install Image ,之后找到并选择你刚刚复制到平板里面的 twrp-3.2.1-0-z500m.img 文件,之后会出现刷入确认界面,这里选择刷入的分区为 Recovery,之后滑动底部滑块即可刷入 Recovery。

到这里为止,你就成功刷入 TWRP 了,重启到 Recovery 就可以直接进入到 TWRP 中。之后你就可以对你的平板为所欲为了!

后记

以上操作只是记录我的操作过程,具体可以灵活操作,例如你也可以先刷入 TWRP,之后再在 TWRP 里面刷入 Magisk 以获取永久 Root 权限。

最后,补张效果图:

Buy me a cup of coffee