
В сети появился бесплатный экспериментальный способ активации 5G и VoWiFi в РФ. Проект CarrierSIM, который опубликовал пользователь форума 4PDA под ником vl_w. Решение работает только на iOS 27 (рекомендуется применять только в тестовых целях на свой страх и риск).

Официально 5G в РФ доступен только на Android-смартфонах, ограничен тестовыми площадками, а сети 5G в Москве пока не дают заметных преимуществ перед LTE. Для полноценной работы 5G на iPhone в РФ требуется, чтобы Apple активировала такую возможность. Но сейчас это нельзя реализовать официально из-за ограничения деятельности американской компании в России.
Проект CarrierSIM также не меняет оператора связи, СИМ-карту или тариф. Скрипт заставляет iOS использовать для российской СИМ системный профиль венгерского Vodafone, уже встроенный в прошивку iPhone.

Операторские профили на iPhone содержат настройки, по которым iOS определяет доступные сетевые функции. В российском профиле 5G для iPhone отключён, а в профиле Vodafone Hungary необходимые параметры присутствуют. CarrierSIM считывает уникальный идентификатор СИМ-карты и создаёт привязку, из-за которой система выбирает другой готовый профиль.
Чтобы записать привязку в файловую систему iPhone, решение CarrierSIM использует открытый проект AirLift. Его автор описывает найденный в iOS 27.0 способ выйти за пределы каталога синхронизации Apple Books и записывать файлы в другие пользовательские директории. CarrierSIM приспосабливает этот механизм для работы с операторскими профилями. Фактически скрипт CarrierSIM даёт возможность iPhone перечитать профили. После этого система считает, что конкретной СИМ соответствует Vodafone Hungary,. Потом на смартфоне открываются опции связи, которые были доступны в этом профиле.

Проект CarrierSIM использует недоработку в iOS, которую Apple может исправить в одном из следующих обновлений. Причём после перезагрузки смартфона настройка сети в некоторых случаях слетает и процедуру приходится повторять. Также новый сетевой профиль включает вызовы по Wi‑Fi и кодек EVS для iPhone 14 и новее — ранее это было недоступно.
Инструкция проекта
CarrierSIM — Vodafone HU для всех SIM
Один Python-скрипт для macOS и Windows. Для каждой SIM, сообщённой телефоном, независимо от страны устанавливается привязка к Vodafone_hu по полному IMSI. Если для одной из SIM нет корректного IMSI, вся операция останавливается. Пакет берётся из /System/Library/Carrier Bundles/iPhone на самом телефоне. Его содержимое не изменяется. Меняются только ссылки по IMSI. В assets.zip находятся независимые IPCC для пересканирования.
НАЗНАЧЕНИЕ И РЕЗУЛЬТАТЫ ТЕСТОВ АВТОРА
Скрипт создан для активации VoWiFi (звонков через Wi-Fi) в России. По результатам тестов автора подмена профиля также активирует кодек EVS и открывает 5G на части диапазонов. Работа функций зависит от оператора, тарифа, сети, модели телефона и версии iOS; скрипт не проверяет фактический кодек звонка или используемый радиодиапазон.
КАК ПОДКЛЮЧИТЬ VoWiFi
-
После установки профиля откройте «Настройки → Сотовая связь → нужная SIM» и включите «Вызовы по Wi-Fi» (название пункта может отличаться).
-
Включите авиарежим.
-
Не выключая авиарежим, включите Wi-Fi и подключитесь к сети.
-
Дождитесь подключения VoWiFi — появления обозначения вызовов через Wi-Fi рядом с названием оператора, если оно отображается в вашей версии iOS.
-
После подключения VoWiFi авиарежим можно отключить. По результатам тестов автора далее VoWiFi должен подключаться автоматически, когда сеть и настройки оператора позволяют использовать звонки через Wi-Fi.
EVS
По наблюдениям автора, в штатных профилях Apple кодек EVS недоступен в России начиная с iPhone 14; также он не работал в Беларуси. После подмены профиля автор отмечает активацию EVS. Фактическое использование кодека в конкретном звонке зависит от поддержки и согласования со стороны сети.
5G / NR-ДИАПАЗОНЫ
По данным автора и предоставленной им таблице:
Беларусь — BY, MCC 257 NR: n1, n3, n7, n8, n20, n28, n38, n40. n78 недоступен. Работа n79 также не заявлена.
Россия — RU, MCC 250 NR: n1, n3, n7, n8, n20, n38, n40. n78 и n79 недоступны. n28 в предоставленном списке для РФ отсутствует.
Это список по данным автора, а не подтверждение работы каждого диапазона в полевых тестах. Фактическое подключение зависит от покрытия, настроек сети, модели, версии iOS и поддерживаемых сочетаний LTE + NR для NSA. Появление пункта 5G в настройках само по себе не подтверждает регистрацию в 5G или поддержку всех перечисленных диапазонов.
ОГРАНИЧЕНИЯ ДИАПАЗОНОВ
Подмена операторского профиля этим скриптом не обходит региональные ограничения NR-диапазонов. По данным автора, разрешения диапазонов находятся в подписанном GRI системного Default.bundle. Журналы исследованного iPhone подтверждают загрузку GRI из Default.bundle даже после смены оператора-донора. Скрипт не изменяет GRI и его подпись, поэтому смена профиля не снимает эти ограничения. Это ограничение данного способа; невозможность любых других способов обхода исследованием не установлена.
ОТОБРАЖЕНИЕ СЕТИ Отмеченный автором визуальный минус — значок «4G» вместо «LTE». Смена надписи сама по себе не меняет технологию связи и не влияет на её работу.
Исследование, разработка и тесты — Vladimir B / vlw (vlwwwwww@gmail.com).
МОДЕЛИ И iOS Ограничений по модели iPhone, плате, версии и сборке iOS нет. На непроверенной конфигурации выводится предупреждение без запрета запуска. Скрипт МОЖЕТ не работать: снятие проверки не обеспечивает совместимость AirLift или IPCC с любой iOS. Установка проверена на iPhone 17 с iOS 27.0.
Комплектные триггеры AVEA_tr, Swisscom_ch и O2_Germany версии 72.1 получены прямо с CDN Apple, из раздела iOS 27.0 официального каталога iTunes. Все три включают настройки всех перечисленных плат. Исходные IPCC не перепаковывались; контрольные суммы сверены с каталогом Apple. Проверка структуры и наличия подписей не заменяет физический тест.
Ниже справочник названий известных моделей, а не список разрешённых устройств. Неизвестная модель отображается по ProductType; отсутствие настроек платы в комплектном IPCC вызывает предупреждение, но не блокирует попытку.
-
iPhone 14: iPhone14,7 / D27AP
-
iPhone 14 Plus: iPhone14,8 / D28AP
-
iPhone 14 Pro: iPhone15,2 / D73AP
-
iPhone 14 Pro Max: iPhone15,3 / D74AP
-
iPhone 15: iPhone15,4 / D37AP
-
iPhone 15 Plus: iPhone15,5 / D38AP
-
iPhone 15 Pro: iPhone16,1 / D83AP
-
iPhone 15 Pro Max: iPhone16,2 / D84AP
-
iPhone 16 Plus: iPhone17,4 / D48AP
-
iPhone 16 Pro Max: iPhone17,2 / D94AP
-
iPhone 16: iPhone17,3 / D47AP
-
iPhone 16 Pro: iPhone17,1 / D93AP
-
iPhone 16e: iPhone17,5 / V59AP
-
iPhone 17 Pro: iPhone18,1 / V53AP
-
iPhone 17 Pro Max: iPhone18,2 / V54AP
-
iPhone Air: iPhone18,4 / D23AP
-
iPhone 17: iPhone18,3 / V57AP
-
iPhone 17e: iPhone18,5 / V159AP
-
iPhone 18 Pro Max: iPhone19,7 / V64SAP
-
iPhone 18 Pro Max (U.S.): iPhone19,3 / V64AP
-
iPhone 18 Pro: iPhone19,2 / V63AP
После записи скрипт проверяет выбор системного Vodafone_hu и подписи по журналу CommCenter. Прямое чтение /System через AFC не используется: AFC отклоняет такой путь даже при наличии нужного пакета. Результат проверяется обратным чтением и журналом. Ошибки подключения, записи или восстановления по-прежнему останавливают операцию.
БЫСТРЫЙ ЗАПУСК ДВОЙНЫМ ЩЕЛЧКОМ
macOS:
Запуск macOS.command Windows: Запуск Windows.cmd
Откроется русское меню. Установка на телефон — пункт 1, просмотр SIM — 2, проверка компьютера — 3, возврат штатных профилей — 4, восстановление после сбоя — 5. При первом запуске зависимости автоматически устанавливаются в .venv рядом со скриптом (нужен интернет).
Системный Python не изменяется. Python 3.11+ и компоненты Apple всё равно должны быть установлены заранее. Если macOS блокирует Запуск macOS.command, смотрите раздел «КАРАНТИН macOS» ниже.
Лаунчеры принимают те же флаги, например “Запуск Windows.cmd” —status или ./“Запуск macOS.command” —check. При запуске двойным щелчком после каждого действия нажмите Enter: вы вернётесь в главное меню. Для завершения выберите 0. При запуске с флагами выполняется одна команда без меню.
КАРАНТИН macOS И ПРАВА ЗАПУСКА
Скачанный ZIP и распакованные файлы могут получить метку com.apple.quarantine. Если macOS не открывает Запуск macOS.command из-за неизвестного разработчика:
-
Попробуйте открыть Запуск macOS.command один раз и закройте предупреждение.
-
Откройте «Системные настройки → Конфиденциальность и безопасность».
-
В разделе «Безопасность» найдите сообщение о заблокированном файле и нажмите «Всё равно открыть» / Open Anyway, если такая кнопка появилась. Подтвердите открытие. Название кнопки зависит от языка и версии macOS.
Если это не помогло, снимите карантин только с распакованной папки CarrierSIM, полученной из этого архива. Ниже пример для папки Downloads/CarrierSIM. Если папка лежит в другом месте или переименована, замените путь в командах. Кавычки сохраняйте, особенно если в пути есть пробелы.
Откройте Terminal и выполните:
/usr/bin/xattr -r -s -d com.apple.quarantine “$HOME/Downloads/CarrierSIM”
Команда удаляет только метку карантина у этой папки и её содержимого. Флаг -s обрабатывает сами симлинки, не переходя к их целям. Отключать Gatekeeper для всего Mac или запускать эту команду через sudo не требуется. После этого снова откройте Запуск macOS.command двойным щелчком.
Если появляется ошибка Permission denied / «Нет разрешения на выполнение»:
chmod u+x “$HOME/Downloads/CarrierSIM/Запуск macOS.command”
Либо запустите лаунчер через bash (право выполнения тогда не требуется):
bash “$HOME/Downloads/CarrierSIM/Запуск macOS.command”
Для просмотра атрибутов конкретного файла:
/usr/bin/xattr -l “$HOME/Downloads/CarrierSIM/Запуск macOS.command”
Если com.apple.quarantine отсутствует, дело не в карантине.
Сообщение «No such xattr: com.apple.quarantine» означает, что этой метки уже нет. «No such file» означает неверный путь: найдите распакованную папку в Finder. При «Operation not permitted» перенесите папку в доступный вам каталог, например Downloads, и повторите с правильным путём; не добавляйте sudo.
Если macOS сообщает именно об обнаруженном вредоносном ПО или файл неожиданно изменился, не обходите это предупреждение: скачайте архив заново. Снятие карантина не устанавливает Python или компоненты Apple. Официальная инструкция Apple по разрешению открытия: https://support.apple.com/102445
ПОДГОТОВКА
-
Распакуйте весь архив в доступную для записи папку.
-
Установите Python 3.11 или новее (на Windows — x64).
-
Windows: нужны службы и DLL Apple из настольного iTunes x64. Apple Devices / Microsoft Store автоматически не поддерживаются. На macOS используются системные библиотеки Apple, компилятор не нужен.
-
При запуске через Start зависимости установятся автоматически. Для ручного запуска один раз выполните из этой папки: macOS: python3 -m pip install -r requirements.txt Windows: py -m pip install -r requirements.txt Если Python требует виртуальное окружение, сначала создайте и активируйте его.
-
Подключите iPhone кабелем, включите нужные линии, разблокируйте, подтвердите доверие компьютеру. Завершите синхронизацию Finder/iTunes.
ЗАПУСК (на Windows замените python3 на py) python3 carrier.py —check
Проверить файлы и библиотеки, без телефона. python3 carrier.py —status Прочитать SIM и показать план, без записи. python3 carrier.py
Привязать Vodafone HU ко всем найденным SIM. python3 carrier.py —help
Все флаги с описанием на русском.
При нескольких телефонах добавьте —udid ID. Используется только USB. Скрипт не скачивает пакеты или DLL; интернет нужен для установки зависимостей. IMSI не выводится в консоль. В локальных копиях и журналах могут быть идентификаторы SIM и телефона: не публикуйте папку runs.
КОПИИ И ВОССТАНОВЛЕНИЕ
Каждая операция сохраняется в runs/ДАТА-ID. –restore (без пути) или пункт 4 меню удаляет все корневые ссылки с именем из 15 цифр — IMSI. Обычные ссылки операторов, содержимое пакетов и другие файлы сохраняются. После удаления выполняются обратное чтение и пересканирование. Показываются реально выбранные iOS пакеты и результат проверки их подписей. Это отключение подмены по IMSI, а не сброс всех настроек телефона.
–recover (без пути) или пункт 5 находит незавершённый этап для этого iPhone в папке runs. Если этапов несколько, скрипт останавливается для разбора, а не выбирает произвольный. Обычно адреса папок вводить не нужно.
Для ручного возврата к конкретной копии оставлен дополнительный флаг –restore-backup “runs/ДАТА-ID”. Копия сделана после установки триггера, и сам триггер остаётся в каталоге. Также можно явно указать —recover “ЭТАП”. Не удаляйте runs до окончания установки. При временном обрыве скрипт сначала восстанавливает незавершённый этап и только затем повторяет установку. Если восстановление не удалось, новая запись отменяется: используйте —recover.
Незавершённые этапы от прошлых запусков блокируют новую установку. Если сбой случился только при rescan, каталог уже записан: смотрите error.json. Не запускайте несколько копий скрипта одновременно.
Windows с нестандартной установкой Apple: py carrier.py —check —apple-dir “C:путьMobile Device Support” —apple-dir “C:путьApple Application Support”
Указывайте папки библиотек одной установленной версии Apple, не случайные DLL.
ПРОВЕРКА РЕЗУЛЬТАТА
Скрипт читает записанный каталог обратно, запускает пересканирование и ищет выбранные пакеты и результат проверки подписей в журнале CommCenter. Код выхода 0 — операция завершена; 1 — ошибка; 2 — каталог записан, но выбор нужного пакета не подтверждён журналом. Установка пакета не подтверждает работу n78, других частот или 5G. После установки включите авиарежим на 15 секунд и проверьте связь, звонки и интернет. Каталог CountryBundles не изменяется. Однако iOS может сама выбрать другую страну и пакет обслуживающей сети вслед за операторским пакетом.
ПРОВЕРЕНО
Локальные тесты выбора SIM, таблицы моделей, разрешения системных ссылок, сохранности файлов, восстановления и остановки перед записью; загрузка AirTraffic/CoreFoundation на macOS Apple Silicon. Полный цикл Python-транспортом и системными ссылками проверен на подключённом iPhone 17 / 27.0 (24A437): обе SIM выбрали Vodafone_hu, подписи приняты. Физический запуск на остальных моделях и Windows ещё не проверен. Это экспериментальная версия, а не гарантия совместимости с любым компьютером или будущей iOS.
Целевые пакеты: подписанные Apple файлы в установленной iOS телефона. IPCC-триггеры iOS 27.0 / 72.1: AVEA_tr: https://updates.cdn-apple.com/20260914/carrierbundles/140-93457/2A35FABC-3831-479D-9128-B57AD2C94A2D/AVEA_tr_iPhone.ipcc
SHA256 bb6bf489f93da2d3ef9f8a69ce819d6b90588af8177116b7ff2c8233811c7cac Swisscom_ch: https://updates.cdn-apple.com/20260914/carrierbundles/142-02578/9860B1D5-0761-4E45-A9C6-2161EDA569AD/Swisscom_ch_iPhone.ipcc
SHA256 2fe320c72e85853942ba1073d80f219cdee211a0423f5d980978a492662a999f Каталог: https://itunes.apple.com/WebObjects/MZStore.woa/wa/com.apple.jingle.appserver.client.MZITunesClientCheck/version/
Таблица устройств: https://api.ipsw.me/v4/devices?type=ipsw (2026-09-27).
iPhone 18 Pro: https://www.apple.com/iphone-18-pro/specs/
Протокол переноса основан на AirLift (0xjohnnydev/airlift, c75b3ea), лицензия MIT приложена.
Третий триггер — O2_Germany 72.1: https://updates.cdn-apple.com/20260914/carrierbundles/142-17747/8DA66AA2-999A-4D68-B89B-18312F54884D/O2_Germany_iPhone.ipcc
SHA256 5f8166b3e33d14230273b85320795f1eb1f29214d2c0594056d0b0e448c029f1 Он нужен, если две SIM одновременно пересекаются с AVEA и Swisscom.
Выбранный триггер не должен совпадать ни с одной из обнаруженных SIM.
ОЖИДАНИЕ И ПОВТОРНЫЕ ПОПЫТКИ
По умолчанию скрипт ждёт подключения и готовности iPhone до 180 секунд. После выбора устройства повторное подключение допускается только к нему.
Временные сбои связи: до 3 попыток, с восстановлением незавершённой операции перед повтором.
Постоянные ошибки (модель, подписи, повреждённая копия) не запускают слепой повтор. Числа можно изменить: —attempts 5 —wait-seconds 300.
После строки «Копии и журнал» установка ещё идёт. Дождитесь всех четырёх этапов и сообщения «Готово» с подтверждением профиля для SIM 1 / SIM 2.
Проверка проекта на VirusTotal
Источник: habr.com