按机型校验的基带 EFS 供给
读取 devices/*/profile.json 硬件指纹;对已验证的 Passport 写入 405B 动态 PCO qp_ims_reg_config 与 789B IPV4V6 profile4,未建档机型自动拦截写入。
QUALCOMM 32-BIT (MSM8974) · ANDROID 11 · VERIFIED: BLACKBERRY PASSPORT
高通对骁龙 800 / 801(MSM8974)的官方支持停留在 Android 6.0,2G/3G 退网后刷入 LineageOS 18.1 的经典机型能上 4G 网却打不出电话。Qcom32 VoLTE 从零实现通用 32 位 Android 11 ImsService 通话栈与按机型隔离的 Hexagon 基带 EFS 供给框架——黑莓 Passport(wolverine)作为首个完整真机验证 Profile 已全量跑通。
当前公开版本:v1.1.0-r1(含通用 Qcom32VolteIms v2.4 + Qcom32VolteManager v1.1.0 + blackberry-passport-wolverine 设备配置)。阅读分步指南
通用栈 + 机型 Profile 门禁通用 Android 11 ImsService,按机型严格校验 EFS 写入
免刷 Magisk + 换卡自愈原生 Root 调试激活,换三网 SIM 卡开机自动重绑
先备份,随时可回滚54 项基带 EFS 支持一键精确还原出厂基线
在 32 位高通平台上,Android 11 ImsService 与 rild_ims0 Protobuf 引擎具有高度通用性,而基带 PDP 槽位必须按具体机型 Profile 严格校验——本栈在架构上将二者彻底解耦。
读取 devices/*/profile.json 硬件指纹;对已验证的 Passport 写入 405B 动态 PCO qp_ims_reg_config 与 789B IPV4V6 profile4,未建档机型自动拦截写入。
包名 org.octolab.qcom32ims(运行于 UID 1001,零权限声明),持久化绑定活跃 SIM CarrierConfig,接管主被叫状态机并提供免 Root VolteStatusProvider。
无需任何第三方网络电话 App。拔掉 USB、正常重启或更换不同运营商 SIM 卡后自动完成注册,通话全程保持 4G LTE 且来电显示完整正常。
通用 Qcom32VolteIms 与只读 libimsa_probe.so 支持任意 32 位高通机型探测,而基带 EFS 写入严格锁定 devices/*/profile.json 白名单与 CCITT CRC-16 校验。
在 Android 11 上共享 android.uid.phone 若新增权限声明会破坏系统电话权限表;本通话栈严格保持零 <uses-permission> 并经实机核验权限数零漂移。
内置零隐私泄露的只读 content://org.octolab.qcom32ims.status 接口,拔掉数据线换三网 SIM 卡时无需 Magisk su 即可在手机 App 实时查看底层注册状态。
普通用户首次激活最推荐方式一 Windows 桌面一键工具(免装 Magisk);同时建议点一下「安装手机端管理 App」,后续拔掉数据线换卡测试时可在手机屏幕实时查看状态。
qcom32-volte-1.1.0-r1-windows-x64.exe
单文件绿色 EXE,已内置 Python/Tk 双语图形界面、官方 adb.exe、设备 Profile 库及全部签名手机组件,无需在电脑安装任何环境。
%LOCALAPPDATA%\qcom32-volte\backups\Qcom32VolteIms 安装、重启与健康核验Qcom32VolteManager-1.1.0-r1.apk(org.octolab.qcom32volte)
安装在手机桌面的独立伴侣应用(独立签名不与 UID 1001 冲突),内置 SHA-256 自校验载荷与只读状态桥接客户端。
rild_ims0、QMI_IMSA 承载与系统 IMS 注册状态su),更可直接脱离电脑在手机内一键激活、升级或回滚出厂基带qcom32-volte-1.1.0-r1-portable.zip
零第三方 Python 依赖的命令行与跨平台图形工具,内置已编译签名的 ARM32 工具、双 APK 与 devices/ Profile 库,解压即用。
python3 cli/volte_ctl.py status — 只读健康检查python3 cli/volte_ctl.py deploy / upgrade-apk / install-manager / rollbackpython3 cli/gui.py — 启动跨平台桌面图形界面rom-integration/Android.bp + device-qcom32-volte.mk
面向 LineageOS 18.1 自编译维护者及同代高通 32 位老旗舰移植开发者的通用 Soong 编译规则与新机型 Profile 接入规范。
Qcom32VolteIms 直接编译进任意 32 位高通 ROM 的 /system/priv-app/devices/<id>/profile.json 接入流程,支持一加 1、小米 4、索尼 Z2/Z3、三星 S5 等机型扩展ikimi615/qualcomm-volte-enabler 为黑莓 KEY2(骁龙 660 原厂安卓 8.1)提供了宝贵的 /dev/diag 启发,但在高通 32 位平台 + Android 11 上存在五个维度的代际断层。
| 技术维度 | qualcomm-volte-enabler(黑莓 KEY2 参考项目) | 本项目 qcom32-volte(高通 32 位 Android 11 通用栈) |
|---|---|---|
| 目标平台与架构边界 | 骁龙 660(SDM660,64 位 arm64-v8a),原厂 Android 8.1 已内置高通闭源 ims.apk 框架。 |
高通 32 位平台(MSM8974,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 动态 PCO qp_ims_reg_config + 789B IPV4V6 profile4 + 独立 DCM 模式)。 |
| Android 通话与来电显示 | 无任何 Android 端代码(文档提及的 qcril.db 与开机脚本在仓库 4 个脚本中均未实现)。 |
从零实现通用 Qcom32VolteIms.apk v2.4(rild_ims0 Protobuf 引擎、持久化 CarrierConfig、修正 3GPP CLIP→OIR 极性反转与 TOA=145 国际前缀,彻底解决“未知来电”)。 |
| Root 前提与备份回滚 | 依赖刷入 Magisk;auto_enable_volte.sh 无修改前备份、读失败仍强写、无回滚程序。 |
免刷 Magisk(支持 LineageOS 原生 adb root 调试 + 免 su 屏幕状态面板 App);强制先备份原值,内置 --rollback-all 跨重启实机验证。 |
已真机完整验收的设备 Profile 与待社区建档适配的机型严格区分标注,确保安全可靠。
wolverine)运行 LineageOS 18.1-UNOFFICIAL-wseries(Android 11 / API 30)的 Passport 系列(SQW100-1 / SQW100-3 / SQW100-4),内置 blackberry-passport-wolverine Profile。
mode=0);注意 SQW100-1 硬件支持 FDD-LTE B1/B3/B5/B7/B8(不支持 TDD B38-41 与 CDMA 1x):联通/电信 FDD 全覆盖可用,移动需在 FDD B3/B8 覆盖区驻留 4G(纯 TDD 区自动回落 2G GSM)一加 1(bacon)、小米 4 / Note(cancro)、索尼 Xperia Z1/Z2/Z3、三星 Galaxy S5(klte)、LG G2/G3、HTC One M8 等 Android 10/11 刷机机型。
Qcom32VolteIms.apk 通话栈(凡暴露 rild_ims0 的机型)、Qcom32VolteManager.apk、libimsa_probe.so 只读探针与 /dev/diag 标量编解码器/nv/item_files/pdp_profiles/ 确认 ims 槽位号,在 devices/<id>/profile.json 新增验证配置如果你的 Passport、Classic(Q20)、Q10 或 P’9983 仍运行原厂 BB10 OS 10.3.3.3216(QNX 微内核,而非 Android 11),请前往姊妹项目。
当前公开版本
v1.1.0-r1 · 通用架构正式版
Windows 10 / 11 · x64免装 Magisk · 免装 Python/ADB
双击直接打开图形界面。连接开启了「USB 调试 + Root 调试」的手机后,即可只读检查状态、自动备份并一键激活 VoLTE、推送手机端状态 App 或恢复出厂基带。
独立开源软件未购买商业 EV 代码签名证书;若遇 SmartScreen 提示,核对 SHA-256 一致后选择“仍要运行”。Qcom32VolteManager.apkAndroid 11 ARM32 · 免 su 实时面板
安装到手机桌面的伴侣应用:无需 Root 即可实时显示三网运营商、rild_ims0、QMI_IMSA 与系统注册状态;已刷入 Magisk 的手机更可直接机内激活或回滚。
Qcom32VolteIms.apk v2.4 与 pp_regconfig_provision_v6。
macOS / Linux / ROM 开发者包:包含跨平台便携 CLI/GUI 包、通用系统签名通话栈 APK 与完整开源源码包。
默认通过 Cloudflare R2(qcom32-downloads.octoooo.com)高速直连下载,无需访问 GitHub。如遇网络波动,也可使用下方 GitHub Releases 镜像,两边文件与 SHA-256 完全一致:
GitHub Windows EXE · GitHub 手机管理 APK · GitHub 跨平台便携 ZIP · GitHub 通话栈 APK · GitHub SHA-256
从 Q6ZIP 基带逆向、/dev/diag 供给器到通用 Android 11 ImsService 的全部 C / Java / Python 代码均以 Apache-2.0 协议开源,欢迎提交三网测试结果或新增其他 MSM8974 机型 Profile。
不需要!LineageOS 18.1 系统设置里的「开发者选项 → Root 调试(Rooted debugging)」原生支持通过 USB 取得 adb root(UID 0)。使用 Windows 桌面一键版或跨平台 CLI 即可完成一次性激活,激活后拔掉数据线、重启与换 SIM 卡均自动生效,且 Qcom32VolteManager 无需 Magisk 即可在手机屏幕显示完整实时状态。
完全自动!运行 v1.1.0-r1 的桌面一键版或 CLI 时,工具会自动清理旧包残留、平滑迁移至新通用包名 org.octolab.qcom32ims(v2.4)并重新绑定持久化 CarrierConfig。
已完整修复。Qcom32VolteIms v2.4 修正了 3GPP CLIP(0=允许显示)与 Android ImsCallProfile.OIR(2=允许显示)的常量极性反转,并在来电建链后推送 callSessionUpdated 与国际 + 号格式,实测来电号码与通讯录匹配完全正常。
可以。每次激活前工具都会先导出基带原始快照;点击桌面工具的「恢复出厂基带配置并卸载」(或运行 volte_ctl.py rollback),会将全部 54 项 EFS 条目回写/删除至出厂状态、执行 EFS_SYNC、卸载 APK 并正常重启验证。
本开源项目属于实验性经典硬件救援方案,未经过运营商或紧急呼叫中心(E911/IMS Emergency PDN)认证。请勿将修改后的老手机作为唯一的紧急求救联络工具。