Добро пожаловать в CDPI UI — современный и мощный инструмент для управления популярными средствами изменения трафика (Zapret, TGWSProxy, ByeDPI, GoodbyeDPI и другие!).
Это форк lumenpearson/cdpiui проекта Storik4pro/cdpiui. Он содержит исправления безопасности и надёжности, тесты и изменения архитектуры. История и авторство оригинального проекта сохранены.
Работа организована через доску разработки, этапы G1–G5, реестр аудита и Discussions. Указатель документации объединяет инструкции проекта; правила новых сообщений об уязвимостях описаны в SECURITY.md.
Разделы ниже сохраняют описание и ссылки оригинального проекта. Ссылка на последний релиз Storik4pro относится к upstream; готовность отдельного выпуска форка подтверждается этапом G5. Числа размера и памяти в исходном описании не являются новым измерением этой ветки.
GoodbyeDPI UI теперь CDPI UI. Изменилось не только название — приложение было переписано с нуля, что позволило снизить потребление оперативной памяти в фоне до 8 МБ, повысить стабильность работы приложения, сделать компонент GoodbyeDPI необязательным для установки. Помимо этого, приложение занимает всего 135 МБ на жёстком диске*.
Теперь компоненты и пресеты загружаются через Магазин — бесплатную площадку для скачивания компонентов с официального репозитория. Вы можете добавлять свои элементы в Магазин или скачивать уже существующие.
Автоматический подбор параметров запуска теперь работает стабильнее и имеет удобный интерфейс для формирования пресета сразу для нескольких списков сайтов.
Свои пресеты теперь можно переименовывать и добавлять в стандартный селектор — больше не придётся добавлять пресеты в селектор обходными путями или каждый раз выбирать новый JSON-файл.
Теперь можно делиться пресетами! Просто нажмите [Поделиться] рядом с селектором пресета и отправьте файл другу. Открыть такой файл можно двойным кликом.
Узнайте все новые возможности по ссылке cdpiui://AppFeatures. Требуется установленная последняя версия CDPI UI
* — конечный вес приложения зависит от установленных из Магазина элементов и количества личных данных пользователя
Ранее использовали GoodbyeDPI-UI?
Обновление с этой версии уже доступно! CDPI UI загрузится через штатный механизм обновления, потребуется лишь нажать несколько кнопок для переноса настроек.Ранее использовали другие решения?
Просто перетащите файл .BAT или .TXT в область настройки компонента. Приложение автоматически импортирует файл, и вам останется только выбрать пресет в селекторе.| Параметр | Минимальное значение |
|---|---|
| Оперативная память | 100 МБ |
| Свободное место на жёстком диске | 200 МБ |
| .NET | .NET 8 Desktop Runtime (x64) |
| Операционная система | Windows 10 версии 1809 (10.0.17763) и выше, x64 |
- Скачайте последнюю версию CDPI UI на странице релизов
- Если вы скачали
Setup.msi, установите приложение. Если вы скачали_portable.zip, распакуйте архив в предпочитаемую папку - Откройте приложение CDPI UI, кликнув на исполняемый файл
CDPIUI.exeили через ярлык в меню "Пуск" - Откройте Магазин через страницу [Утилиты] (или перейдите по cdpiui://Store)
- Найдите и установите предпочитаемый вами компонент и набор пресетов
- Выберите компонент и пресет по умолчанию
- Запустите компонент, нажав на кнопку [
▶️ Запустить]. При желании добавьте компонент в автозапуск системы. - Закройте все лишние окна приложения — теперь приложение будет работать в фоновом режиме. Нажмите на иконку в системном лотке уведомлений или ещё раз нажмите на ярлык приложения, чтобы открыть главное окно
- Вы великолепны!
- Поддержать разработчика монетой
- Телеграм-канал разработчика — будьте в курсе обновлений!
- Телеграм-канал со смешными картинками
Сведения для разработчиков — сборка, устройство приложения и правила внесения изменений — собраны в CONTRIBUTING.ru.md. У каждого проекта решения есть свой README с подробностями; их список приведён в конце CONTRIBUTING.ru.md.
CDPI UI состоит из двух процессов, которые обмениваются сообщениями через именованный канал (pipe):
| Часть | Учётная запись | Назначение |
|---|---|---|
Главное окно (CDPIUI.exe) |
Текущий пользователь, без повышения прав | Окна приложения, Магазин, пресеты, дополнения и настройки |
Трей (CDPIUI_TrayIcon.exe) |
Администратор | Запуск и остановка компонентов, системный прокси, автозапуск, уведомления, условный запуск |
Главное окно не запускает компоненты само: оно отправляет запрос трею, а трей запускает компонент и передаёт его состояние и вывод обратно. Трей принимает команды только от главного окна приложения и запускает файлы только из папки установки и папок данных CDPI UI. В установке MSI новую или изменённую программу вне папки установки трей запускает, только если это подписанный элемент Магазина или если пользователь подтвердил запуск.
Ещё две утилиты работают на .NET 8, как и трей, и поставляются одним файлом каждая: Update.exe устанавливает обновления приложения (.cdpipatch), EditHostFile.exe изменяет файл hosts с правами администратора. Трей и EditHostFile.exe запускаются с правами администратора через небольшую программу CDPIUI_ElevatedLauncher.exe (Native AOT): она убирает переменные среды .NET пользователя, чтобы они не могли подменить среду выполнения программ с правами администратора.
Понадобятся Windows 10 или 11 (x64), Visual Studio 2022 с нагрузками для .NET Desktop и WinUI (или .NET 8 SDK и MSBuild) и PowerShell 7.
- Создайте файл секретов для локальной сборки:
pwsh .github/scripts/create_secret_stub.ps1 - Соберите
CDPI.slnдля платформыx64 - Запустите
CDPIUI.TrayIconот имени администратора, затемCDPIUIот имени обычного пользователя
Полезные команды:
| Задача | Команда |
|---|---|
| Модульные тесты | dotnet test CDPIUI.Tests/CDPIUI.Tests.csproj |
| Модульные тесты с покрытием кода | dotnet test CDPIUI.Tests/CDPIUI.Tests.csproj -p:DebugType=portable --settings coverage.runsettings |
| Сборка портативной версии | pwsh .github/scripts/build_portable.ps1 |
| Проверка списка файлов установщика | pwsh .github/scripts/check_setup_files.ps1 |
Сборка Setup.msi |
dotnet build NewSetup/NewSetup.wixproj -c Release -p:Platform=x64 |
Каждый push в ветки main, dev, dev/** и fix/** и каждый pull request проверяется в CI (.github/workflows/ci.yml): поиск секретов (gitleaks), сборка библиотек, тесты и проверка пакетов NuGet на известные уязвимости, сборка приложения и Setup.msi, сборка Update, EditHostFile и CDPIUI.ElevatedLauncher. Подробности — в CONTRIBUTING.ru.md.
Документация для разработчиков есть на русском и английском языках. В начале каждого документа есть ссылка на версию на другом языке.
| Раздел | Документ |
|---|---|
| Сборка, устройство и правила изменения кода | .github/CONTRIBUTING.ru.md |
| Главное окно (WinUI 3) | CDPIUI/README.ru.md |
| Общая логика: Магазин, компоненты, настройки | CDPIUI.Core/README.ru.md |
| Каталог Магазина: формат, типы загрузки и проверки | CDPIUI.Core/Store/README.ru.md |
| Язык условий LScript | CDPIUI.Core/LScript/README.ru.md |
| Общие типы и безопасность | CDPIUI.Shared/README.ru.md |
| Протокол обмена между окном и треем | CDPIUI.Shared/Pipe/README.ru.md |
| Трей | CDPIUI.TrayIcon/README.ru.md |
| Дополнения (BlockCheck2, GoodCheck, импорт и обмен пресетами, диагностика, hosts) | CDPIUI.AddOns/README.ru.md |
| Модульные тесты | CDPIUI.Tests/README.ru.md |
| Установка обновлений | Update/README.ru.md |
| Редактор файла hosts | EditHostFile/README.ru.md |
| Программа запуска с правами администратора | CDPIUI.ElevatedLauncher/README.ru.md |
| Установщик MSI | NewSetup/README.ru.md |
| CI, релизы и патчи | .github/RELEASES.ru.md |
| Лицензии сторонних библиотек | THIRD-PARTY-NOTICES.ru.md |
Справка для пользователей встроена в приложение и доступна на русском и английском языках.
Особая благодарность создателям компонентов ValdikSS, bol-van, xvzc, GVCoder09, Flowseal и hufrea
А также:
Niko, MMaxX_ON, o2o, StafiLynx, Lux Fero, Lumenpearson, Leaftail1880, Nek0t, 🔭 и администрации сообщества ББД
