01. Prerequisites & Verified Device Profile
- Verified Device Profile: Ships with
blackberry-passport-wolverinesupporting BlackBerry Passport (SQW100-1 / SQW100-3 / SQW100-4, codenamewolverine) onLineageOS 18.1-UNOFFICIAL-wseries(Android 11 / API 30, SELinuxEnforcing). Unverified devices are blocked from EFS writes automatically. - Provisioned SIM: Insert an active 4G/5G USIM with VoLTE enabled on supported FDD-LTE bands and confirm LTE data attaches normally.
- Idle Phone State: Ensure no call is active, battery is above 30%, and use a reliable USB data cable.
Qcom32VolteIms—it does not wipe user data. Never rely on experimental legacy modifications as your sole emergency (911/112) device.02. Enable LineageOS 18.1 USB & Rooted Debugging
When using Method 1 (Windows EXE) or Method 3 (Portable CLI), Magisk is not required:
- Open Settings → About phone and tap Build number 7 times to unlock Developer Options.
- Open Settings → System → Advanced → Developer options.
- Turn ON Android debugging and Rooted debugging on the same screen.
- Connect via USB and accept the “Allow USB debugging?” RSA fingerprint dialog on the phone.
03. Method 1: Windows Desktop One-Click EXE (Recommended)
- Download and launch
qcom32-volte-1.1.0-r1-windows-x64.exe. - Verify your device serial appears in “ADB Device” and click “1. Check Status (Read-Only)”.
- Click “2. Backup & Activate VoLTE (Recommended)” and confirm.
- The tool switches to
adb root, saves a pre-deployment EFS snapshot under%LOCALAPPDATA%\qcom32-volte\backups\, provisions Stage 6A +EFS_SYNC, migrates/installsQcom32VolteIms.apkv2.4, reboots normally, and polls untilvolte_stack_healthy: true. - Click “Install Mobile Companion App” so you can monitor live IMS status directly on the phone screen while unplugged.
04. Method 2: On-Device Companion App
- Install
Qcom32VolteManager-1.1.0-r1.apk(launcher icon: Qcom32 VoLTE). - Without Magisk (Zero-su Live Dashboard): Tap “Refresh Live Status” anytime to read carrier PLMN,
rild_ims0,QMI_IMSAbearer/registration, and framework IMS state overcontent://org.octolab.qcom32ims.status. - With Magisk (
su): Tap “Activate / Repair Native VoLTE (Magisk su)” to run SHA-256-verified backup, Stage 6A provisioning, APK installation, or factory rollback right on the device.
05. Method 3: macOS / Linux / Cross-Platform Portable ZIP
Extract qcom32-volte-1.1.0-r1-portable.zip (requires Python 3.9+ and adb):
python3 cli/volte_ctl.py self-test
python3 cli/volte_ctl.py status
python3 cli/volte_ctl.py deploy
python3 cli/volte_ctl.py install-manager
# Or launch the cross-platform Tkinter GUI:
python3 cli/gui.py
06. Method 4: LineageOS 18.1 ROM Integration & 32-Bit Porting
ROM builders can bake Qcom32VolteIms into /system/priv-app/ using rom-integration/Android.bp and device-qcom32-volte.mk:
mkdir -p packages/apps/Qcom32VolteIms
cp -r src/android-ims-service/* src/qmi-imsa-probe rom-integration/Android.bp packages/apps/Qcom32VolteIms/
# Add to your 32-bit Qualcomm device.mk:
$(call inherit-product, packages/apps/Qcom32VolteIms/device-qcom32-volte.mk)
Because Android ROM zips do not overwrite Qualcomm’s dedicated modem EFS partition, modem EFS provisioning must still be run once per handset. For onboarding OnePlus One, Xperia Z2/Z3, Galaxy S5, Mi 4, LG G3, and HTC One M8 via devices/<id>/profile.json, see MSM8974_PORTING_GUIDE.md and devices/README.md.
07. Zero-PC Multi-Carrier SIM Swapping
Stage 6A modem EFS settings use the standard ims APN and dynamic PCO (mode=0), while CarrierConfigBootstrapReceiver listens to SIM_STATE_CHANGED and CARRIER_CONFIG_CHANGED to automatically bind VoLTE to any newly inserted SIM’s subId—no PC connection is required after swapping SIMs. On Passport SQW100-1, note hardware RF supports FDD-LTE B1/B2/B3/B4/B5/B7/B8/B13/B17/B20 (China Unicom & China Telecom FDD LTE nationwide; China Mobile in FDD B3/B8 areas with automatic 2G GSM fallback in TDD-only B38-41 cells).
08. Live Call Acceptance Checklist
- Unplug the USB cable and verify Qcom32 VoLTE shows “VoLTE Stack Active & Registered”;
- Place an outgoing call in the stock Dialer: confirm clear two-way audio and verify the status bar stays on LTE / 4G;
- Receive an incoming call: confirm ringing, accurate Caller ID display (not “Unknown”), and clean hangup;
- Reboot the phone normally, wait ~25 seconds after unlock, and place another call to confirm hands-free boot recovery.
09. Full Factory Modem EFS Rollback
Click “Restore Factory Modem EFS & Uninstall” in the desktop GUI or run:
python3 cli/volte_ctl.py rollback
10. Verify SHA-256 Checksums
# Windows PowerShell:
Get-FileHash "$HOME\Downloads\qcom32-volte-1.1.0-r1-windows-x64.exe" -Algorithm SHA256
# macOS / Linux:
shasum -a 256 ~/Downloads/qcom32-volte-1.1.0-r1-portable.zip