❗️ 注意:本教程仅适用于 Google Pixel (2016) 或 Google Pixel XL (2016),其他更新的机型并不适用。
高通现代的 SoC 理论上应该是支持众多 LTE 的频段,而很多针对中国大陆境外销售的手机可能对境内的运营商网络支持不够友好。Google Pixel 对于中国电信的支持情况就是一个例子,为了使中国电信能够在 Google Pixel 上正常使用,本教程教会告诉你如何通过非硬件层面上的方法(通过修改 modem )来实现这一目的。
基本要求
为了能够正常完成本次操作,你首先需要确保以下内容:
配置好 ADB 的环境变量
不懂的话就请网上自行搜索“ADB 环境变量”,本文不会讲解这一基本操作(敬请见谅
知道如何进入 recovery 模式
确保已解锁 bootloader
关于解锁 bootloader 的操作可以看我上篇的文章的一个小节:
如果很不幸你的 Pixel 是 Verizon 版的就只能找某宝奸商付费解锁 bootloader 了。
❗️ 注意:如果你不想或没空自己移植 modem,请直接跳过过下面 移植 modem 的环节(之后直接按教程刷入移植得到的 modem.img
即可):
移植 modem
❗️ 注意:由于 Google Pixel 和 Google Pixel XL 使用的是相同的 modem(通过二者
modem.img
的 sha256sum 值相同得出的结论),所以通过修改得到的 modem 文件是通用的。
刷入最新的 factory image
本教程是基于 Pixel 的最后一个系统版本修改 modem,所以请确保你的 Pixel 系统已是最新。factory image,即工厂镜像,通俗来说也就是所谓的“线刷包”。请根据你所持有的设备下载相应的工厂镜像:
设备 | 工厂镜像下载链接 |
---|---|
Pixel | sailfish-qp1a.191005.007.a3-factory-d4552659.zip |
Pixel XL | marlin-qp1a.191005.007.a3-factory-bef66533.zip |
- 将手机重启到 bootloader 模式
- 解压下载好的工厂镜像
- 找到
flash-all.bat
文件,双击即可 - 完成后手机会自动重启
备份 Pixel / Pixel XL 的 modem
由于 Pixel /Pixel XL 的 Android 10 工厂镜像没有提供单独的 modem.img
,所以我们需要通过 TWRP(第三方 recovery)执行 dd
命令来实现对 modem 的备份。
设备 | TWRP 下载链接 |
---|---|
Pixel | twrp-3.4.0-0-sailfish.img |
Pixel XL | twrp-3.4.0-0-marlin.img |
- 首先根据你所持有的设备下载好相应的 TWRP
- 将手机重启到 bootloader 模式
- 启动到 TWRP,即执行命令:
1 | fastboot boot *.img |
命令里的
*.img
不需要手动输入,直接拖拽文件到 cmd 窗口即可,系统会自动填写文件相应的路径。如图:
- 最后,备份 modem
执行命令如下:
1 | adb shell |
命令里的
F:\Downloads
是备份的 modem (即stock.img
)存储在电脑上的路径,你可以自行修改,看图:
获取 OnePlus 3T 的 modem
更改基带文件的总体思路是:提取相同型号处理器的设备的基带文件(这里使用的是 OnePlus 3T)。为了得到 OnePlus 的 modem,所以我们需要 OnePlus 的工厂镜像来提取 modem。
设备 | 工厂镜像下载链接 |
---|---|
OnePlus 3T | OnePlus3THydrogen_28_OTA_083_all_2002201900_bf0fc8385b5547c0.zip |
- 首先下载 OnePlus 3T 的工厂镜像
- 从工厂镜像压缩包找到
/firmware-update/NON-HLOS.bin
,提取出来即可
移植 modem
经过前期的准备工作,我们得到了
- Pixel / Pixel XL 的 modem 镜像
stock.img
- OnePlus 3T 的 modem 镜像
NON-HLOS.bin
文件名 | 下载链接 |
---|---|
stock.img |
链接 |
NON-HLOS.bin |
链接 |
通过挂载 modem 镜像,我们可以对镜像里的文件进行修改,为了接下来的操作,我们这里需要用到搭载 Linux 系统 的电脑或虚拟机。以下命令均在 Linux 上运行:
1 | # 1. 创建挂载点(stock 用于挂载 Pixel 的原始 modem 镜像,oneplus 用于挂载 OnePlus 的 modem 镜像) |
完成上述命令后我们就移植得到了 modem.img
啦。
下载移植得到的 modem 镜像
你可以使用自己移植得到的 modem 镜像( modem.img
),或者是下载本文提供的镜像:
文件名 | 下载链接 |
---|---|
modem.img |
链接 |
刷入 modem
手机进入 bootloader 模式,刷入 modem 镜像( modem.img
),cmd 执行这行命令即可:
1 | fastboot --slot all flash modem *.img |
命令里的
*.img
不需要手动输入,直接拖拽文件到 cmd 窗口即可,系统会自动填写文件相应的路径。如图:
❗️ 注意:刷入 modem 后必须恢复出厂设置,之后重启即可,执行以下命令:
1 | fastboot erase userdata |
网络去叉
状态栏的网络信号有个叉,这是为什么呢,又该如何解决?详情请参见:
(类)原生 Android 网络去叉/叹号 Android 5.0 - 10.0