自从pixel1开始,Google就不再把大陆运营商的lte配置文件内置在手机内了,在使用的过程中就会遇到不少麻烦:联通还能基本正常使用(但似乎配置文件不完整,信号会比较一般),但电信就无法直接使用lte了。

最后参考了xda上的一种方法做到了在不Factory Resret的情况下(甚至OTA也不会失效)成功一次性启用和改善了三网的lte效果(理论上在Android O/P/Q beta上都可以成功)

首先我们要用到pixel的factory image和其他的一台有大陆运营商配置的821机器的全量刷机包,这里选取一加3T(和pixel一样均为snapdragon821)

下载pixel的factory image:

https://developers.google.com/android/images#sailfish

解压开image-sailfishxxxx.zip,再解压出里面的modem.img

下载一加3T的全量OTA包

https://www.oneplus.com/hk/support/softwareupgrade/details?code=4

在/firmware-update/里找出NON-HLOS.bin,解压到别处

再Linux环境下扩容pixel的modem.img使能有足够空间装入三大运营商的配置文件。

dd if=/dev/zero of=modem.img bs=4096 count=300 conv=notrunc oflag=append

#这样会扩容1.2M左右,运营商的配置文件大概占用了900k左右的空间

然后挂载上modem.img和NON-HLOS.bin

sudo mount -o loop modem.img /dir_you_want_to_mount/pixel
sudo mount -o loop NO-HLOS.bin /dir_you_want_to_mount/oneplus

再将NO-HLOS.bin中的china的整个配置文件夹拷贝到moden.img的相应位置:

sudo cp -r /dir_you_want_to_mount/oneplus/image/modem_pr/mcfg/configs/mcfg_sw/generic/china/ /dir_you_want_to_mount/pixel/modem_pr/mcfg/configs/mcfg_sw/generic/

最后还需要把配置文件中的版本号+1来让手机认为这是新配置而去读取:

sudo vim modem/modem_pr/verinfo/ver_info.txt
#打开后直接把里面的最后一位数字+1即可

保存并解除挂载

sync
umount pixel
umount oneplus

把修改后的modem在fastboot下刷入

fastboot flash modem_a modem.img
fastboot flash modem_b modem.img
fastboot reboot

重启之后开关一下飞行模式应该就可以使用了,具体拨号盘进*##4636##*即可看到:

这里的data network type已经是LTE了

参考:[GUIDE] Enable China Telecom LTE by modifying modem partitions

https://forum.xda-developers.com/showpost.php?p=78525459&postcount=4

⚠️注意,若是OTA到Android Q预览版时配置文件会似乎会失效(甚至会弄得联通都上不了网),需要重新来一遍上述操作