骁龙 801 基带协同配置
32 位纯 C 工具通过 /dev/diag 备份并写入 405B qp_ims_reg_config(动态 PCO)与 789B IPV4V6 profile4,激活 Hexagon 独立 IMS PDN。
BLACKBERRY PASSPORT · LINEAGEOS 18.1 · MSM8974
2G / 3G 退网后,刷了 LineageOS 18.1 的黑莓 Passport 能上 4G 网却打不出电话。本项目同时补齐骁龙 801 基带 Stage 6A 专有 EFS 配置与 Android 11 系统级 ImsService 框架栈——继续使用原生拨号器、来电显示正常、重启与拔掉数据线后自动恢复。
当前公开版本:v1.0.0-r1(内置 PassportVolteIms v2.3 + PassportVolteManager v1.0.0)。阅读分步指南
无需刷入 Magisk直接用 LineageOS 开发者选项 Root 调试
原生拨号 + 正常来电显示修正 3GPP CLIP→OIR 极性与 +86 格式
先备份,随时可回滚54 项基带 EFS 支持一键精确还原出厂态
高通对骁龙 801(MSM8974)的官方支持停留在 Android 6.0。在 Android 11 上,必须同时打通基带 Hexagon IMS 引擎与 Android 11 ImsService 通话栈。
32 位纯 C 工具通过 /dev/diag 备份并写入 405B qp_ims_reg_config(动态 PCO)与 789B IPV4V6 profile4,激活 Hexagon 独立 IMS PDN。
运行于 UID 1001,零 <uses-permission> 声明不破坏系统权限,持久化写入 CarrierConfig 并接管呼入/呼出/挂断状态机。
无需第三方网络电话 App。拔掉 USB、正常重启后自动完成 IMS 注册,通话全程驻留 4G LTE 且双向语音清晰。
执行前强制核对 ro.product.device=wolverine、SELinux=Enforcing 与 SIM 就绪状态;每包 DIAG EFS 读写均校验 CCITT CRC-16。
在 Android 11 上共享 android.uid.phone 若声明额外权限会导致系统电话崩溃;本桥接 APK 严格保持零权限声明并通过字节码门禁验证。
使用 3 参数持久化 overrideConfig(..., true) 与开机广播自启。激活完成后拔掉 USB、日常开关机均由手机本地独立恢复 VoLTE。
普通用户直接用方式一 Windows 桌面一键工具最为稳妥,全程无需修改 boot.img 或安装 Magisk。
passport-android11-volte-1.0.0-r1-windows-x64.exe
单文件绿色 EXE,已内置 Python/Tk 图形界面、官方 adb.exe 及全部手机端组件,无需在电脑安装任何环境。
%LOCALAPPDATA%\passport-android11-volte\backups\PassportVolteManager-1.0.0-r1.apk(org.passport.voltemanager)
安装在手机桌面上的独立伴侣应用(独立普通签名,绝不与 UID 1001 通话服务冲突),内置完整二进制载荷与 SHA-256 自校验。
QMI_IMSA 与框架注册状态su),可直接脱离电脑在手机内一键激活、升级或恢复出厂基带passport-android11-volte-1.0.0-r1-portable.zip
零第三方 Python 依赖的命令行与跨平台图形工具,内置已编译并签名的 ARM32 工具与 APK,解压即可在 macOS、Linux 或 Windows 使用。
python3 cli/volte_ctl.py status — 只读健康检查python3 cli/volte_ctl.py deploy / upgrade-apk / rollbackpython3 cli/gui.py — 启动跨平台桌面图形界面rom-integration/Android.bp + device-passport-volte.mk
面向 LineageOS 18.1 自编译维护者及同代骁龙 801 老旗舰移植开发者的 Soong 编译规则与架构文档。
PassportVolteIms 编译进 /system/priv-app/,随刷机包内置ikimi615/qualcomm-volte-enabler 为黑莓 KEY2(骁龙 660 原厂安卓 8.1)提供了很好的 /dev/diag 启发,但在骁龙 801 + Android 11 上存在五个维度的代际鸿沟。
| 技术维度 | qualcomm-volte-enabler(黑莓 KEY2 参考项目) | 本项目 passport-android11-volte(Passport Android 11) |
|---|---|---|
| 目标平台与指令集 | 骁龙 660(SDM660,64 位 arm64-v8a),原厂 Android 8.1 已自带高通现代 ims.apk 框架栈。 |
骁龙 801(MSM8974,32 位 armeabi-v7a),LineageOS 18.1(Android 11)完全缺失任何 ImsService。 |
/dev/diag 内核协议 |
打包 64 位预编译 efs_Write,在 32 位系统直接无法执行;其指针式 ioctl 在 MSM8974 内核返回 EINVAL (-22),且 MEMORY_DEVICE_MODE 会拦截 EFS 读写。 |
自研开源 32 位纯 C pp_regconfig_provision_v6(549 项单测断言),适配 MSM8974 标量值传递 ioctl、sequence16+errno32 头与 CRC-16 校验。 |
| 基带 EFS 写入深度 | 仅将 /nv/item_files/ims/IMS_enable 单字节改为 01。在 Passport 真机实测(1.61/1.62/1.81)中,单改此项仍报 CAUSE_CODE 54、完全无法注册。 |
解压 11.7MB Q6ZIP 基带固件逆向定位根因:协同配置 54 项 EFS/DS(405B qp_ims_reg_config + 789B IPV4V6 profile4 + 保持 ims_hybrid_enable 缺省以启用独立 DCM)。 |
| Android 通话与来电显示 | 无任何 Android 端代码(文档提及的 qcril.db 与开机脚本在仓库 4 个脚本中均未实现)。 |
从零实现 PassportVolteIms.apk v2.3(rild_ims0 Protobuf 引擎、持久化 CarrierConfig、修正 3GPP CLIP→OIR 极性反转与 TOA=145 国际前缀,彻底解决“未知来电”)。 |
| Root 前提与备份回滚 | 依赖刷入 Magisk;auto_enable_volte.sh 无修改前备份、读失败仍强写、无回滚程序。 |
免刷 Magisk(支持 LineageOS 原生 adb root 调试,同时提供 Magisk 伴侣 App);强制先备份原值,内置 --rollback-all 跨重启实机验证。 |
实测通过与待社区验证的范围严格分开标注,拒绝夸大承诺。
针对刷入 LineageOS 18.1-UNOFFICIAL-wseries(设备代号 wolverine,API 30)的 Passport 系列(SQW100-1 / SQW100-3 / SQW100-4)。
ims APN 与 mode=0 动态 PCO(非硬编码 IP),中国移动 / 中国电信 / 海外开通 VoLTE 的 USIM 可测试并欢迎反馈一加 1(bacon)、索尼 Xperia Z2/Z3、三星 Galaxy S5(klte)、小米 4 / Note(cancro)、LG G3、HTC One M8 等在刷入 Android 10/11 后普遍面临同样的“有 4G 无 VoLTE”断代困境。
/dev/diag 标量 ioctl 协议栈、Q6ZIP 基带分析方法、Android 11 ImsService 框架与 CLIP→OIR 来电显示状态机wolverine 机型锁、核对目标基带 profile 槽位与私有 rild IMS socket 消息格式如果你的 Passport、Classic(Q20)、Q10 或 P’9983 仍运行原厂 BB10 OS 10.3.3.3216(QNX 微内核,而非 Android 11),请使用我们的姊妹项目。
当前公开版本
v1.0.0-r1 · 正式开源版
Windows 10 / 11 · x64免装 Magisk · 免装 Python/ADB
双击直接打开图形界面。连接开启了「USB 调试 + Root 调试」的 Passport 后,即可只读检查状态、自动备份并一键激活 VoLTE,或随时恢复出厂基带。
独立开源软件未购买商业 EV 代码签名证书;若遇 SmartScreen 提示,核对 SHA-256 一致后选择“仍要运行”。PassportVolteManager.apkAndroid 11 ARM32 · Magisk 可选
直接安装到 Passport 手机里的独立管理应用:无 Root 可随时查看 IMS / QMI_IMSA 状态;已刷入 Magisk 的手机可脱离电脑直接在机身内备份、激活或回滚。
已内嵌经过 SHA-256 校验的PassportVolteIms.apk v2.3 与 pp_regconfig_provision_v6。
macOS / Linux / ROM 开发者包:包含跨平台便携 CLI/GUI 包、系统签名通话桥接 APK 与完整开源源码包。
默认通过 Cloudflare R2(passport-downloads.octoooo.com)高速直连下载,无需访问 GitHub。如遇网络波动,也可使用下方 GitHub Releases 镜像,两边文件与 SHA-256 完全一致:
GitHub Windows EXE · GitHub 手机管理 APK · GitHub 跨平台便携 ZIP · GitHub 桥接 APK · GitHub SHA-256
从 Q6ZIP 基带逆向到 Android 11 ImsService 的全部 C / Java / Python 代码均以 Apache-2.0 协议开源,欢迎提交测试结果或参与其他老旗舰移植。
不需要!LineageOS 18.1 系统设置里的「开发者选项 → Root 调试(Rooted debugging)」原生支持通过 USB 取得 adb root(UID 0)。使用 Windows 桌面一键版或跨平台 CLI 即可完成一次性激活,激活后拔掉数据线、重启手机依然自动生效。如果你已经刷了 Magisk,也可以选用手机端管理 App。
不会。基带侧使用的是高通骁龙 801 硬件协处理器自带的独立 IMS PDN(profile4),与普通上网 4G APN(default)并行独立;Android 侧服务仅在注册状态变化或来电/去电时驱动事件回调,无后台轮询。
已完整修复。PassportVolteIms v2.3 修正了 3GPP CLIP(0=允许显示)与 Android ImsCallProfile.OIR(2=允许显示)的常量极性反转,并在来电建链后推送 callSessionUpdated 与国际 + 号格式,实测 nump=1 来电号码与通讯录匹配完全正常。
可以。每次激活前工具都会先导出基带原始快照;点击桌面工具的「恢复出厂基带配置并卸载」(或运行 volte_ctl.py rollback),会将全部 54 项 EFS 条目回写/清理至出厂状态、执行 EFS_SYNC、卸载 APK 并正常重启验证。
本开源项目属于实验性老设备救援方案,未经过运营商或紧急呼叫中心(E911/IMS Emergency PDN)认证。请勿将修改后的老手机作为唯一的紧急求救联络工具。