mrkeyoor.com_
Fri 16 Oct 18:51 UTC
Dev Toolsevaluationupdated 16 Oct 2026

CarrierSIM review

CarrierSIM changes which built-in carrier bundle an iPhone uses for a SIM, aiming to enable Wi-Fi calling and related cellular features in Russia and Belarus. Its documentation is primarily Russian, and no English guide is provided in the repository.

Verdict

Our CarrierSIM environment installed in 19 seconds, but its tests stopped on a UID 1000 username lookup, and v7 documents a blocked write method from iOS 27.2 beta 3 onward. Consider it only for a specifically compatible phone and carrier combination after reading the Russian recovery instructions. Our sandbox provides no evidence of a successful profile change on hardware.

We ran it

Lab card: what happened when we ran CarrierSIMScreenshot of CarrierSIM (github.com/ios-bundles/CarrierSIM)
Install✓ · 19s124 packages · 307 MB
Build✓ · 1s
Tests✗ · 6sran, no count parsed
Known vulns0(pip-audit)
Repo30 files~5,822 lines of source · 0.7 MB · 4 CI workflows · tests dir

Answers from our run

Does CarrierSIM build from source?

Dependencies installed in 19 seconds (124 packages), and the build succeeded in 1 seconds. We cloned commit feb9e2f into a clean Debian container with 3 CPUs and no project-specific setup.

Do CarrierSIM's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does CarrierSIM have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use CarrierSIM?

Users on iOS 27.2 beta 3 or later expecting this write method to work: v7 documents Apple blocking the required file movement.

What are the alternatives to CarrierSIM?

AirLift, pymobiledevice3. Our CarrierSIM environment installed in 19 seconds, but its tests stopped on a UID 1000 username lookup, and v7 documents a blocked write method from iOS 27.

Setup2/5Device pairing, host services, and a failed test initialization
Docs4/5Detailed Russian compatibility and recovery guides; no English guide
Community3/5October release and continuing device reports in issues
Maturity2/5Explicit experimental status and an iOS write-method block

Who it’s for

Experienced iPhone users who can read the Russian compatibility and recovery instructions.
Carrier researchers comparing bundle settings with observed phone behavior.
Developers investigating device transport with a spare compatible phone and local access.

Who it’s NOT for

Users on iOS 27.2 beta 3 or later expecting this write method to work: v7 documents Apple blocking the required file movement.
Cellular iPad users seeking verified installation: the README says device installation is unverified; Wi-Fi-only iPads lack the modem.
Anyone expecting a profile change to preserve all network settings: the README warns about donor APNs and activation behavior.
English-only operators who need an included English recovery guide: the available guides are Russian.

Setup reality

Our run at commit feb9e2f installed 124 packages in 19 seconds and used 307 MB. The build passed in 1 second. Tests failed with exit 3 after 6 seconds: xonsh initialization hit a username lookup KeyError for UID 1000. Pip-audit reported 0 known vulnerabilities.

The source path needs Python 3.11 or newer, a trusted phone connection, and platform-specific device support. Linux requires usbmuxd, and Windows requires Apple device services and the documented iTunes runtime. Initial pairing needs USB and an unlocked phone.

The iOS compatibility table is decisive: v7 documents a blocked write method from iOS 27.2 beta 3 onward. Wireless use adds pairing and network-permission requirements, while guides remain Russian.

CarrierSIM changes the bundle selected for your SIM

CarrierSIM associates an iPhone's SIM identity with a carrier bundle already present on the device. The project targets Wi-Fi calling in Russia and Belarus, with possible changes to EVS voice coding and some cellular bands. Its README and technical guide are in Russian, and the repository doesn't provide an English guide. This is a narrow device-configuration tool for someone prepared to investigate their exact carrier and iOS combination.

The default mapping uses Vodafone_hu, with a separate Vodafone_ro entry for MTS Russia in bundle.yaml. The script changes links in the user carrier directory rather than editing Apple's signed system bundles. That's a useful distinction, because the available settings still depend on the donor bundle and the network. Our 307 MB Python environment cannot establish whether a particular operator will register Wi-Fi calls or preserve every feature of the original profile.

What happened when we ran it

Our CarrierSIM install succeeded in 19 seconds, adding 124 packages and occupying 307 MB, and the build step passed in 1 second. We ran commit feb9e2f on October 15, 2026, in a fresh Debian container with Python 3.12, 3 CPUs, 8 GB of RAM, and no secrets or elevated privileges. Pip-audit reported 0 known vulnerabilities. These results cover the source environment, without establishing a successful operation on a phone.

The test command failed with exit code 3 after 6 seconds. Its tail shows an internal error while xonsh initializes prompt fields: pwd.getpwuid(os.getuid()).pw_name raises a KeyError because UID 1000 isn't found. The visible failure is a username lookup during initialization. The tail doesn't provide a count of completed tests or establish a defect in carrier-profile writing. It also doesn't justify silently treating the suite as passed.

Our scan found 4 CI workflow files and a tests directory, with no Dockerfile. Those files show that upstream has automated-check infrastructure, but our full test command still failed. Neither the successful build nor the audit measures recovery after an interrupted device operation. If that behavior matters to your deployment, you'll need evidence from the relevant phone and operating-system combination in addition to a working Python environment.

iOS 27.2 beta 3 closes the documented write method

The v7 release, published October 7, says iOS 27.2 beta 3 blocks the AirTraffic file movement used by CarrierSIM. The README distinguishes that change from earlier beta builds and says an existing installed profile remains after an update. It also says installing, changing, or removing the profile through this method is blocked on the affected build. Read that compatibility boundary before choosing a release archive.

The same documentation says resetting network settings won't remove the profile. Its recovery instructions therefore deserve attention before you alter a phone you rely on. Cellular iPads are another boundary: the README says installation hasn't been verified on a device, while Wi-Fi-only models lack the required modem. A cross-platform desktop launcher doesn't turn those device-specific limitations into general iPhone or iPad support.

Linux needs usbmuxd, and Windows needs Apple's runtime

Python 3.11 or newer is the source requirement, with 3.12 recommended. Linux needs the system usbmuxd service. Windows needs Apple's device services and the documented iTunes runtime, while the README cautions that Microsoft Store and Apple Devices arrangements may not fit. The ready-made archives remove the separate Python requirement, but they don't remove those host dependencies. The macOS archives are unsigned, which also creates an explicit launch step.

The initial phone connection requires USB, an unlocked device, and the Trust prompt. Wireless operation needs an existing pairing and a local network that permits Bonjour discovery. On macOS, AirTraffic additionally needs local-network permission for the terminal or application. These requirements explain why the 19-second dependency install is only a small part of setup. A headless remote shell isn't equivalent to the documented local interactive workflow.

A donor profile can alter data and activation behavior

The README warns that changing a bundle can introduce the donor carrier's APN, affecting mobile data or MMS. It also describes bundles whose activation number or roaming preferences may be unsuitable for your SIM. The profile-selection instructions expose those differences rather than claiming that one choice works everywhere. I'd inspect the read-only status and proposed mapping before considering any write, then retain the session's recovery files.

Those recovery files need care too. The v7 notes describe masking phone identifiers in logs, while the README explicitly says ZIP backups are not anonymized and can contain IMSI information. A sanitized report and an entire run directory aren't interchangeable attachments. Our 0-known-vulnerability audit says nothing about disclosure through an archive you upload yourself. That is a documented workflow issue, separate from package advisories or the sandbox's test initialization failure.

October releases show maintenance without universal compatibility

GitHub recorded a last push and v7 release on October 7, 2026, with 252 stars and 7 open issues and PRs combined. Issue activity continued afterward, including a closed script report updated October 14. That supports a finding of current maintenance, while the explicit iOS block still limits adoption. For developers investigating the transport, AirLift is a protocol reference; pymobiledevice3 is a broader device-interaction alternative. Neither promises CarrierSIM's ready-made carrier mapping workflow.

Alternatives

ProjectWhat it isPick it when
AirLift gh↗The device-file-transfer project cited as the basis for CarrierSIM’s method.pick this instead when studying the transfer mechanism matters more than a carrier-profile menu.
pymobiledevice3A Python toolkit for communicating with Apple mobile devices.pick this instead when you need general device interaction or diagnostics rather than CarrierSIM’s mapping workflow.

What people are saying

  1. [velocity-scout] ios-bundles/CarrierSIM

Sources

  1. Russian README and compatibility table
  2. v7 release and iOS write-method block
  3. Technical guide
  4. Recent script report

More dev tools reviews

compose-samples · librepods · sqlmap · coucou · world-execute-me-dsh-pv · mcp-extensions · the whole board →