教程: 解锁多亲手机 2 (Pro) 并安装第三方 ROM

English

以下教程适用于多亲手机 2 (Pro),包括解锁并安装第三方 ROM。目前可用的第三方 ROM 有且只有 GSI (Generic System Image, 通用系统镜像)。

感谢 4PDA 上数位大神的努力让这个手机终于可以解锁,包括但不限于 @ruslang_3_, @xkubus, @0xMihalich, 和 @som_bbs。以下内容完全基于 4PDA 上分享的文件和发现。详情请参考这篇文章.

注意,我只在标准版多亲手机 2 和 多亲手机 2 Pro 2+32G 上测试过解锁。2+64G 版本暂时未测试,尽管应该不会有什么区别。

在阅读教程并开始操作之前,建议您先阅读文末的 FAQ。

环境要求

  • Linux 系统 (或者虚拟机,不确定 WSL 是否可行)
  • Windows 系统 (或虚拟机)
  • 多亲手机 2 或者 多亲手机 2 Pro
  • Linux Shell 常识
  • 能够下载 Mega 和 Google Drive 上的文件;请不要让我浪费时间搬运所有文件到百度盘。

解锁

  1. (进入 Linux) 下载 Android_device_unlock.rar, 解压到一个目录并 cd 进去

    这些文件来自于 4PDA 上的 @ruslang_3_ (链接)。在此我只是镜像了这个文件,因为不是所有人都有 4PDA 帐号。

  2. 用 adb 重启手机到 bootloader 模式 (adb reboot bootloader)

  3. 在解压出来的目录中,运行 ./fastboot oem get_identifier_token。必须使用这个目录里的 fastboot

    这个命令会有如下输出,请保存 XXXXX 部分。注意如果 XXXXX 部分有两行 (OKAY 之前),请把两行连在一起,不要任何空格或者换行。

    ...
    Identifier token:
    XXXXXXXXXXXXXXXXXXXXXXXXXXXX
    OKAY [  0.017s]
    finished. total time: 0.017s
    
  4. 运行 ./signidentifier_unlockbootloader.sh ${TOKEN} rsa4096_vbmeta.pem signature.bin, 把 ${TOKEN} 换成前一步得到的东西。

  5. 运行 ./fastboot flashing unlock_bootloader signature.bin.

    手机上会出现解锁提示,请按照它的指示操作,按下对应的按钮确认解锁,之后耐心等待解锁成功。解锁完毕之后,手机将会自动重启,但是会卡在启动界面。这是 正常现象,请继续阅读本教程。

  6. (进入 Windows) 下载 Qin2Pro_s9863a1h10_v1.1.0.zip (多亲 2 Pro) 或 Qin2_china_test2.7z (多亲 2)

    解压得到我们需要的 .pac 文件。这些文件由 4PDA 上的 @ruslang_3_@xkubus 提供。

  7. 下载 SPD_Research_Tool_R23.19.3301 .7z

    解压得到展讯的 ResearchDownload 工具和需要的驱动。在此不再赘述如何安装压缩包中的驱动。(如果遇到驱动不能用的问题,可以自行搜索其他地方提供的 ResearchDownload 和配套的驱动。)

  8. 打开 ResearchDownload, 用第一个按钮打开之前下载的 .pac 刷机包,并等待载入

    文件载入之后,点击第二个按钮,取消勾选 EraseUBOOTEraseUBOOTLOG

  9. 点击开始按钮, (多亲 2 Pro) 按住 电源 + 音量+ 或 (多亲 2) 按住 电源 + AI按钮, 直到 ResearchDownload 检测到设备

    当设备检测到之后,请松开按钮

  10. 等待 ResearchDownload 完成刷机,之后手机会自动重启回官方 ROM

至此,您的手机已经解锁,并可以使用 fastboot 刷入未签名的系统镜像。但是,您仍然无法刷入非官方的 bootrecovery 镜像 (system 镜像可以随意刷入,不受影响)。本文末我会讨论这个问题。

刷入 phh GSI 镜像

注意: GSI 支持 (包括 10 和 9) 仅在上一节提到的官方底包上测试通过 (Android 9 底包, 中国版本)。使用其他版本的底包没有保证。

  1. 下载 GSI 镜像

    目前,所有基于 Android 9 的 GSI 都应该可以启动,而基于 Android 10 的镜像则需要至少同步到 phh 的 v209。你可以在 这里 下载 phh 的 GSI。请注意,在普通的多亲手机 2 上,你需要 arm32_binder64 版本,而多亲手机 2 Pro 则是 arm64 版本。两者都需要 ab 版本的镜像。(A / B 系统分区)

  2. 将手机重启到 Recovery,清除数据

    非常重要,因为 Bootloader 模式下的清除数据功能不正常,会导致 GSI 无法启动。你无法从 Bootloader 重启到 Recovery。使用 adb reboot recovery 重启到 Recovery,当出现机器人图标的时候,按住 电源 + 音量+ 进入 Recovery 菜单。

  3. 重启到 Bootloader,运行 fastboot flash -S 100M system /path/to/your/system.img 刷入 GSI 镜像

    -S 100M 非常重要,没有无法成功刷入。另外请注意下载到的文件 (.xz) 需要解压得到真正的 .img 镜像。

  4. 运行 fastboot reboot 重启到系统

    如果你选择刷入的 GSI 无法启动,请先试试看 adb 是否可用。如果可用,你可以用 adb reboot recovery 重启到 Recovery 并从头再来。如果不可用,你可以 (1) 用 ResearchDownload 恢复到官方 ROM 从头再来; 或者 (2) 拆开手机,重新插拔电池,并使用 电源 + 音量- 启动到 Recovery。

在多亲手机 2 Pro 上,phh GSI v209 和之前的版本可能会有系统随机崩溃的问题。目前的临时解决方案是通过 Magisk 模块设置 ro.config.avoid_gfx_accel=true 或者手动编辑 build.prop。你也可以安装我在下面提供的我自己构建的版本,或者等待 phh GSI 合并我对这个问题的修复。

这里 有我自己编译的 phh GSI 10 镜像。这些镜像可能含有目前还没有合并进 phh GSI 的 bug 修复,并且由我自己的密钥签名而不是 testkeys。这些镜像里有 Google Apps 但是没有 su,因为我日常只使用 Magisk。我不保证定期更新这些镜像,而且这些镜像也不能直接和 phh GSI 互刷 (i.e. 互刷之前需要清除数据)

Magisk (仅多亲 2 Pro)

在多亲手机上安装 Magisk 比较复杂,需要手动编辑 vbmeta。在此我只提供适用于多亲 2 Pro 的修改后的版本;如果你想在普通版多亲 2 上使用 Magisk,请参考 这篇文章 自行制作。 (如果你 只需要 ROOT, 你并不一定要安装 Magisk。phh 的 GSI 10 都包含 ROOT,而 9 的所有带 -su 结尾的版本也都包含 ROOT).

Note: 4PDA 上的 @xkubus 为普通版多亲 2 (非 Pro) 制作了带 Magisk 的镜像。如果你想要在 GSI 上使用他的 Magisk,你可以用 ResearchDownload 从他的固件里提取出 vbmeta.imgrecovery.img (提取方法请自行搜索), 然后按照下面的方法刷入。

  1. 下载 vbmeta_signed.imgmagisk_rec_v20.3.img (最后更新: 2019-01-16) (以上文件仅适用于 Pro, 并且请不要尝试在 ResearchDownload 中使用这两个文件).

    这个 vbmeta 包含我自己的密钥对 bootrecovery 的签名,刷入之后将无法直接刷官方或者其他人的 bootrecovery。你需要恢复官方的 vbmeta 或者安装你的镜像的作者的 vbmeta 才能刷入其他 bootrecovery 镜像。因此,不要 尝试在 ResearchDownload 中使用这两个文件。

  2. 运行 fastboot flash vbmeta vbmeta_signed.img

  3. 运行 fastboot flash recovery magisk_rec.img

  4. 运行 fastboot reboot,当重启到系统以后,再次执行 adb reboot recovery,此时手机将重启到有 Magisk 的系统

在这个手机上,Magisk 只能安装到 recovery,因为 boot 不包含 ramdisk。每次启动的时候,如果想要使用 Magisk,你 必须 启动到 recovery (电源 + 音量+)。重启的时候,请一定要记得重启到 Recovery 而不是 System,因为在重启的过程中无法切换到 Recovery。如果你需要使用原来的 Recovery 而不是启动到带 Magisk 的系统,请在启动 Recovery 出现多亲 LOGO 的时候按住 音量+

FAQs

  • 为什么不做一个包含第三方 ROM 和 Magisk 的 .pac 刷机包? 用 .pac 甚至不需要解锁。

    简单地说,因为我懒,而且我有很多其他事情要做。我没有心思对所有 GSI 镜像维护并更新一个 .pac 文件,而且我日常也没法使用 ResearchDownload (我不用 Windows)。解锁之后,你可以自己用 fastboot 尝试任何镜像。

  • 刷机会变砖吗?

    我不知道,并不对使用该教程造成的任何后果负责。

  • 在普通版多亲手机 2 上的 GSI 为什么有点奇奇怪怪而且有好多功能没法使用?

    请看 这里

  • EdXposed 最新版本即使在 Magisk v20.3 上也无法使用

    Magisk 新引入的 sepolicy 覆盖功能无法在这个设备上运行,因为没有 persist 挂载点。目前的临时解决方法是打开 SELinux Permissive 模式。您可以尝试使用这个模块 magisk_permissive.zip

  • 在 GSI 上 AI 按钮没有什么用。可以自定义这个按钮的功能吗?

    可以,请使用这个 Magisk 模块 ai-remap. 当通过 Magisk Manager 安装这个模块的时候,它会提示您设置自定义 AI 按钮功能。本模块修改自 bixby remap.

  • 为什么没有导航栏?

    运行 setprop persist.sys.phh.mainkeys 0

  • GSI 上移动网络只有 3G/2G 信号,没有 LTE

    请在设置 - 网络里手动选择 LTE 网络类型

  • 没有 VoLTE

    很抱歉,由于展讯 (和 MTK) 的 VoLTE 实现过于依赖他们特殊的框架 (làn), 第三方 ROM 目前无法实现 VoLTE 支持。

  • 蓝牙音频和听筒不能用

    我在上面「刷入 GSI」一节提供的我自己构建的 GSI 已经包含了修复 (20200123 以后)。我已经给 phh GSI 提交了补丁 (https://github.com/phhusson/platform_frameworks_av/pull/5), 目前已经合并进 phh GSI,待下次更新即可(其他 GSI ROM 预计也会跟进)

  • 为什么不做个 TWRP?

    理由有两个:

    1. 在这个设备上第三方 Recovery 没什么意义,因为当系统坏掉的时候你没有办法重启进 Recovery,除了拔电池冷启动或者使用 ResearchDownload 从头再来。
    2. 我尝试做了 TWRP,但是它没法识别任何输入事件,触屏和按钮都不能用。整个网络上只有一个奇怪的自动移植工具可用,但是没有源码,而且它的 TWRP 版本已经是数年之前的了,无法支持这个手机的分区布局,所以没有意义。