Skip to content
On this page

多亲 F22 利用 mtkclient 获取超级用户(root)权限

为了激活第三方软件安装器(参考:《多亲 F22 使用三方安装器绕过软件安装限制》,最终决定通过 root 的方式。

一开始想使用 mtk 漏洞获取临时 root 权限的方式,但是多亲 F22 的 CPU 是 MT6739 安卓版本是 11,已经不支持此方案了,所以只能查找其他方案。

参考资料

操作步骤

在网上搜索到 多亲 f22root 这个视频作者有提到使用 mtkclient 成功 root。于是按照 mtkclient 的文档中的操作步骤进行处理,但是一直失败,后来又参考了《其他 MTK 手机 root 教程》了解到是有 AB 分区的区别。以下讲一下我这边具体的操作步骤,以 macOS 操作为例。

手机设置

  1. 到手机设置中点击“关于手机”找到“版本号”,连续点击 7 次,开启开发者模式。

  2. 在设置中点击“系统”找到“开发者选项”,开启“USB 调试”(注意,如果中途切换电脑,可能需要重新关闭和打开调试开关才能识别)。

  3. 然后在“开发者选项”将“OEM 解锁”也打开。

解 BL 锁

手机连接电脑,打开终端,输入以下命令进入 fastboot 模式:

bash
adb reboot bootloader

手机重启后会显示 FASTBOOT MODE,然后输入以下命令解锁 BL:

bash
fastboot oem unlock

手机会显示是否解锁 BL,按音量上键选择“是”,但是多亲 F22 没有音量键,尝试按了拨号键和上键,之后解锁完成。输入以下内容重启手机:

bash
fastboot reboot

再次开机后,手机会出现英文提示设备已解锁。注意:解锁 BL 会清除手机数据,所以提前备份。

安装 mtkclient

直接按照 mtkclient 的文档操作即可,这里不再赘述。不过在 macOS 下遇到了一些问题:

  • 部分依赖安装包错,后来直接运行,按照报错提示单独安装了缺失的依赖包。
  • 提示 QT 版本过低,后来将 shiboken6 和 pyside6 降级到 6.2.4 版本。

获取 root

mtkclient 装好之后就可以连接手机进行 root 了。

  1. 提取 boot_a 和 vbmeta 分区,原版的 mtkclient 写的是 boot 和 vbmeta,但是多亲 F22 是 boot_a 和 vbmeta,所以需要修改一下。执行后会提示关机,然后同时按音量加减键重启到 brom 模式,这里多亲 F22 是拨号键和挂断(开机)键。
bash
python mtk.py r boot_a,vbmeta boot_a.img,vbmeta.img
  1. 提取完成后,拔掉数据线,长按电源 10 秒重启手机再连接点击,将 boot_a.img 使用 adb 命令传输到手机上。
shell
adb push boot_a.img /sdcard/Download
  1. 使用手机系统浏览器在这里打开链接下载安装最新的 mtk 版 magisk(若国内访问失败可以从文章底部的资源下载)。
  2. 打开 magisk,点击安装(install),从本地 /sdcard/Download 选择 boot_a.img 文件进行修补。
  3. 将修补后的文件使用 adb 传输到电脑上,重命名为 boot_a.patched。
shell
adb pull /sdcard/Download/这里写magisk修补后的文件名字
mv 这里写magisk修补后的文件名字 boot_a.patched
  1. 仍然是将手机重启重启到 brom 模式,然后将 vbmeta 和 boot_a 写回手机,执行如下命令:
shell
python mtk.py da vbmeta 3
python mtk.py w boot_a boot_a.patched
  1. 写完之后,拔掉线长按重启手机。进入 magisk 确认一下 magisk 的安装状态,此时可能提示重启,重启后再次进入,提示安装完成,也就是 root 成功了。

IMG_3789.jpg

相关资源