🔑 Патчер Antigravity для снятия региональных ограничений 🔓
🔑 Open AG Patcher
Опенсорс патчер для Antigravity 2.0, Antigravity IDE и Antigravity CLI: снимает регионные ограничения без VPN и смены региона аккаунта Google. Опенсурс аналог утилиты Antigravity IDE в России без VPN и смены региона аккаунта Google.

🎦 Видео гайд по установке и решению проблем

⚠️ Ошибка HTTP 500 Internal Server Error
Если при запросе в Antigravity IDE появляется ошибка HTTP 500 Internal Server Error, то ничего не поделать, меняйте аккаунт (желательно на регион, где Antigravity IDE официально работает или куплена платная подписка), платная утилита также её не решала.Пример ошибки
Trajectory ID: 2669b09c-1d11-4620-9bfa-6ad1f0e26a88 Error: HTTP 500 Internal Server Error Sherlog: TraceID: 0xd9ada64bcca3260c Headers: {"Alt-Svc":["h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"],"Content-Length":["109"],"Content-Type":["text/event-stream"],"Date":["Sat, 14 Mar 2026 13:51:24 GMT"],"Server":["ESF"],"Server-Timing":["gfet4t7; dur=423"],"Vary":["Origin","X-Origin","Referer"],"X-Cloudaicompanion-Trace-Id":["d9ada64bcca3260c"],"X-Content-Type-Options":["nosniff"],"X-Frame-Options":["SAMEORIGIN"],"X-Xss-Protection":["0"]}
{ "error": { "code": 500, "message": "Internal error encountered.", "status": "INTERNAL" } }
⚠️ Ошибка HTTP 400 Bad Request
Если вы получаете ошибкуHTTP 400 Bad Request с сообщением User location is not supported for the API use, это означает, что Google определил ваше местоположение как неподдерживаемое.
Важно: использование VPN, прокси или других способов обхода ограничений может детектироваться Google и приводить к этой ошибке. Google активно борется с методами обхода, и если ваш IP-адрес или другие параметры сессии вызывают подозрение, доступ может быть заблокирован.
Решение:
- Примените патч (PATCH →
1: Antigravity IDE patch). Патчер настроит корректный обходisGoogleInternalна уровне кода. - Если патч уже применен, попробуйте сменить аккаунт Google или использовать другой VPN.
- Попробуйте использовать Xbox DNS, dns.malw.link, GeoHide (специальные DNS-серверы для обхода ограничений на ПК или роутере).
{ "error": { "code": 400, "message": "User location is not supported for the API use.", "status": "FAILED_PRECONDITION" } }
⚠️ Ошибка лицензии Antigravity CLI (#3501)
Если в Antigravity CLI (agy) появляется ошибка You do not have a valid license of this product, это не проблема локального патча и не экран Eligibility Check.
Эта ошибка связана с API Google и состоянием аккаунта пользователя: лицензией, доступом или проверкой прав на стороне Google. Патчер меняет только локальные файлы Antigravity/Antigravity CLI и не может выдать аккаунту лицензию или изменить ответ Google API, поэтому с этой ошибкой он не поможет.
Пример ошибки:
⚠ You do not have a valid license of this product. Please contact your administrator to request a license. If you are not an enterprise user and believe you are receiving this message as an error, please try using the latest version and logging in again. (#3501) Error ID: b2c1d9edcaac4fd5ac5766de06c2253b Trajectory ID: d3ee4302-4213-40f9-9ac5-42e83e38a5ce
📚 Дополнительная информация по ошибкам
Для более глубокого понимания типов HTTP-ошибок и способов их диагностики рекомендуем ознакомиться с данным руководством:- 5xx Server Errors: The Complete Guide — подробный разбор серверных ошибок.
🌟 Возможности
- Автоматический поиск установленного Antigravity 2.0, Antigravity IDE и Antigravity CLI (
agy) в стандартных путях и реестре Windows. - Проверка обновлений — автоматическая проверка новых версий при запуске и ручная проверка через меню (TOOLS →
7). - Патч Antigravity CLI — снятие экрана «Eligibility Check» и обход проверки eligibility в Go-бинаре
agy/agy.exeна уровне машинного кода по байтовой сигнатуре для архитектур x86-64 и ARM64 (с резервной копией и откатом). - Патч Antigravity Manager (
language_server) — снятие проверки авторизации (hasValidAuth=true) в скомпилированном бинарнике бэкенда по байтовой сигнатуре для архитектур x86-64 и ARM64 (с резервной копией и откатом). - Поддержка Linux: поиск по
/usr/share/antigravity-ide, определение версии черезdpkg,rpmиpackage.json. - Поддержка macOS: поиск
.app-бандла в/Applicationsи~/Applications, ad-hoc переподпись после измененияmain.js. - Создание резервной копии перед изменениями.
- Применение и откат патча через простое меню.
- Поддержка путей
resources/app/out/main.jsиresources/app/main.js. - Цветной вывод и попытка автоматического повышения прав (UAC на Windows, предложение
sudoна Linux). - Проверка минимальной версии Antigravity IDE (>=
2.1.1) перед применением патча. - Определение версии Antigravity IDE через реестр Windows, пакетный менеджер на Linux или
package.jsonна macOS. - Обнаружение уже применённого патча с предложением применить повторно.
🚀 Как использовать
- Закройте Antigravity IDE или Antigravity 2.0.
- Запустите патчер от имени администратора (скрипт сам запросит повышение прав при необходимости).
- В меню выберите нужное действие:
1 Antigravity IDE patch | Применить патч к main.js для Antigravity IDE (bypass region lock) |
| 2 Antigravity 2.0 patch | Применить патч к бинарному файлу language_server (Antigravity Manager) |
| 3 Antigravity CLI (agy) patch | Применить патч к бинарю agy/agy.exe (unlock agy tool) |
| RESTORE | |
| 4 Antigravity IDE | Восстановить оригинальный main.js для Antigravity IDE из бэкапа |
| 5 Antigravity 2.0 | Восстановить оригинальный language_server из бэкапа |
| 6 Antigravity CLI | Восстановить оригинальный agy/agy.exe из бэкапа |
| TOOLS | |
| 7 Check for updates | Проверить наличие новых версий на GitHub |
| 8 Open GitHub repository | Открыть страницу проекта в браузере |
| 9 Select custom path | Выбрать путь к папке приложения или файлу вручную |
| 10 About program | Показать информацию о программе и авторе |
| 0 Exit | Выйти из патчера |
Запуск из исходников:
python main.py
Запуск с указанием пути (для Antigravity IDE, Antigravity 2.0 или Antigravity CLI):
# Windows python main.py "C:\\Users\\<username>\\AppData\\Local\\Programs\\Antigravity IDE" python main.py "C:\\Users\\<username>\\AppData\\Local\\Programs\\Antigravity\\resources\\bin\\language_server.exe" python main.py "C:\\Users\\<username>\\AppData\\Local\\agy\\bin\\agy.exe"
Linux
python main.py /usr/share/antigravity-ide
python main.py /opt/Antigravity/resources/bin/language_server
python main.py /usr/local/bin/agy
macOS
python3 main.py /Applications/Antigravity\ IDE.app
python3 main.py /Applications/Antigravity.app
python3 main.py /usr/local/bin/agy
Если main.js или language_server находится рядом со скриптом, путь указывать не нужно — они будут найдены автоматически.
macOS: еслиAntigravity IDE.appлежит в/Applications, запись потребуетsudo(скрипт сам предложит перезапуск). Для установки в~/Applicationsили пользовательскую директориюsudoне нужен. После успешного патча.appавтоматически переподписывается ad-hoc подписью (codesign --force --deep --sign -) — без этого Electron с Hardened Runtime не запустится на macOS.
🍎 Использование на macOS
Поскольку готовые бинарные сборки для macOS отсутствуют в официальных релизах (доступны только для Windows и Linux), вы можете либо запускать патчер напрямую из исходного кода, либо собрать исполняемый файл самостоятельно.
Вариант 1: Запуск из исходного кода (рекомендуется)
- Создайте виртуальное окружение, активируйте его и установите необходимые зависимости:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
- Полностью закройте Antigravity 2.0 или Antigravity IDE.
- Запустите патчер, указав путь к приложению:
# Для Antigravity IDE
python3 main.py "/Applications/Antigravity IDE.app"
# Для Antigravity 2.0
python3 main.py "/Applications/Antigravity.app"
Примечание: Если приложение находится в папке /Applications, скрипт автоматически запросит повышение прав (sudo) для записи.
Вариант 2: Самостоятельная сборка бинарного файла
Если вам необходим готовый исполняемый файл, вы можете собрать его самостоятельно, следуя инструкции в разделе 🛠️ Сборка.После успешной сборки запуск скомпилированного файла выполняется через Терминал:
cd dist chmod +x OpenAGPatcher_macOS sudo ./OpenAGPatcher_macOS Если macOS блокирует запуск скомпилированного файла, снимите quarantine-атрибут: xattr -dr com.apple.quarantine OpenAGPatcher_macOS
Что выбрать в меню
Используйте:- PATCH →
1(Antigravity IDE patch) дляAntigravity IDE.app - PATCH →
2(Antigravity 2.0 patch) дляAntigravity.app(бэкенд language_server) - PATCH →
3(Antigravity CLI (agy) patch) для бинаряagy(если установлен) - RESTORE →
4,5или6для восстановления из бэкапа
Antigravity.app патчер обычно сам находит:
/Applications/Antigravity.app
Если автопоиск не нашел приложение, выберите TOOLS → 9 (Select custom path) и укажите один из путей:
/Applications/Antigravity.app
/Applications/Antigravity IDE.app
Проверить подпись
После патча.app автоматически переподписывается ad-hoc подписью. Проверить это можно следующей командой:
codesign -dv /Applications/Antigravity.app 2>&1 | grep Signature
Ожидаемый результат:
Signature=adhoc
❓ Что именно меняется
Патч для Antigravity IDE
Патчер вносит изменения в main.js для обхода проверки isGoogleInternal. Изменения обратимы через резервную копию (main.js.bak).
resetIsTierGCPTos(),this.XXX.isGoogleInternal → resetIsTierGCPTos(),true
Заменяет проверку флага isGoogleInternal после вызова resetIsTierGCPTos() в сервисе авторизации на безусловное true, активируя внутренний путь доступа Google. После применения патча автоматически очищаются папки кэша VS Code (CachedData и Code Cache/js), принуждая IDE перекомпилировать пропатченный JS-код.
Патч для Antigravity Manager (language_server)
Antigravity Manager (languageserver или languageserver.exe) — бэкенд-служба, запускаемая внутри Antigravity 2.0. По умолчанию она требует валидную проверку авторизации и лицензии на стороне Google.
Патчер вносит изменения непосредственно в скомпилированный бинарный файл language_server по байтовой сигнатуре для двух архитектур через класс MultiGate:
- x86-64 (Intel Mac / Windows / Linux x64): Находит и заменяет проверку
cmp byte ptr [rax + 8], 0наmov byte ptr [rax + 8], 1с последующимиnop(\xc6\x40\x08\x01\x90\x90). - ARM64 (Linux arm64 / Apple Silicon macOS): Находит и заменяет последовательность
ldrb w3, [x0, #8] ; tbz w3, #0, skip(с учётом одной или двух инструкций подготовки) наmov w3, #1 ; strb w3, [x0, #8](\x23\x00\x80\x52\x03\x20\x00\x39).
hasValidAuth всегда принудительно выставляется в true, снимая блокировку. Патч обратим через RESTORE → 5 восстановлением оригинального бинарника из .agybak.
Патч для Antigravity CLI (agy)
Antigravity CLI — отдельный Go-бинарь (agy.exe на Windows, agy на Linux/macOS), который показывает косметический экран «Eligibility Check» и формирует ошибку «Account ineligible» по ответу сервера. Поскольку это скомпилированный бинарь (не JS), патчинг выполняется на уровне машинного кода по уникальной байтовой сигнатуре под две архитектуры через MultiGate: x86-64 (Windows / Linux x64 / Intel Mac) и ARM64 (Windows ARM64 / Linux arm64 / Apple Silicon macOS).
Патчер применяет один гейт — внешняя проверка перед построением ошибки делает ветку ошибки недостижимой:
Gate 1 — экран «Eligibility Check»
x86-64
- Патчер сканирует бинарник в поисках уникальной сигнатуры проверки гейта:
test rax, rax ; 48 85 c0 <-- auth-результат == nil?
je eligible ; 0f 84 xx xx xx xx <-- если nil → GOOD
cmp byte ptr [rax+8], 0 ; 80 78 08 00 <-- проверка флага eligibility
jne eligible ; 0f 85 xx xx xx xx <-- если флаг != 0 → GOOD
call failure_builder ; e8 xx xx xx xx <-- BAD: построение ошибки
- Патчер заменяет
cmp byte ptr [rax+8], 0наtest rax,rax+NOP(48 85 c0 90). Так какraxздесь гарантированно не равен нулю, переходjneвсегда уводит выполнение в ветку «eligible».
ARM64
- В актуальных нативных arm64-сборках внешняя проверка перед построением ошибки выглядит как:
cbnz x1, error ; xx xx xx b5 <-- если x1 != 0 → BAD
cbz x0, eligible ; xx xx xx b4 <-- если x0 == 0 → GOOD
ldrb w1, [x0, #8] ; 01 20 40 39 <-- загрузка флага eligibility
tbnz w1, #0, eligible ; xx xx xx 37 <-- если бит 0 != 0 → GOOD
bl failure_builder ; xx xx xx 97 <-- BAD: построение ошибки
- Патчер заменяет загрузку флага
ldrb w1,[x0,#8]наmov w1,#1(21 00 80 52), поэтому существующийtbnzвсегда выбирает ветку «eligible».MultiGateавтоматически выбирает x64- или arm64-сигнатуру.
Общие шаги
- Перед записью создаётся резервная копия
agy.exe.agybak(илиagy.agybakна POSIX). Если существующий бэкап устарел (приложение автообновилось), он автоматически обновляется — stale-копии не хранятся. - На macOS после модификации бинарь переподписывается ad-hoc (как и в случае с
.app).
- Если байтовая сигнатура не найдена в бинаре (неизвестная/неподдерживаемая версия), патчер отказывается патчить и ничего не меняет — выводится «signature not found (unsupported version?)».
- Если сигнатура встречается несколько раз (Go может компилировать одну функцию в нескольких экземплярах), патчер применяет фикс ко всем вхождениям — они идентичны на уровне машинного кода.
- Откат выполняется через RESTORE →
6(Antigravity CLI) восстановлением из.agybak.
Примечание по платформам: сигнатуры для x86-64 проверены под Windows и Intel macOS, для ARM64 — под Apple Silicon macOS. Discovery ищет бинарь кроссплатформенно (PATH, scoop на Windows,/usr/local/bin,/opt/antigravity/bin,~/.local/binна POSIX). На Linux бинарьagyможет быть скомпилирован иначе, и сигнатура может не совпасть — в этом случае патч честно сообщит об этом без модификации файла.
🔍 Логика поиска файла
Патчер ищет main.js в следующем порядке:
- Аргумент командной строки (путь к директории или напрямую к
main.js). - Текущая директория (
./main.js). - Автоматический поиск по стандартным путям:
%LOCALAPPDATA%\Programs\Antigravity IDE
- Linux:
- /usr/share/antigravity-ide
- /opt/Antigravity IDE
- /opt/Antigravity IDE/resources/app/out
- macOS:
- /Applications/Antigravity IDE.app/Contents/Resources/app
- ~/Applications/Antigravity IDE.app/Contents/Resources/app
- Реестр Windows (ключ
{AA73B3E3-C6C8-45C8-B1DC-4AE56C751432}_is1вHKCUиHKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\).
resources/app/out/main.jsresources/app/main.jsout/main.js(macOS)main.js(если путь указан напрямую)
.app-бандлу напрямую — Contents/Resources/app/out/main.js ресолвится автоматически.
Поиск Antigravity CLI (agy)
Бинарь agy (agy.exe на Windows) ищется location-agnostic — по PATH и стандартным каталогам, без хардкодных путей/версий:
- Аргумент командной строки или TOOLS →
9→3(путь к файлуagy/agy.exeили к папке). PATH(shutil.which("agy")).- Стандартные каталоги:
%LOCALAPPDATA%, %PROGRAMFILES%, %PROGRAMFILES(X86)%, %ProgramData%, %APPDATA% (+ подпапки Programs), scoop (%USERPROFILE%\scoop\apps, %SCOOP%\apps). Шаблоны: agy/bin/agy.exe, agy//bin/agy.exe (scoop version-dirs), agy/agy.exe.
- Linux/macOS: /usr/local/bin, /usr/bin, /opt/antigravity/bin, /opt/antigravity, ~/.local/bin, ~/bin.
Если найдено несколько копий (например, scoop с несколькими версиями), выбирается самая свежая по mtime.
🔎 Определение версии Antigravity IDE
| Платформа | Метод определения версии | |---|---| | Windows | Реестр: DisplayVersion из ключа {AA73B3E3-...}_is1 | | Linux (deb) | dpkg-query -W antigravity-ide | | Linux (rpm) | rpm -q --queryformat %{VERSION} antigravity-ide | | Linux (portable/snap/flatpak) | package.json рядом с main.js | | macOS | package.json в Antigravity IDE.app/Contents/Resources/app/ |
Если версия не определена, патчер предлагает продолжить без проверки. Если версия ниже 2.1.1 — предупреждает и также предлагает выбор.
🔒 Проверка уже применённого патча
Перед патчингом скрипт проверяет, не был ли файл уже пропатчен, по двум признакам:
- отсутствие
if(this.X.isGoogleInternal)(паттерн заменён наif(true)) - отсутствие немодифицированных
isGoogleInternal(comma-based auth check).
🛡️ Повышение прав
- Windows: автоматический UAC-запрос через
ShellExecuteWс параметромrunas. Корректно обрабатывает пути с пробелами. - Linux: если скрипт запущен не от root, предлагает перезапуститься через
sudo(os.execvp). При отказе продолжает с предупреждением о возможных ошибках записи. При этом runtime workaround пишет вsettings.jsonисходного пользователя (SUDOUSER/SUDOUID), а не в/root/.config/.... - macOS: использует ту же posix-ветку —
sudoпредлагается, если запущено без root. Для~/Applications/Antigravity IDE.appнаsudoможно ответить «n» (директория уже доступна на запись), для/Applications/Antigravity IDE.app— согласиться. Пользовательскийsettings.jsonпри запуске черезsudoтакже берётся из home исходного пользователя, а неroot.
🍎 Особенности macOS
Переподпись .app после патча
Любое изменение файла внутри подписанного .app-бандла нарушает code signature. Electron-приложения с включённым Hardened Runtime (Antigravity IDE — одно из них) после этого не запускаются на macOS — до того, как Gatekeeper вообще покажет пользователю диалог.
Чтобы .app продолжал работать, скрипт после dopatch и dorestore автоматически выполняет:
codesign --force --deep --sign - /path/to/Antigravity\ IDE.app
xattr -dr com.apple.quarantine /path/to/Antigravity\ IDE.app
--sign - — ad-hoc подпись (без Developer ID). Этого достаточно для локального запуска приложения. Notarization не требуется.
Требуется установленный codesign — он идёт в составе Xcode Command Line Tools:
xcode-select --install
Ошибка "Operation not permitted" при патчинге
Если вы столкнулись с ошибкой [!] Backup error: [Errno 1] Operation not permitted: '/Applications/Antigravity IDE.app/Contents/Resources/app/out/main.js.bak':
- Добавьте для терминала разрешение на полный доступ к диску: Системные настройки → Конфиденциальность и безопасность → Полный доступ к диску (System Settings → Privacy & Security → Full Disk Access).
- Снимите карантин с приложения командой:
sudo xattr -rd com.apple.quarantine /path/to/Antigravity\ IDE.app
Если приложение не запускается после патча
- Убедись, что
codesignдоступен:which codesign. - Проверь, что
.appбыл переподписан:codesign -dv /Applications/Antigravity\ IDE.app 2>&1 | grep Authority— должен бытьSignature=adhoc. - Если macOS всё равно блокирует:
Системные настройки → Конфиденциальность и безопасность— внизу будет кнопка «Открыть всё равно».
⚙️ Требования
- Python 3.x
- Зависимости:
packaging(для сравнения версий) - ОС:
/usr/share/antigravity-ide, определение версии через dpkg/rpm/package.json, sudo-повышение.
- macOS — автопоиск в /Applications/Antigravity IDE.app и ~/Applications/Antigravity IDE.app, определение версии через package.json, ad-hoc переподпись через codesign (Xcode Command Line Tools).
- Минимальная версия Antigravity 2.0:
2.5.0 - Минимальная версия Antigravity IDE:
2.1.1 - Поддерживаемые версии:
2.3.0и выше для Antigravity 2.0,2.1.1и выше для IDE
🛠️ Сборка
Для сборки исполняемых файлов рекомендуется использовать виртуальное окружение:
- Создание и активация виртуального окружения:
cd source
python -m venv .venv
.venv\Scripts\activate
* Linux / macOS:
cd source
python3 -m venv .venv
source .venv/bin/activate
- Установка зависимостей:
pip install -r requirements.txt
- Сборка через PyInstaller:
pyinstaller --onefile --uac-admin --icon=icon.ico --name="OpenAGPatcher_Windows" --noupx --clean --version-file=version.txt main.py
* Linux:
pyinstaller --onefile --icon=icon.ico --name="OpenAGPatcher_Linux" --hidden-import=packaging --hidden-import=packaging.version --hidden-import=packaging.specifiers --hidden-import=packaging.requirements main.py
* macOS (Universal2):
pyinstaller --onefile --name="OpenAGPatcher_macOS" --target-arch universal2 --hidden-import=packaging --hidden-import=packaging.version --hidden-import=packaging.specifiers --hidden-import=packaging.requirements main.py
Структура проекта
source/main.py— основная точка входа в патчер (выполняет проверку прав доступа и запуск CLI).source/patcher/— основной исходный код патчера с модульной архитектурой:
constants.py — глобальные константы, регулярные выражения, версии.
- cli.py — консольный интерфейс пользователя, меню и обработка ввода.
- utils/ — системные вспомогательные утилиты (цвета консоли, права администратора, POSIX-права, хэширование файлов).
- ide/ — логика поиска и патчинга непосредственно Antigravity IDE (файлы main.js).
- agy/ — логика поиска и байт-сигнатурного патчинга бинаря Antigravity CLI (agy/agy.exe).
- manager/ — логика поиска и байт-сигнатурного патчинга бинаря Antigravity Manager (languageserver/languageserver.exe).
source/requirements.txt— зависимости для сборки и запуска.source/build.txt— примеры команд сборки под разные ОС.source/icon.ico— иконка дляexe/app.
📜 Лицензия и атрибуция
Проект распространяется под лицензией GPL-3.0. Полный текст лицензии содержится в файле LICENSE.
Часть изменений и решений в данном проекте основана на наработках репозитория eligibility-antigravity-patcher, распространяемого под лицензией MIT. Все интеграции и изменения выполнены с сохранением авторских прав и указанием первоисточника.
💰 Поддержать автора
- SBER:
2202 2050 1464 4675