其实很多帖子都在说“完美”支持中国电信,然而什么是真正的“完美”呢,只要不是将电信卡插上就用,我想都不算是“完美”吧。本篇方法所说的“完美”主要是指,在支持了电信的情况下,仍然能够无痛或者微痛的进行 OTA 升级。
本方法有两个步骤,首先安装 Magisk,然后使用一个叫作 chinese_sim_supporter 的 Magisk 模块来开启中国电信支持。

注意:本方法只在 Pixel 3 的 Android 10 版本上进行过测试,其它机型或者版本,理论上虽也可行,但具体操作方法会有出入,不要一味套用。

  1. Magisk
    前文 之中我记录过一种 Magisk 的安装方式,是通过 TWRP 来进行。但由于 TWRP 对于 Android 10 迟迟未有支持, 所以这里需要更换一种方式。 另外在使用 TWRP 进行原 Android 9 系统备份的时候,出现了一个错误 “createTarFork() process ended with ERROR: 255”,这里也稍带提一下,由于我使用了 "work profile" 所以系统中存在两个用户,需要关闭 work profile,另外需要将手机的解琐码关掉。相关 bug 参考这里这里

    • https://github.com/topjohnwu/Magisk/releases 下载最新版本的 Magisk Manager 应用,并安装到手机上。
      adb install MagiskManager-v7.5.1.apk
      
    • https://developers.google.com/android/images 下载 Pixel 3 对应的最新 Android 镜像解压提取 boot.img 上传至手机
      unzip blueline-qq1a.200205.002-factory-25feefff.zip
      cd blueline-qq1a.200205.002
      unzip image-blueline-qq1a.200205.002.zip
      adb push boot.img /sdcard/Download/
      
    • 手机上打开 Magisk Manager 应用程序,选择 Magisk is up to date 后面的 INSTALL,依次选择 Install -> Install -> Select and Patch a File。Magisk 会生成一个自动修改过的镜像文件放在位置 /sdcard/Download/magisk_patched.img。将该文件复制到电脑
      adb pull /sdcard/Download/magisk_patched.img
      
    • 将 Magisk 修改过的镜像文件刷入手机
      adb reboot bootloader
      fastboot flashing unlock
      fastboot flash boot magisk_patched.img
      fastboot reboot
      

    注意:在做完一切更改之后,有些人会想要重新锁上系统,即 adb flashing lock,这里强调一下这是不行的,因为锁手机的操作会将手机内核重置回原厂。以上就白做了。另外,不同的手机安装 Magisk 的步骤是不一样的,还是要参照 Magisk 官方文档才对。

  2. chinese_sim_supporter
    其实前文中提到的机锋帖子 http://bbs.gfan.com/android-9535442-1-1.html 已经提供过一个 Magisk 的模块的方法,但是经过调查以后,发现那个模块写得还不够完美,所以我参照 Magisk 的文档对模块进行了一下正规化的工作,产生了本文这个新模块。机锋帖子里还需要手动下载模块交给 Magisk 来安装,这里我写的这个模块则已被 Magisk 官方接受在官方模块库之中,在 Magisk 应用当中可以直接找到并安装,另外机锋帖子里安装完 Magisk 模块还需要手动删除一个叫 fdr_check 的文件,我这里也不再需要。
    打开手机上 Magisk Manager 应用,在菜单里选择 Downloads 找到一个叫 Chinese SIM Supporter 的模块,点击后面的下载按钮等待安装完成然后点击重启即可。重启过后试一下中国电信的支持,应该已经打开。

  3. OTA 升级
    在打开中国电信的支持之后,这里着重说一下如何进行 OTA 升级。主要是 Magisk 能够在保留对系统的更改的前提下骗过系统更新程序。其核心原理是,Magisk 将自己的修改从手机上暂时抹去,但是保持手机不重启,所以 Magisk 仍然存活在系统内存当中,此时进行 OTA 升级系统将发现手机的软件与原厂一致从而胜利升级完成。升级完成之后仍然不重启系统,使用内存中的 Magisk 应用将 Magisk 的更改再重新落实到手机存储上,之后再重启。原文档链接https://topjohnwu.github.io/Magisk/tutorials.html。步骤如下:

    • 在手机 Settings -> System -> Develop Options 之中关闭 Automatic System Updates,这样系统不会自动进行 OTA 更新,便于介时人工干预。
    • 当 OTA 更新来到时,先打开 Magisk Manager 应用,点击 UNINSTALL 选择 Restore Images,暂时卸载 Magisk。
    • 依次进入 Settings -> Systems -> System Update 进行 OTA 升级,升级完成之后不要重启系统。
    • 回到 Magisk Manager 应用,依次选择 Install -> Install to Inactive Slot
    • 最后重启系统