Приватность Windows 11 # Приватность Windows 11 **Отключает сбор данных Microsoft. Показывает, что о вас уже собрано. Следит, чтобы обновления не вернули слежку обратно.** [![Сборка](https://github.com/N0deZ3r0/Win11Privacy/actions/workflows/build.yml/badge.svg)](https://github.com/N0deZ3r0/Win11Privacy/actions/workflows/build.yml) [![Скачать](https://img.shields.io/github/v/release/N0deZ3r0/Win11Privacy?label=%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C)](https://github.com/N0deZ3r0/Win11Privacy/releases/latest) [![Лицензия](https://img.shields.io/badge/%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F-MIT-blue)](LICENSE) ![Windows 11](https://img.shields.io/badge/Windows-10%20%7C%2011-0078D4?logo=windows) [English](README.md) · **Русский**
Обзор --- ## Чего нет у других | | | |---|---| | **Досье** | Кто и когда включал вашу камеру, микрофон и геолокацию — с длительностью и меткой «сейчас». Плюс цифровой след на диске: рекламный ID, история сетей Wi-Fi и флешек, история буфера обмена — с выборочным стиранием. | | **Рентген телеметрии** | Читает настоящие события, которые Windows собрала об этом компьютере, и показывает их сырое содержимое — тот самый JSON, что уходит в Microsoft. | | **Что о вас узнали** | Из этих событий вытаскиваются готовые факты: названия установленных программ, модель и серийные номера железа, подключённые устройства, метки, по которым вас узнают. Не «1420 событий», а что именно из них следует. | | **Хронология приватности** | События телеметрии по дням, обновления Windows, правки программы и возвраты стража — на одной оси. Видно, как система отыгрывает настройки назад после очередного обновления. | | **Проверка на деле** | Читает реальное состояние системы и считает индекс приватности, а не рисует галочки «сделано». | | **Страж** | Крупные обновления Windows тихо возвращают часть настроек — страж проверяет систему по расписанию и возвращает сбитое. | | **Слежение за датчиками** | Уведомление в тот момент, когда доступ к камере или микрофону впервые получила новая программа. | | **Монитор утечек** | Кто и куда реально отправляет данные — по журналу брандмауэра, отдельно разрешённые соединения и отклонённые попытки. | | **Машина времени** | Снимки состояния настроек и сравнение: что и когда сбилось. | | **Отзыв доступа на месте** | Увидели, что программа включала камеру, — и запрещаете ей доступ кнопкой в той же строке. | | **Удаление предустановленного** | Список приложений, которые Windows ставит без спроса, с пометкой «можно убрать». Системные компоненты в перечень не попадают. | | **Запрет выхода в сеть** | Монитор показывает, кто и куда отправляет данные, — и кнопкой в той же строке программе закрывается выход в интернет. Правило создаётся в брандмауэре Windows и снимается тем же нажатием. | | **Автозапуск под контролем** | Что стартует вместе с Windows — с ответом «зачем это здесь»: обновлятор, агент телеметрии, помощник производителя. Гасится обратимо, тем же способом, что и в диспетчере задач, и попадает в общий откат. | | **Настройка по пунктам** | Модуль раскрывается в список отдельных настроек: можно применить не всё, а выбранное. | | **Блокировка адресов** | Брандмауэр режет сами IP сбора данных — через `hosts` телеметрия уходит в обход. | | **Предпросмотр изменений** | Кнопка «Что изменится» показывает список до применения: настройка, как сейчас, как станет. | | **Возврат из копии** | Резервные копии реестра не просто складываются на диск — программа сама их находит и возвращает выбранную одним нажатием. | | **Откат одной кнопкой** | Программа ведёт журнал изменений и возвращает каждый параметр в то значение, что было до неё. Ручной импорт .reg не нужен. | | **Видно, что изменено** | Страница «Изменения» показывает каждую правку: что было, что стало и где это лежит. Любую строку можно вернуть отдельно, не откатывая остальное. | | **Считает честно** | Индекс не занижается тем, что от программы не зависит: настройки, которых нет на этой версии Windows, и параметры, которые Windows не отдаёт даже администратору, показаны отдельно и в знаменатель не идут. | | **Переносимый режим** | Положите рядом с `Win11Privacy.exe` файл `portable.txt` — и программа будет хранить всё в папке рядом с собой, а не в системе. Для флешки и чужого компьютера. | | **Убирает и за собой** | Всё, что программа накопила о вас у себя — историю датчиков, журнал, снимки — видно на «О программе» и стирается одной кнопкой. | | **Сессии трассировки ETW** | Windows запускает сборщики телеметрии при загрузке, помимо службы DiagTrack — программа выключает и их. | | **Доказательство результата** | Не «индекс 92 %», а что было до программы и что стало: сборщики, задачи, домены, события в сутки. | | **Все разрешения приложений** | 34 категории — не только камера и микрофон, но и снимки экрана, уведомления, документы, весь диск, ключи доступа и ИИ-модели Windows. Видно и тех, кто разрешение имеет, но пока не пользовался. | | **Разрешения — политикой, а не переключателями** | Контакты, календарь, звонки, почта, сведения учётной записи закрываются политикой: ни приложение, ни обновление Windows не включат их обратно. Сюда же входит возраст — новые Windows Age API без этого права приложению ничего не отдают. | | **Фоновые обращения в сеть** | Метаданные устройств, шрифты по требованию, офлайн-карты, модели дисков и речи, Teredo — то, что Windows скачивает и отправляет сама. Пункты взяты из официального списка Microsoft, только безопасные. | | **Журналы Windows в цифровом следе** | Тысячи записей о том, какие программы запускались и к чему обращались, — видны в «Досье» и стираются вместе с остальным следом. | | **Один вопрос при первом запуске** | Вместо тринадцати разделов сразу — «базовая приватность», «строгая» или «сначала посмотреть, что обо мне собрано». Мастер ничего не применяет: он отмечает набор и показывает, что будет сделано. | | **Долгую работу видно и можно остановить** | Кнопка «Прервать» в строке состояния. Чтение обрывается сразу, применение — после предупреждения; всё, что движок успел изменить, уже записано в журнал и возвращается на «Изменениях». Закрытие окна посреди работы тоже спрашивает, а не бросает движок в фоне. | | **Журнал отката пишется по ходу дела** | Раньше он сохранялся один раз в самом конце: обрыв прогона оставлял изменения в системе, а вернуть их было нечем. Теперь журнал ложится на диск после каждого модуля и не реже, чем раз в десять правок. | | **Движок лежит там, куда не пишут без прав администратора** | Скрипт запускается с полными правами, поэтому во временной папке пользователя его мог бы подменить любой процесс. Папка в ProgramData создаётся с явными правами, а перед каждым запуском файл сверяется по SHA-256 с тем, что вшито в exe. | | **Понятная ошибка вместо системного окна .NET** | Если программа спотыкается, она объясняет что случилось и пишет `crash.log`, который можно приложить к сообщению об ошибке. | | **Страж приходит сразу после обновления** | Настройки сбивает обновление Windows, а расписание могло ждать до воскресенья. Теперь у стража есть третий будильник — сама установка обновления: он проверяет систему через пять минут после неё. | | **Программа одна** | Второй запуск показывает уже открытое окно вместо второго. Два окна с правами администратора применяли бы настройки одновременно и переписывали журнал отката друг друга. | | **Видно, сколько проверок пройдено** | Проверка 244 настроек занимает до полуминуты и раньше молчала до самого конца. Теперь движок сообщает ход работы, а окно показывает «15 / 34» и название текущего раздела. | | **Журнал выполнения сохраняется в файл** | Кнопка на странице «Журнал»: по этим журналам разбираются случаи «применилось не то», и присылать снимок экрана больше не нужно. | | **Клавиатура и экранный диктор** | По разделам можно пройти табуляцией, Enter и пробел открывают выбранный, а нарисованные вручную элементы называют себя системе — раньше диктор читал пустоту. | Ещё: готовые наборы «Базовый / Строгий / Максимум», телеметрия сторонних программ (Chrome, Edge, Office, VS Code, NVIDIA, PowerShell, Visual Studio), слежка производителя ноутбука, блокировка через брандмауэр, стирание накопленного буфера телеметрии, профили и тихий запуск из командной строки (профиль помнит и отдельные пункты внутри модулей), проверка обновления по кнопке — сама программа в сеть не выходит, диагностика, светлая и тёмная темы. --- ## Переносимый режим Обычно программа держит свои данные в `C:\ProgramData\Win11Privacy`, а размер окна и язык — в `%LOCALAPPDATA%`. Если положить рядом с `Win11Privacy.exe` файл **`portable.txt`** (или один раз запустить `Win11Privacy.exe --portable`), всё переедет в папку `Win11Privacy-Data` рядом с самой программой: журнал изменений, история датчиков, снимки, резервные копии реестра и настройки окна. На чужом компьютере после себя не остаётся ничего, кроме самих изменений в системе — которые по-прежнему можно откатить. --- ## Windows 10 Программа работает и на Windows 10, но 12 настроек из набора относятся к тому, чего там нет вовсе: Copilot, Recall, Click to Do, виджеты. Они помечены минимальной версией Windows, не применяются и **не считаются в индексе** — на «Проверке» видно плитку «Нет на этой Windows». Политики Edge, Блокнота и Paint при этом работают на обеих версиях и применяются как обычно. --- ## Язык Интерфейс полностью на русском и английском, включая названия всех 244 настроек и HTML-отчёт. Язык берётся из настроек Windows и переключается кнопкой на странице «О программе». --- ## Скачать и запустить 1. Возьмите `Win11Privacy.exe` из [релизов](https://github.com/N0deZ3r0/Win11Privacy/releases/latest). 2. Правый клик по файлу → **Свойства** → внизу галочка **«Разблокировать»** → ОК. Так убирается предупреждение SmartScreen — оно появляется у любого неподписанного приложения из интернета. 3. Запустите. Программа попросит права администратора: без них системные настройки не меняются. Устанавливать ничего не нужно — приложение работает на встроенном в Windows .NET Framework 4.8, а движок вшит внутрь exe. > **Совет:** первым делом нажмите **«Проверить»** — увидите текущее состояние, ничего при этом не меняя. > Резервная копия реестра и точка восстановления создаются автоматически перед применением. --- ## Как это выглядит | Настройки — модуль раскрыт в отдельные пункты | Досье — кто включал камеру и микрофон | |---|---| | Настройки | Досье | | Приложения — удаление предустановленного | Рентген телеметрии | |---|---| | Приложения | Рентген | | Проверка — индекс, что не применено и чего нет на этой Windows | |---| | Проверка | | Автозапуск — что стартует вместе с Windows | Монитор — кто отправляет и кому закрыт выход | |---|---| | Автозапуск | Монитор | | Изменения — что программа поменяла и как вернуть | Хронология — телеметрия по дням и обновления Windows | |---|---| | Изменения | Хронология | --- ## Как собрать Двойной клик по **`build.cmd`**. Через пару секунд рядом появится `Win11Privacy.exe`. Если хочется вручную: ``` %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:winexe /out:Win11Privacy.exe ^ /reference:System.dll /reference:System.Core.dll /reference:System.Drawing.dll /reference:System.Windows.Forms.dll ^ /win32res:app.res ^ /resource:Win11-Privacy-Engine.ps1,engine.ps1 /resource:app.ico,app.ico /resource:app.png,app.png ^ *.cs ``` --- ## Из чего состоит | Файл | Что внутри | |---|---| | **Win11-Privacy-Engine.ps1** | Движок. Вся работа с системой: реестр, службы, задачи планировщика, hosts, брандмауэр, рентген телеметрии, досье (датчики и цифровой след), страж, снимки состояния, чистка. Вшивается в exe как ресурс `engine.ps1`, а перед запуском кладётся в `C:\ProgramData\Win11Privacy\bin` — папку, куда без прав администратора не пишут. Может работать и сам по себе. | | **MainForm.cs** | Каркас окна: боковая панель с группами, страницы, запуск движка и разбор его ответов, режим командной строки. | | **PageHome.cs / PageXray.cs / PageDossier.cs** | Страницы «Обзор», «Рентген» и «Досье» — самые большие из тринадцати. | | **Actions.cs** | Что делает каждая кнопка: применение, проверка, монитор, страж. | | **Report.cs** | HTML-отчёт «до и после». | | **Engine.cs** | Распаковка движка: папка с правами только для администратора и сверка файла по SHA-256 с тем, что вшито в exe. | | **Crash.cs** | Перехват необработанных ошибок: понятное окно вместо системного и запись в `crash.log`. | | **AppInfo.cs** | Версия программы и проверка обновления на GitHub — только по кнопке. | | **Welcome.cs** | Окно первого запуска: один вопрос вместо тринадцати разделов сразу. | | **Mocks.cs** | Тестовые данные для снимков интерфейса, целиком под `#if UITEST`. | | **SingleInstance.cs** | Одна копия программы: второй запуск показывает уже открытое окно. | | **SelfTest.cs** | Проверки чистых функций интерфейса — сравнение версий, разбор ответов движка, «эта команда меняет систему или только читает». Отдельная сборка под `#if SELFTEST`. | | **Ui.cs** | Тема (цвета, шрифты), карточки, переключатели, кнопки, строки списков, кольцо индекса, плитки. | | **Ui2.cs** | Заголовок окна, градиентная боковая панель, скользящая подсветка навигации, кольцевая диаграмма, плитки главного экрана, анимация значений. | | **Ui3.cs** | Строки страницы «Досье»: кто включал камеру/микрофон (SpyRow), цифровой след с чекбоксами стирания (WipeRow), график датчиков по дням (SensorChart). | | **Ui4.cs** | Адаптивная вёрстка: сетка плиток, подстраивающаяся под ширину окна (TileGrid), панель содержимого без мерцания. | | **Lang.cs** | Английский перевод интерфейса. Собирается из `lang-en*.txt` командой `python tools/gen_lang.py` — правьте словари, а не сам Lang.cs. `python tools/check_lang.py` покажет строки, для которых перевода ещё нет. | | **Json.cs** | Разбор JSON без внешних библиотек — движок отвечает строками `###JSON### {...}`. | | **app.manifest** | Требование прав администратора, поддержка масштабирования экрана. | | **app.res** | Готовый ресурс Win32: манифест + иконка (7 размеров) + версия. Пересобирать не нужно. | | **app.ico / app.png** | Иконка приложения. | | **tests/engine-tests.ps1** | Проверки поведения движка: их же гоняет сборка на GitHub. Только чтение. | | **tests/roundtrip.ps1** | Применить, проверить и откатить по-настоящему, затем сверить каждое значение с исходным. Меняет систему, поэтому требует ключа `-Confirmed`; в сборке выполняется на одноразовой машине. | | **tools/make_winget.py** | Собирает манифест для каталога winget по версии и контрольной сумме релиза. | | **tools/set_version.py** | Прописывает версию программы в `app.res` — ту, что Windows показывает в свойствах файла. `--check` сверяет, сборка на этом настаивает. | | **tools/submit_winget.py** | Отправляет манифест очередной версии в каталог winget: создаёт ветку в форке, кладёт файлы и открывает pull request. Каталог не клонируется — он весит гигабайты. | | **check-engine.cmd** | Самопроверка движка. Только чтение, ничего не меняет. | --- ## Как программа устроена Интерфейс **ничего не делает сам**. Он собирает список выбранных модулей и запускает движок: ``` powershell.exe -File engine.ps1 -Modules telemetry,ads,cleanup -BackupRoot "C:\...\Desktop" ``` Движок печатает ход работы построчно (интерфейс раскрашивает: `[+]` зелёным, `[!]` красным) и в конце может выдать структурированный ответ строкой `###JSON### {...}` — его разбирает `Json.cs` и рисует на страницах. Благодаря этому движок полностью проверяем отдельно от интерфейса. ### Команды движка | Команда | Что делает | |---|---| | `-Modules a,b,c` | применить выбранные модули | | `-DryRun` | показать что было бы сделано, ничего не меняя | | `-Detect` | определить систему, редакцию, установленные программы, слежку производителя | | `-Audit` | прочитать реальное состояние всех настроек, вернуть индекс | | `-XrayEnable` / `-XrayScan` / `-XrayWipe` | рентген телеметрии | | `-Spy` | досье: кто и когда включал камеру, микрофон, геолокацию | | `-Footprint` | досье: цифровой след на диске (рекламный ID, сети, флешки, истории) | | `-FootprintWipe -WipeItems a,b` | стереть выбранные элементы следа | | `-SensorSet -SensorKey k -SensorValue Deny` | запретить программе доступ к камере, микрофону или геолокации | | `-Proof` / `-ProofSave` | доказательство результата: снимок «до» и сравнение с текущим | | `-ListDefs` | список отдельных настроек внутри модулей | | `-SkipItems a#1,b#2` | применить модуль, кроме указанных пунктов | | `-ListApps` / `-RemoveApps -AppItems a,b` | предустановленные приложения: список и удаление | | `-ListStartup` | автозагрузка: что стартует вместе с Windows | | `-ChangeLog` / `-RestoreItems -ChangeItems a,b` | журнал изменений и возврат отдельных записей | | `-DataInfo` / `-PurgeData` | что программа хранит о вас у себя и удаление этого | | `-DataRoot "C:\...\Win11Privacy-Data"` | держать данные в указанной папке (переносимый режим) | | `-Timeline -TimelineDays 30` | хронология: телеметрия по дням, обновления Windows, правки и возвраты | | `-ListBackups` / `-RestoreBackup -BackupPath ...` | резервные копии реестра: список и возврат | | `-CleanJunk` | убрать параметры, записанные версиями до 1.6 под числовыми именами | | `-StartupSet -StartupItems a,b -StartupValue Off` | погасить или вернуть записи автозапуска | | `-InstallSensorGuard` / `-RemoveSensorGuard` | слежение за датчиками: каждые 30 минут сверка журнала, уведомление о новой программе | | `-SensorGuard` | одна проверка слежения (её запускает планировщик) | | `-Monitor` / `-EnableMonitor` | статистика исходящих соединений | | `-BlockApp -AppPath "C:\...\app.exe"` | запретить программе выход в сеть (`-UnblockApp` — вернуть) | | `-Audit -WithProof` | проверка и доказательство результата одним прогоном | | `-InstallGuard` / `-GuardNow` | страж, возвращающий сбитые настройки | | `-Snapshot` / `-SnapshotDiff` | машина времени | | `-InstallWatcher` / `-RemoveWatcher` | живые уведомления о перехвате | | `-SelfTest` | самопроверка движка: та же «Диагностика», что и в окне | | `-RestoreAll` | вернуть все записи журнала, ничего больше не трогая | | `-PurgeBuffer` | стереть неотправленную телеметрию | | `-XrayStatus` / `-XrayDisable` / `-XrayBaseline` | состояние записи, выключение, замер «до» | | `-Revert` | откат всего | Ключи-уточнения: `-NoBackup` и `-NoRestorePoint` (не делать копию и точку восстановления), `-GuardDaily` (страж каждый день вместо раза в неделю), `-AllUsers` (удалять приложения у всех пользователей), `-SpyAll` (показать и неиспользованные разрешения), `-MonitorHours`, `-XrayHours`, `-XrayMax`, `-TimelineDays` (за какой срок и сколько событий брать). ### Как добавить новую настройку Одна строка в движке, рядом с остальными: ```powershell Def 'telemetry' 'reg' 'HKLM:\SOFTWARE\Policies\...' 'ИмяПараметра' 0 'DWord' 'человеческое описание' ``` `Def` описывает **что должно быть**, а не как это сделать. Из одного описания работают сразу: применение, проверка, страж и снимки состояния. Поддерживаемые типы: `reg`, `regif` (только если ключ уже есть), `regpol` (политика, которую Windows может не отдать даже администратору — тогда это не ошибка), `svc`, `svcopt`, `task`, `taskglob`, `env`, `vscode`, `firefox`, `hosts`, `fwsvc`, `fwapp`. Чтобы новый модуль появился в интерфейсе — добавьте строку в `BuildModules()` в `MainForm.cs`. --- ## Проверка без сборки Откат проверяется отдельно — по-настоящему, с применением и возвратом: ``` powershell -ExecutionPolicy Bypass -File tests\roundtrip.ps1 -Confirmed ``` Тест меняет настройки компьютера, поэтому без ключа `-Confirmed` он не запускается. Он применяет модули, убеждается, что проверка это видит, откатывает и сверяет **каждое** значение с тем, что было до начала: сравнивать только итоговые счётчики мало — взаимная компенсация ошибок прошла бы незамеченной. **`check-engine.cmd`** запускает движок в режиме только чтения и складывает рядом четыре файла с результатами: определение системы, проверка настроек, статус рентгена и тестовый прогон. Ничего в системе не меняется. --- ## Что можно посмотреть в отладке Интерфейс собирается с флагом `UITEST` — тогда окно открывается с тестовыми данными и само закрывается через 13 секунд: ``` csc ... /define:UITEST ... ``` Переменные окружения: `WIN11_TEST_PAGE` (какую страницу открыть), `WIN11_TEST_MOCK=1` (подставить тестовые данные), `WIN11_TEST_EN=1` (английский интерфейс), `WIN11_TEST_SHOT=путь.png` (снять окно и выйти), `WIN11_TEST_WELCOME=1` (показать окно первого запуска), `WIN11_TEST_UPDATE=1` (нажать «Проверить обновление»), `WIN11_TEST_DUMP=1` (напечатать дерево элементов с пометками «ВЫЛЕЗ» и «ОБРЕЗАНО»). Ещё есть флаги сборки `BIGFONT` — имитация экрана со 150 % масштабом, и `LIGHTTEST` — светлая тема. Проверки чистых функций интерфейса собираются отдельным exe: ``` csc /define:SELFTEST /main:Win11Privacy.SelfTest ... *.cs ``` --- ## Если вы пользовались версиями 1.1–1.5 В них была ошибка: счётчик внутри функции `Def` затирал имя параметра реестра (в PowerShell `$n` и `$N` — одна переменная). Из-за этого настройки записывались под числовыми именами — `0`, `1`, `2` вместо `AllowTelemetry` — и **ничего не меняли**, а проверка показывала их применёнными, потому что читала то же неверное имя. Начиная с 1.6 имена восстановлены. Программа сама находит оставшийся мусор (кнопка **«Убрать мусор»** на странице «Проверка» или `-CleanJunk`) и удаляет только те числовые параметры, которые совпадают и по номеру, и по значению. После обновления стоит один раз нажать «Проверить», а затем «Применить». --- ## Честно о пределах Полностью прекратить обмен данными с Microsoft на Windows нельзя: остаются проверка обновлений, активация лицензии и проверка сертификатов. На редакциях Home и Pro минимальный уровень телеметрии система трактует как «Обязательные данные» — это ограничение редакции, а не программы. Программа не подписана сертификатом, поэтому Windows покажет предупреждение SmartScreen при первом запуске скачанного файла: правый клик по файлу → Свойства → галочка «Разблокировать». Запрос прав администратора остаётся — он нужен, потому что программа меняет системные настройки. --- ## Сборка и релизы Локально: двойной клик по **build.cmd** — рядом появится Win11Privacy.exe. В репозитории настроена автосборка (GitHub Actions): - на каждый коммит в main и каждый pull request — проверяется синтаксис движка, сверяются версии движка, интерфейса и ресурса версии, прогоняются проверки его поведения и проверки чистых функций интерфейса, сверяется перевод, **настройки применяются и откатываются на живой одноразовой машине, а каждое значение сверяется с тем, что было до**, все страницы интерфейса и окно первого запуска открываются на тестовых данных по-русски и по-английски, собирается exe и проверяется, что движок вшит внутрь и совпадает с исходником, а манифест запрашивает права администратора; - на тег вида **v1.0.0** — сверяется, что тег совпадает с версией внутри программы, собранный exe выкладывается в релиз вместе с контрольными суммами и манифестом для каталога winget, а сам манифест отправляется в каталог отдельным pull request. Отправка в каталог включается секретом репозитория **`WINGET_TOKEN`** — личный токен с правом `public_repo`: встроенный токен сборки в чужой репозиторий писать не может. Без секрета шаг молча пропускается, и манифест можно отправить рукой: ``` python tools/submit_winget.py ``` Согласие участника (CLA) подписывается один раз, форк каталога создаётся сам. Выпустить новую версию: 1. Поднимите номер в двух местах — `AppInfo.cs` (`Version`) и движке (`$script:EngineVersion`), — а затем пропишите его в ресурс версии, тот самый, что Windows показывает в свойствах файла: ```bash python tools/set_version.py ``` 2. Закоммитьте изменения в `main`. Сборка проверит движок и интерфейс, сверит перевод и убедится, что все три версии совпадают между собой. 3. Поставьте тег с той же версией и отправьте его: ```bash git tag -a v1.9.3 -m "коротко о том, что изменилось" git push origin v1.9.3 ``` 4. Дальше всё само: сборка сверит тег с версией внутри программы, применит и откатит настройки на одноразовой машине, создаст релиз с `Win11Privacy.exe`, `Win11-Privacy-Engine.ps1`, `SHA256SUMS.txt` и `winget-manifest.zip`, а затем отправит манифест в каталог winget отдельным pull request. Если тег и версия внутри программы разойдутся, сборка остановится — релиз с чужим номером не выйдет.