Google Pixel XL 支持电信卡

前几天托兄弟从深圳买回来三台 Pixel 一代,其中一台是 XL。要说现在电子产品的贬值那是真叫厉害,这么好的机子,4G 的运行内存,32GB 的存储,外观也基本完好,一台才 400 来块。

根据信息,Google Pixel XL 在硬件上是全网通的规格,然鹅,却人为去除了对中国电信的支持。于是,西方不亮东方亮,民间高人这几年来积累了不少变通的方法。本人对电信基本没有使用过,去年底还有电信的客服打电话劝我转网,被我婉拒,但后来却阴差阳错拥有了一张来历神奇的电信卡。

在综合网上的各种信息之后,对 Pixel 系列对通讯制式支持的方法有了个大概了解,不知是否通用,按理说应该是的。

对于 Pixel 一代,根据参考资料之一 —— https://blog.csdn.net/boss_crabe/article/details/80908635,号称史上最详细的帖子 —— 所述,增加电信支持的要点可以归结为如下:

  1. 解锁 bootloader 先;
  2. 将系统 root(即原文中的刷入一个现成的 root 后的系统分区映像);
  3. adb 修改手机端 USB 的能力,桌面端安装与该能力对应的驱动;
  4. 用基带厂商高通的工具(即文中的 QPST)修改手机的 EFS 中的内容,进入 policyman 目录,找到 carrier_policy.xml 文件,将之修改或者替换为合适的副本;
  5. 恢复为非 root 系统(即原文中的将正常系统分区映像刷回)。

上面的方法应该比较老了,而且需要用 root 后的系统来辅助,感觉有点重。另外的一个帖子,则自称是最简捷http://bbs.gfan.com/android-9531535-1-1.html),原文是“按照文本操作傻瓜都会”。

  1. 从链接 https://pan.baidu.com/s/1zH1bXxdeLnOiRpqG0Zm8ZQ 提取文件,提取码 9lac
  2. 刷第一个 modem 分区:fastboot flash modem_a modem.img
  3. [可选] 刷第二个 modem 分区:同上,只需把 _a 改成 _b
  4. [必需] 恢复出厂设置(请提前备份数据):两次分别执行 fastboot erase userdatafastboot erase frp
  5. 按手机电源键开机。

这其实就是刷入了前人已经修改好的 modem.img。据说要想同时刷 _a 和 _b,执行这一条即可:fastboot --slot all flash modem modem.img,而且刷完后用联通卡的要设置一下 APN。这个方法比较不错,但作为一个好奇心比较强且有点强迫症的老程序员,最感兴趣的是别人怎么把 modem.img 改出来的,因为上述操作很可能当时并非是针对老夫手机上用的 Android 10(尽管是阴差阳错被动升级上来的)。

然后就发现了有人在论坛里问了与我脑海中的疑惑相同的问题,“请问下,Pixel XL 安卓 10 怎么破解电信 4G?”。该贴的五楼回复了一个自己动手定制 modem.img 的帖子链接(而六楼则直接回复的就是上述方案二),http://bbs.gfan.com/android-9571646-1-1.html,查看帖子可知,这一方法尽管写作时是针对 Android 9,但后续七楼、九楼的回复和五楼一样,均表示在 Android 10 上已经实作成功。大喜,正可解我前文所惑。这个手工打造可用 modem.img 的帖子,将其主要内容引用如下。

原理很简单,就是将别的相近机型(本例选了一加 3T)的基带配置文件移植进 Pixel 的基带镜像(modem.img)中。修改 modem.img 需要Linux,不过 macOS 也可以,只是步骤 4 挂载命令稍有区别,其他命令也相应调整。

1. 下载 Pixel 的线刷包
https://developers.google.com/android/images
解压后再将得到的 image-sailfish-***.zip 文件解压,取出 modem.img

2. 下载一加 3T 线刷包
https://www.h2os.com/download
解压后在 firmware-update 目录下取出 NON-HLOS.bin

3. 给 modem.img 增加大约 400KB 容量

4. 挂载镜像
Linux:

macOS:

以上命令会输出类似 /dev/diskN 的结果,再使用结果分别执行:
hdiutil mount /dev/diskN

5. 移植基带配置文件

6. 保存镜像

macOS 则可使用磁盘工具直接推出镜像。

7. 启动到 bootloader 模式

8. 刷写镜像

9. 重启完成破解

引用完毕。作者一开始也表明,他参考的是 https://forum.xda-developers.com/pixel-xl/how-to/guide-enable-china-telecom-lte-t3782538。在后一文中可知,前文方案二的步骤 4 里 fastboot erase frp 应该不是必需的,因为这老兄写着这条命令的目的是“(Optional. To skip setup wizard.)”。而且提到了一句原理:Why? On initial SIM insertion, Android copies carrier config files into data and then flashes one of them into modemst. I just changed all mcfg_sw.mbn files into 1+3T’s, which supports CT. 接着还附上了他提取出来的 mbn 文件的网盘链接。

更新一:本文写就一天后,已经将 Pixel XL 一代的最新官方 ROM 中的 modem.img 改造后成功刷入,电信 4G LTE 使用尚未发现问题。在实际操作中,特意省去了前文方案二的整个步骤 4,也没有异常。

最后,附录一则适用于 Pixel 较新的三代机的操作过程,发现于一个老家伙的搏客(https://blog.kangkang.org/index.php/archives/382)。他的宣传语是“最干净”,比较符合我老人家的口味。从其描述来看,和一代机已经有所不同,首先就是要把 dm-verify 禁掉(通过修改 vbmeta 分区,这个分区我头一次注意到),然后到 vendor 分区里去修改适当的文件即可(显然,mbn 配置文件的位置发生了变化)。此老兄貌似也是一位中年大叔,行文对技术手法和细节的取舍得当,深得吾心。而且学到了新的知识,例如修改官方 ROM 刷机脚本 flashall 中的参数,把 -w 去掉即可免于清除数据,而且从其中的一条语句 fastboot boot trwp-xxx.img 还让我看到了一种不用执行先刷后使用再恢复这三件套标准步骤就可以启动一次指定 recovery 的可能性(大概率是可行的,就差哪天实践一下)。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注