AvenCores
open-antigravity-patcher
Python

🔑 Патчер Antigravity для снятия региональных ограничений 🔓

Last updated Aug 9, 2026
772
Stars
32
Forks
1
Issues
+10
Stars/day
Attention Score
64
Language breakdown
Python 100.0%
Files click to expand
README

YouTube Telegram VK Dzen

🔑 Open AG Patcher

Python GPL-3.0 License Latest release GitHub stars GitHub forks GitHub Watchers Downloads GitHub pull requests GitHub issues

Опенсорс патчер для Antigravity 2.0, Antigravity IDE и Antigravity CLI: снимает регионные ограничения без VPN и смены региона аккаунта Google. Опенсурс аналог утилиты Antigravity IDE в России без VPN и смены региона аккаунта Google.

maxresdefault

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

maxresdefault

Смотреть на YouTube

Смотреть на Dzen

Смотреть в VK Video

Смотреть в Telegram

⚠️ Ошибка 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-ошибок и способов их диагностики рекомендуем ознакомиться с данным руководством:

🌟 Возможности

  • Автоматический поиск установленного 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.
  • Запустите патчер от имени администратора (скрипт сам запросит повышение прав при необходимости).
  • В меню выберите нужное действие:
| Пункт меню | Описание | |---|---| | PATCH | | | 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.isGoogleInternalresetIsTierGCPTos(),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).
  • Автоматический поиск по стандартным путям:
- Windows: - %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.js
  • resources/app/main.js
  • out/main.js (macOS)
  • main.js (если путь указан напрямую)
На macOS скрипт также принимает путь к .app-бандлу напрямую — Contents/Resources/app/out/main.js ресолвится автоматически.

Поиск Antigravity CLI (agy)

Бинарь agy (agy.exe на Windows) ищется location-agnostic — по PATH и стандартным каталогам, без хардкодных путей/версий:

  • Аргумент командной строки или TOOLS → 93 (путь к файлу agy/agy.exe или к папке).
  • PATH (shutil.which("agy")).
  • Стандартные каталоги:
- Windows: %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 (для сравнения версий)
  • ОС:
- Windows — полная поддержка автопоиска через реестр и UAC. - Linux — автопоиск в /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

🛠️ Сборка

Для сборки исполняемых файлов рекомендуется использовать виртуальное окружение:

  • Создание и активация виртуального окружения:
* Windows:
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:
* Windows:
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

© 2026 GitRepoTrend · AvenCores/open-antigravity-patcher · Updated daily from GitHub