2014 年入坑 Nexus 5 的时候,美版在网上看到通过破解是可以支持中国电信 3G 的。然而谁知一入此坑深似海。网上的破解教程,通常是机锋网上的一个个帖子,往往语焉不详,最奇怪的是我记得有一个用来写入 SIM 卡数据的软件,好像叫作 DFS,在同样的条件下做同一个操作,居然会出现随机的结果,需要反反复复尝试,经常彻夜不成。后来有了锤子,果断不折腾了几年,然而风云难测,锤子让老罗自己玩死了,此处略去十万句。只好又回来参考 Google 的手机,这次就是换了汤的 Pixel 系列了。经过基本的调查之后,确认现在对中国运营商的支持好多了,于是再度入坑,这次我选择的是 Pixel 3。至于为什么只在 Google 与锤子之间抉择,这里就不扯了,我想如果你已经搜到了这篇的话,你已经有了自己的选择。

最初找到的几篇相关的帖子,主要是 XDA 上这篇以及其中引用到的 机锋上这篇,可以看到这次只需要更改两个系统配置文件就能够实现对中国电信 4G 的支持。话说 Google 也真是的,明明功能都已经做好了,为什么在配置文件里要刻意关闭掉。

长话短说,当时在 Android 9 的 Pixel 3 上我是这么折腾的:

  1. 安装 Android SDK Platform Tools。这个是为了获得 adb, fastboot 等命令行工具。
  2. 下载其他工具,包括 TWRP 镜像 以及 Magisk 压缩文件和 MagiskManager 手机 APK
  3. 手机上打开开发者调试模式。在 Settings -> About Phone -> Build number 处点击七次,然后去到 System -> Developer options 里面打开 USB Debugging。
  4. 在电脑 shell 里执行:
    $adb install <MagiskManager 文件名 MagiskManager-xxx.apk> # 安装 Magisk Manager 应用
    $adb push <Magisk 压缩文件名 Magisk-xxx.zip> /sdcard/Download #从电脑上将 Magisk 上传至手机
    $adb reboot bootloader #重启手机至 bootloader 模式
    $fastboot flashing unlock #解锁手机 bootloader
    $fastboot boot <TWRP 镜像文件名 twrp-xxx.img> #暂时从 TWRP 镜像启动,这里并不是安装 TWRP
    
  5. 在 TWRP 中手动操作安装 /sdcard/Download 下面上传的 Magisk 压缩文件并重启系统。至此 Magisk 的两部分(Magisk 压缩文件和 MagiskManager 应用)都已安装完成。
  6. 重启之后打开 Magisk Manager 应用,应用主页 "Advanced Settings" 下去掉 "Preserve AVB 2.0/dm-verity" 的勾选并点击上面 "Magisk is up to date" 后面的 "INSTALL"。这样就关闭了系统的完整性检查,便于后续更改系统文件。
  7. 在电脑上执行adb shell 进入手机的 shell 操作环境,执行
    $su
    #cat >> /vendor/rfs/msm/mpss/readonly/vendor/mbn/mcfg_sw/mbn_sw.txt << EOF
    mcfg_sw/generic/China/CT/Commercial/OpenMkt/mcfg_sw.mbn
    mcfg_sw/generic/China/CT/Commercial/VoLTE_OpenMkt/mcfg_sw.mbn
    EOF
    #cat >> /system/vendor/build.prop << EOF
    ro.mtk_ims_support=1
    ro.mtk_volte_support=1
    persist.mtk.volte.enable=1
    persist.dbg.volte_avail_ovr=1
    persist.dbg.ims_volte_enable=1
    persist.dbg.volte_avail_ovr=1
    persist.dbg.vt_avail_ovr=1
    persist.dbg.wfc_avail_ovr=1
    persist.radio.rat_on=combine
    persist.radio.data_ltd_sys_ind=1
    persist.radio.data_con_rprt=1
    persist.radio.calls.on.ims=1
    EOF
    
  8. 进入手 Settings -> System -> Reset options 选中 Erase all data(factory reset) 重置手机。

以上操作总结下来就是,安装 Magisk 以便去掉系统的完整性检查,同时获得 root 权限。然后以 root 身份更改系统的两个配置文件。至于 TWRP, 只是协助 Magisk 安装的一个工具,用完就没它什么事了。

虽然现在这种折腾方式比之以前 Nexus 5 的时候轻便的多了,我还是在心底发誓以后都不要折腾这个。但是因为这种折腾方式会导致之后的系统 OTA 更新没法进行,所以不折腾不过是一个美好的愿望罢了。后来查到说中国联通可以在 Pixel 3 上插卡即用,就一直等着携号转网实现的那一天。然而携号转网实现的那一天,我却发现异地无法办理,而我暂时没有条件回归属地去。

于是时间来到了今天,在等待携号转网来临的日子里,Google 已经推出了多个 OTA 更新,以及 Android 10。在携号转网暂时没戏的情况下,终于忍无可忍要再次折腾一下了。这次痛下决心,要将事情完美收尾一下,于是就有了 chinese_sim_supporter 这个项目。