Pixel IMS:激活 Tensor Pixel VoLTE
英文版本可在此处获取。
故障排除
请参考此处。
概述
本文档介绍如何使用 Android 内部 API telephony.ICarrierConfigLoader.overrideConfig()
来激活 VoLTE (IMS) 功能,无需 root 或修改引导加载程序。
支持的运营商
一级支持
可以立即测试并确认是否可用的运营商。
- LG U+(韩国)
二级支持
无法直接测试但已通过社区确认可用的运营商。请参考此链接查看列表。
应用方法
准备工作
- 搭载 Google Tensor 芯片并安装 Android 11 或更高版本的 Pixel 设备
- Google Pixel 6
- Google Pixel 6a
- Google Pixel 6 Pro
- Google Pixel 7
- Google Pixel 7a
- Google Pixel 7 Pro
- Google Pixel 8
- Google Pixel 8 Pro
- Google Pixel Fold
- 安装了 Android Platform Tools 的 Windows、macOS 或 Linux 电脑
- 可进行数据通信的 USB-A 转 USB-C 或 USB-C 转 USB-C 数据线
安装 Shizuku
Shizuku 是一项服务,通过 ADB 或 root 权限运行,允许调用通常无法访问的系统 API。此方法需要调用系统 API。
- 在要应用 VoLTE 补丁的 Pixel 设备上打开 Google Play 商店,安装 Shizuku 应用。
- 运行安装好的 Shizuku 应用。
- 准备好 Pixel 设备和电脑之间的 ADB 通信,然后连接 Pixel 设备和电脑。关于如何准备 ADB 通信,请参考 Shizuku 文档(英文)。
- 输入以下命令启动 Shizuku 服务:
adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh
- 确认 Shizuku 应用界面显示以下文字:
Shizuku is running Version <任意版本号>, adb
- 保持数据线连接,进入下一步。
安装 Pixel IMS 应用
- 目前有两种方式安装 Pixel IMS 应用:
- 从 Github Releases 下载 APK 并安装
- 从 Play Store 下载
- 运行安装好的应用。
- 如果出现询问 Shizuku 权限的弹窗,选择"始终允许"。
- 转到要激活 VoLTE 的 SIM 卡页面。开启"Enable VoLTE"开关。
- 每隔 5 分钟重启 Pixel 设备 2-3 次,直到确认 VoLTE 正常工作。
直接构建 APK
下载修补过的 android.jar 文件,并将其放置在 $ANDROID_PATH/sdk/platforms/android-34
目录下。然后构建并启动应用。
常见问题
我有其他问题、建议或bug报告。
如果您对这个补丁有任何疑问,请使用以下功能。未分类的帖子可能会被删除。
- 报告bug、请求新功能:Issues
- 其他所有问题:Discussions
使用非 U+ 运营商是否也可以应用 VoLTE 补丁?
不可以。支持范围仅限于 LG U+ 和使用 U+ 网络的 MVNO(虚拟运营商)。
有办法确认 VoLTE 是否已经应用成功吗?
如果应用程序的主页面中"IMS 状态"显示为"已注册",则表示 VoLTE 已成功激活。
如需更详细的信息,可以使用 Pixel 设备内置的通信信息查看应用程序。
-
打开 Pixel 设备的默认电话应用程序。
-
在键盘上依次输入
*#*#4636#*#*
。 -
点击"手机信息"选项。
-
点击右上角的三点菜单,然后选择"IMS 服务状态"。
-
如果显示以下内容,则表示 VoLTE 已激活:
IMS 注册:已注册
是否需要在每次重启后重新执行此补丁?
不需要。
是否需要在每次系统更新后重新执行此补丁?
是的。
此补丁的工作原理是什么?
为了在 Android 系统中启用 VoLTE(IMS),ImsManager.isVolteEnabledByPlatform(Context)
方法需要返回 true。该方法的实现如下:
- 检查
persist.dbg.volte_avail_ovr
系统属性是否为 true(现有使用 setprop 的 VoLTE 补丁方法)- 如果是,则返回 true
- 否则继续
- 检查设备本身是否支持 VoLTE 功能
- 如果不支持,则返回 false
- 否则继续
- 检查运营商是否支持 VoLTE 功能
- 如果不支持,则返回 false
- 否则继续
- 检查运营商是否要求 GBA capable SIM 卡来激活 IMS
- 如果不要求,则返回 true
- 否则继续
- 检查 EF IST 中的 GBA 位是否激活
- 如果激活,则返回 true
- 否则返回 false
在韩国使用搭载 Tensor 芯片的 Pixel 设备并使用 LG U+ 网络时,虽然设备支持 VoLTE,但由于运营商未提供自身设置,导致第 3 步"检查运营商是否支持 VoLTE 功能"被处理为 false,从而使设备上的 IMS 被禁用。对于 LG U+,尽管可以使用 Pixel 内置的 VoLTE 功能,但由于缺少运营商的额外设置,VoLTE 仍被禁用。因此,该应用程序结合使用上述提到的 Shizuku 和 CarrierConfigLoader
的强制激活 API,强制将相关设置更改为 true,使系统尝试激活 VoLTE。