Complete user guide · v0.3.3-r5

From download to real-call verification

Complete preparation, connection, preflight checks, installation, and call tests in order. “Registration passed” does not mean calls work: use the system dialer to test incoming and outgoing calls, and confirm clear audio in both directions.

A few terms: root means administrator access to the phone; preflight means checks before installation; IMS registration means connecting to your carrier’s calling service. The English interface shown on this website previews the current source; older release packages may still display Chinese.

The current public release is v0.3.3-r5. Verify its SHA-256 after downloading. The matching checksum file is also on the release page.

01 · Before you begin

Preparation and risks

Open Settings → About on your phone and record its model, hardware variant, and full OS version. The name “Q10,” “Classic,” or “Passport” alone does not establish compatibility.

  • Phone and OS: The installer requires BlackBerry 10 OS 10.3.3.3216, QNX ARM32, and SHA-256 hashes for all 4 native files that exactly match the published manifest. It stops if the OS or files do not match; configuration changes cannot bypass this.
  • SIM and carrier: Use a valid USIM with carrier-provisioned VoLTE on your plan and working 4G data. The current USIM implementation does not support ISIM. First try the same SIM in a phone with working VoLTE and confirm calls do not fall back to 2G / 3G.
  • Connection materials: Use a reliable USB data cable. A rooted phone also needs working Root SSH for that phone, your own login private key, and a trusted host key. Do not borrow a shared private key.
  • Computer: The Windows package targets Windows 10 / 11 x64; packaging and launch verification were performed on Windows 11 x64. The macOS package is Universal. Neither app requires ordinary users to install Python separately.
  • Backup and storage: Back up the whole phone. Only initial preparation for an unrooted Q10 needs internet access or precached, pinned materials, plus about 15 GB of free space. Routine preflight checks and installation do not redownload Root materials.
  • Expectations: This is experimental software. Long calls, long-term standby, other models and carriers, roaming, cell handovers, and emergency calls have not been fully verified. One successful test is not a general guarantee.
Current compatibility scope
Device / combination Current status
Q10 SQN100-3 / 10.3.3.3216 / China Unicom Beijing 460-01 / USIM without ISIM Real calls and a normal reboot have been recorded on one device. All native-file hash, LTE, APN, and other checks still apply.
Other Q10 variants, Classic (Q20), and untested carrier configurations Explicitly enable experimental trials and pass every technical check before continuing. Verify calls on each device, disable automatic startup, and start the service manually.
Passport (Q30) The restore strategy is not yet verified. Automatic installation, updates, startup, and restoration are blocked for now. Preflight checks and report export are available; trial mode cannot bypass the restriction.
Initial Root flashing wipes all phone data. Back up first and keep stock recovery materials matching your model. If the phone is already rooted but its connection files are lost, restore the connection rather than reflashing to fix key issues. Never flash this project's Q10 Root image onto a Q20 or Q30. Initial flashing is still experimental and has not completed an actual flash verification on an unrooted phone.

02 · Download and launch

Launch on Windows / macOS

Windows

  1. Download the current bb10-volte-0.3.3-r5-windows-x64.exe and its matching .exe.sha256 file from the release.
  2. Follow the SHA-256 verification steps below before opening the EXE. Python, Tcl/Tk, SSH/SCP, carrier templates, and phone-side payloads are included.
  3. This is a single-file portable app. It extracts into the system temporary directory at launch and cleans up after a normal exit. Launching and everyday use do not require administrator rights; first-time USB driver installation shows a separate Windows UAC prompt.

Signing status: The current Windows EXE has no Authenticode signature, so Windows may show “Unknown publisher.” Download only from the project's releases and confirm the complete SHA-256 matches. Do not run it if verification fails.

macOS

  1. Download the current bb10-volte-0.3.3-r5-macos-universal.dmg and matching .dmg.sha256 file, then verify SHA-256 first.
  2. Open the DMG, drag bb10-volte.app into Applications, and launch it from Applications. No separate Python, Tk, or OpenSSH installation is needed; the app uses the SSH/SCP included with macOS.
  3. Connect and unlock the phone using a USB data cable, and allow the accessory connection when prompted by your Mac. If USB networking is unavailable, check “Connect to Mac” under Settings → Storage and Access → USB Connections on the phone.

Signing and verification scope: The current Mac package is Universal, signed, and notarized. “Universal” means it contains Apple Silicon and Intel architectures, not that every Mac or Intel model has been tested on hardware. Intel has only passed package architecture inspection; no Intel hardware result is available.

Initial Root support can differ between releases. For an unrooted phone, follow the first-run documentation for your downloaded version and actual model. A new interface in later source code does not mean an older package supports it.

Once the app and phone service are prepared, they can run while the computer is offline. Initial Root or driver preparation downloads missing materials only after you explicitly enter and confirm that process. IMS registration and real calls always require the carrier network.

03 · Establish a trusted connection

Connect your phone

  1. Establish USB networking first. Connect and unlock the phone using a data cable. Charging or a visible storage drive does not mean USB networking is ready. If the status does not update after reconnecting, click to check again. Do not preinstall old BlackBerry Link software, change IP addresses arbitrarily, or weaken host-key checking.
  2. Click “Connect phone” on the main screen. The app finds and actively verifies saved personal connections; the connection profile field can be left empty. Both the old q10-root and current bb10-root aliases are recognized. Custom settings are under More → Advanced connection settings.
  3. Open “Connection help” if needed. You can select the entire folder from a previous flash so the app can identify the single set of login materials inside. Confirm their source before creating a local profile. Keep private keys in a protected personal directory; never send them to an issue or group chat.
  4. Check the connection result. Confirm the model, hardware variant, OS, Root, and existing service status. Reopening the app only rechecks the last successfully connected phone; it does not automatically install or flash anything. Development mode, SSH, Root, and IMS are separate layers. With valid Root SSH, development mode does not need to stay enabled.

Choose a recovery method for your phone's current state

  • Rooted, with your own connection files: Import your own ssh_config and ensure its referenced login private key and trusted known_hosts exist. Absolute Windows paths cannot be reused unchanged on a Mac; use the app's connection-recovery process to recreate the required setup.
  • Rooted, without the old computer's files: Use an existing, working Root terminal on the phone to authorize this computer independently. Follow the exact numbered steps shown by the app to transfer the public script and results, and enter PAIR only after your personal confirmation. This persistently appends an SSH public key on the phone. The private key always stays on the computer.
  • No materials and no working Root terminal: A direct connection is not possible. A connection failure alone does not prove the phone is unrooted. Check Root and SSH first; do not reflash as a speculative fix.
  • Host fingerprint mismatch: Check the trusted materials originally used for that phone. Do not disable strict host checking or assume a changed fingerprint means a damaged key.

Windows first-time preparation: only for a confirmed unrooted Q10

  1. Open first-time preparation in Connect phone / Connection help. Check USB networking. If Windows drivers are missing, the wizard downloads and verifies pinned materials, then installs through UAC after your confirmation.
  2. Open “Initial Root,” check that the actual variant is SQN100-1 through SQN100-5, and reconfirm your backup and about 15 GB of free space.
  3. Click “Automatically prepare Root image.” The app downloads and verifies pinned tools and Q10 firmware, then generates personal keys and an image unique to this phone. Preparing the image does not flash the phone.
  4. Start flashing only after reconfirming the backup and actual model and explicitly agreeing to erase the data. If an unknown exit, interruption, or undocumented error occurs, stop immediately and preserve the current state. Do not retry blindly.
  5. Complete the required setup after first boot and activate Root using the original Root method (which may involve opening BlackBerry World once). Then return to the app and verify effective UID 0. Successful Root does not mean VoLTE or calls have passed.

Q20 / Q30 require firmware and Root methods matching their own model. No Q10 image can substitute for this requirement. Automatic VoLTE operations on Passport also remain blocked.

04 · Check before writing

Choose a profile, run preflight, and install

  1. Choose a profile matching your actual carrier. Check MCC/MNC, data and IMS APNs, IP type, and domain names. Custom parameters change installation conditions, so rerun preflight after any changes. Untested device or carrier combinations also require explicit experimental-trial consent, automatic startup disabled, and manual startup instead.
  2. Run preflight and read every item requiring action. The app checks the model, OS, Root, ARM32, hashes of 4 native files, SIM type, actual MCC/MNC, LTE, data APN, factory configuration, existing service, and pre-install state. Collapsing passed details does not skip any checks.
  3. Resolve blockers first. If the SIM, Root, LTE, or data network is not ready, fix it and retry. Identity conflicts, a different OS, mismatched native-file hashes, ISIM, or identity formats needing additional adaptation block installation. Do not edit hashes, fabricate reports, or treat trial mode as a bypass.
  4. Restore the old service before updating. A running existing service may pass compatibility checks but fail the pre-install state check. End all calls, complete More → Disable and restore, then rerun preflight.

Preflight uploads check modules and configuration requests to a random temporary directory, grants execution permission only to scripts that need it, and cleans up afterward. It does not install the service or rewrite call settings. A disconnection may leave temporary directories behind; check status after reconnecting.

Understanding preflight results
Result Meaning
Meets current compatibility requirements Technical conditions match. This does not prove the carrier has provisioned IMS for this SIM or that calls work.
Some conditions are not ready Resolve the SIM, Root, LTE, data network, or existing service state, then check again.
Untested combination · Experimental trial available Continue only with trial mode enabled and every technical condition passed. Each device still needs independent call verification.
Adaptation needed / Critical technical check failed Stop installation and export a redacted report for compatibility analysis. Trial mode cannot bypass this result.

Confirm and run the fixed installation sequence

After preflight passes, confirm your backup, carrier-provisioned VoLTE for this SIM, and that no call is in progress. Then click “Install and verify.” If a startable service already exists, choose “Start and verify” as shown in the app. For an update, restore the old service first as described above.

The fixed sequence is: verify the pinned manifest → connect and upload → rerun the latest computer-side preflight → rerun preflight on the phone → write the pinned version → read back every file → start → observe registration. The default registration observation window is 180 seconds. Stay connected; do not swap SIMs, make calls, or run another installation tool at the same time. The first start may briefly reload the radio network.

“IMS registration passed” does not mean call verification is complete. The tool does not dial automatically. An observation timeout only means “Registration pending confirmation”; check status later instead of reinstalling repeatedly in the hope it will work. You must complete the real-call checklist in the next section.

05 · Real calls are the standard

Verify real calls

Use the BB10 system dialer for all tests, with another phone to help. Record each result. If any item fails, do not claim that this device has passed call verification.

  1. Wait for IMS registration to pass. If confirmation is still pending, check status again later instead of immediately reinstalling.
  2. Test outgoing and incoming calls. Call from the BB10, then call it from the other phone and answer. Confirm both parties can hear each other clearly and continuously; a connected call alone is not enough.
  3. Confirm 4G throughout. Observe network status at call start, during the call, and after it ends, not only before dialing. A fallback to 2G / 3G during a call fails this check.
  4. Repeat with USB disconnected. End the call and disconnect the computer. Repeat incoming and outgoing calls, two-way audio, and continuous 4G checks to confirm the service does not depend on a connected computer.
  5. Reboot normally from the phone's power menu. Wait for BB10, Root, and IMS to become ready in that order. The home screen, 4G, or a Root success message is not enough: wait for IMS registration, then repeat calls in both directions and the 4G checks.
  6. Keep item-by-item results. Record the project version, phone variant, OS, carrier, whether USB was disconnected, and whether the phone was rebooted. One short call does not verify long calls or long-term stability.
In a normal-reboot record from one China Unicom Beijing Q10 on 2026-10-28, system startup to IMS registration took about 3 minutes 48 seconds: BB10 and Root took about 3 minutes, followed by about 45 seconds for IMS registration. This is a single-device reference, not a promised wait time for every phone. The 45 seconds is not the whole phone's boot time.

06 · When disabling or updating

Disable and restore

  1. End all calls, keep the phone connected, and open More → Disable and restore.
  2. Wait for completion. The process disables this project's automatic startup, stops its service, and reads back the original voice policy and cleanup state.
  3. Check status or run preflight again to confirm the original policy and pre-install baseline are restored. To update, rerun preflight after restoration, then follow the new version's process.

Restoration affects only configuration owned by this project. It does not remove Root or restore the whole phone's firmware. External modifications or configuration-ownership conflicts stop the process; do not force an overwrite. Automatic restoration, installation, updates, and startup on Passport (Q30) remain blocked.

Do not blindly retry an interrupted installation or flash. Rerun preflight, check status, and preserve install-transaction.json, incomplete directories, and the flashing state. Do not delete recovery records, overwrite an unknown state, or reflash. The current version cannot automatically repair every possible interruption point; contact the maintainer for help using private records.

07 · Before running

SHA-256 verification commands

Download the package and matching .sha256 file from the same release. These commands assume the package is in your user's Downloads folder. If it is elsewhere, replace the path with its actual full path.

Windows PowerShell
Get-FileHash "$HOME\Downloads\bb10-volte-0.3.3-r5-windows-x64.exe" -Algorithm SHA256
macOS Terminal
shasum -a 256 "$HOME/Downloads/bb10-volte-0.3.3-r5-macos-universal.dmg"

The command outputs a 64-character hexadecimal digest. It must match every character of the SHA-256 in the release's matching checksum file (hexadecimal letter case does not matter). Do not compare only the first few characters. If it differs, the files came from different sources, or you cannot confirm the match, do not run the package. Delete it and download it again from the release.

08 · Preserve evidence and seek help safely

Troubleshooting and redacted reports

Cannot connect to the phone

Check unlocking, data cable, USB mode, USB networking, SSH, and Root in order. Charging alone proves nothing about the connection. On Mac, check “Connect to Mac”; on Windows, let the first-time wizard handle drivers. If a host fingerprint changes, verify trusted materials first rather than disabling security checks.

Preflight fails or mobile data does not work

Read the failed item's reason and advice. Check the SIM, LTE, actual MCC/MNC, data APN, and factory configuration. If mobile data does not work normally, do not bypass installation requirements. A non-default configuration is not automatically a damaged one.

Registration pending confirmation

Preserve the current state, check status later, and confirm carrier service. The end of the default 180-second observation window does not mean installation automatically succeeded and must not trigger repeated reinstallation. This device passes only when every real-call checklist item passes.

Installation interrupted or state unknown

Keep installation records and error messages, rerun preflight, check status, then contact the maintainer. Do not delete transaction records, force an overwrite, or Root the phone again. Do not publicly upload private installation records.

Export and inspect a redacted JSON report

  1. Connect the phone and run a fresh check so the report reflects its current state. Open More → Export check report and save the JSON to a location you choose. The tool does not upload reports automatically.
  2. The report keeps only allowlisted checks, results, and necessary model, OS, MCC/MNC, and similar information. It excludes full IMSI, IMEI, ICCID, PIN, phone numbers, SSH keys, host addresses, raw configuration contents, and raw SIP logs.
  3. Open and inspect it yourself before sharing. Check custom names and additional text for personal information. Do not additionally upload the private directory, private keys, ssh_config, known_hosts, private installation records, or raw communications logs.
  4. When submitting a report to the project's GitHub Issues, include v0.3.3-r5, Windows EXE or macOS DMG, computer OS, phone model and variant, full BB10 OS version, carrier and region of use, roaming or number-porting status, failed stage, and error message. For working results, also report each incoming-call, outgoing-call, two-way-audio, continuous-4G, USB-disconnected, and post-reboot result.

Report working or non-working results on GitHub Issues

09 · Read the source documentation

Official documentation

This page covers the current public release, v0.3.3-r5. The repository's main branch may contain later changes. Use the matching release's attachments and notes to determine what your downloaded package supports.