更改 Pixel 基带以支持电信 LTE

最近在闲鱼买了一部 Pixel XL,主要是看中了它支持永久的不限容量原始画质 Google Photos 备份,而且 4+128 的配置放在现在也不算过时,可以当一部不错的备用机。由于美版机器原生系统只支持联通全网通,然而硬件上应该是支持电信和移动网络的,因此搜索到可以通过更改基带来支持电信全网通。

更改基带文件的总体思路是提取相同型号处理器的基带文件(这里使用的是 Oneplus 3T)加入到原生系统的基带中。由于这个手机发布时间比较长了,网上的教程历史比较悠久,大多是基于 Android 7/8 版本,而 Google 官方已经更新到了 Android 10,因此我参考这个教程,基于最新的 Pixel 系统镜像 9.0.0 (PQ3A.190801.002, Aug 2019) 和 Oneplus 3T 系统镜像 OnePlus3THydrogen_28_OTA_083_all 制作了基带文件,总结如下。

由于 Android 10 镜像内无法直接找到基带文件,且据信相较于 Android 9 基带并无更新,因此这里使用了最新的 Android 9 镜像

TL; DR

下载我上传到 GitHub 的文件,把手机连接到电脑,重启到 fastboot,使用以下命令刷入并重启即可

1
2
fastboot flash modem modem_patch.img --slot all
fastboot reboot

此后如果需要使用联通卡,需要新建接入点名称(APN)配置,APN 配置为 3gnet,其余不用修改,保存即可使用。

修改步骤

提取基带文件

  1. 下载 Pixel 的原厂镜像,解压后再将得到的 image-marlin-qp1a.191005.007.a3.zip 文件解压,取出 modem.img

  2. 下载 Oneplus 3T 的线刷包,解压后在 firmware-update 目录下取出 NON-HLOS.bin

这两个文件我也上传到了 GitHub,可以直接下载。

修改基带文件

  1. modem.img 增加大约 400KB 容量
1
dd if=/dev/zero of=modem.img bs=4096 count=100 conv=notrunc oflag=append
  1. 挂载基带镜像
1
2
3
4
5
mkdir modem_pixel
mkdir modem_oneplus

sudo mount -o loop modem.img modem_pixel
sudo mount -o loop NON-HLOS.bin modem_oneplus
  1. 移植基带配置文件
1
2
3
4
5
6
sudo mkdir modem_pixel/modem_pr/mcfg/configs/mcfg_sw/generic/china

sudo cp -r modem_oneplus/image/modem_pr/mcfg/configs/mcfg_sw/generic/china/ct modem_pixel/modem_pr/mcfg/configs/mcfg_sw/generic/china/

sudo vim modem_pixel/modem_pr/verinfo/ver_info.txt
# 将文件中数字加 1
  1. 保存镜像
1
2
3
sync
umount modem_pixel
umount modem_oneplus

然后按照上面的步骤刷入重启即可。

参考