# Y-Cleaner 1.2.0 — Windows 10/11 x64

Приложение использует Win32, GDI+, WinHTTP и BCrypt. .NET, Java и дополнительные runtime-библиотеки не требуются. В portable-архиве запустите `YCleaner.exe`; установщик устанавливает тот же бинарный файл в профиль пользователя и создаёт ярлыки.

## Что работает

- Анализ временных файлов текущего пользователя и `Windows\Temp`, изменённых не менее 24 часов назад.
- Анализ только кэша Chrome, Edge и Firefox. Cookies, история, логины, пароли, профиль и сессии браузеров не удаляются.
- Запрос объёма и количества файлов в системной корзине текущего пользователя; очистка после отдельного подтверждения.
- Выбор категорий; полный виртуальный список найденных временных файлов и кэша с путями и размерами. Корзина представлена общим объёмом; содержимое просматривается в штатном Проводнике.
- Фоновый анализ/очистка, прогресс и отмена. Настройка «Пропускать занятые файлы» управляет краткой повторной попыткой доступа; принудительного удаления нет. Изменённые, недоступные файлы, hard links и reparse points пропускаются. Проверка пути и идентичности выполняется повторно непосредственно перед удалением.
- Закрытие браузеров только при включённой настройке и подтверждении. Используется запрос обычного закрытия окна; процессы не завершаются принудительно. При работающих браузерах их кэш пропускается.
- Информация о свободном и занятом пространстве фиксированных локальных дисков.
- Поиск больших файлов в выбранной папке или на диске с порогом размера, сортировкой, отменой и открытием папки в Проводнике. Явно выбранные файлы можно переместить в корзину после подтверждения и проверки действующей лицензии; служебные каталоги корзины и тома, файлы с системными атрибутами и ссылки исключаются; изменения проверяются перед передачей Windows Shell. Перемещение в корзину ещё не освобождает место на диске.
- Справка, автоматическое сохранение настроек, журнал анализа и очистки в оформленном окне приложения.
- Автоматический 14-дневный trial при первом запуске с доступом к серверу. Активация без email, по коду из оплаченного заказа; $5/месяц, $20/год, $100 бессрочно. Покупка открывает сайт.

## Внешний вид и языки

В настройках доступны темы «Как в системе», «Светлая», «Тёмная» и шесть цветовых акцентов: изумрудный, синий, фиолетовый, янтарный, розовый и бирюзовый. Выбор сохраняется в том же защищённом профиле, что и остальные настройки. Тема «Как в системе» следует настройкам Windows.

По умолчанию язык выбирается по языку Windows; его можно изменить вручную. Встроены русский, английский, хинди, китайский, корейский, японский, немецкий, французский, испанский, итальянский, португальский, турецкий, арабский, индонезийский, вьетнамский, тайский, польский, украинский, нидерландский и бенгальский. Арабский текст выводится справа налево; лицензионные коды и пути сохраняют корректное направление. Для сложных письменностей используются системные шрифты Windows и штатный движок вывода текста. Установка языкового пакета Windows может понадобиться, если необходимые шрифты удалены из системы.

Кнопки, переключатели и категории имеют единый стиль, состояния наведения, нажатия и видимого клавиатурного фокуса. Показания выбранного объёма синхронизированы во всех элементах. Круг очистки показывает долю выбранных байтов от всего найденного объёма: 0 байт оставляет пустой круг, выбор всех категорий заполняет его полностью. Анимация учитывает системную настройку уменьшения движения и режим высокой контрастности; таймер отключается после завершения перехода и при неактивном/свёрнутом окне. Корзина изначально не выбрана и требует отдельного подтверждения.

Установщик поддерживает те же 20 языков, включая бенгальский. Первое окно позволяет выбрать язык; исходный выбор определяется по языку Windows. Выбор сохраняется для удаления приложения. Переименование ярлыка удаления не зависит от языка.

## Новое в версии 1.2.0

У округлых кнопок исправлен фон по краям: под ними восстанавливается рисунок соответствующей карточки или окна. Круг очистки плавно меняет заполнение при изменении выбранного объёма; в Windows с отключёнными анимациями обновляется сразу.

Крестик главного окна и Alt+F4 скрывают Y-Cleaner в область уведомлений. Меню значка позволяет открыть приложение, показать или скрыть виджет и завершить программу. Скрытие окна не отменяет текущую операцию. Выход во время операции запрашивает подтверждение и дожидается безопасной остановки. Виджет продолжает работать, пока приложение находится в трее.

Новые записи истории сохраняют тип события и данные отдельно от языка и переводятся при просмотре. Известные записи прежних русской и английской версий тоже отображаются на выбранном языке. Неизвестные строки сохраняются в исходном виде; исходная история не удаляется.

## Возможности версии 1.1

Просмотр файлов и история оформлены в стиле главного окна, с иконкой приложения. Русский язык находится в середине списка в настройках. Поле кода лицензии стало компактнее; кнопка проверки обновлений удалена.

В настройках можно включить виджет рабочего стола и установить его непрозрачность от 20 до 100%. Он показывает доступный объём очистки, состояние лицензии и занятость локальных дисков, включая круговые индикаторы. Кнопка анализа запускает сканирование; также доступны открытие главного окна и отключение виджета. Скруглённые края используют сглаженную прозрачность каждого пикселя. Виджет можно перетащить, его положение сохраняется. Изначально он выключен. Он работает вместе с запущенным приложением; завершение Y-Cleaner закрывает виджет.

## Лицензия и переносимость

Первый trial и активация требуют доступного `https://y-cleaner.com` с действительным TLS-сертификатом. Подписанная сервером лицензия проверяется встроенным публичным RSA-ключом. Подпись, хеш устройства, срок подписки и срок офлайн-доступа проверяются локально. Офлайн-доступ ограничен 24 часами и сроком подписки. Бессрочная лицензия также периодически подтверждается сервером.

Без действующего серверного разрешения функции приложения заблокированы. Доступны ввод и активация кода, покупка, восстановление соединения и завершение программы. Полученное от сервера подтверждение отзыва или истечения лицензии сразу прекращает локальный доступ; при временной сетевой ошибке действует оставшийся срок подписанного офлайн-разрешения.

Portable означает запуск без установки. Для общей активации portable и установленного приложения настройки и защищённая DPAPI копия лицензии хранятся в `%LOCALAPPDATA%\Y-Cleaner`; идентификатор установки и максимальное наблюдённое время также хранятся в `HKCU\Software\Y-Cleaner`. Это не полностью изолированное хранение внутри папки portable: новая загрузка архива не создаёт новый trial. Приложение не требует прав администратора; недоступные системные файлы пропускаются.

Для лицензирования отправляется SHA-256 хеш идентификатора установки Windows, общий для всех её пользователей, GUID установки приложения, версия, тип ОС и выбор согласия. Для перехода с версии 1.1.2 также отправляется прежний хеш идентификатора Windows и SID вместе с подписанным разрешением; исходные идентификаторы не передаются. Необязательная аналитика выключена по умолчанию и включается пользователем. При согласии отправляются события использования и агрегатный результат очистки. Пути, содержимое файлов, cookies, история браузера и имя пользователя не отправляются. Политика конфиденциальности опубликована на сайте.

## Проверка на Windows

`YCleaner.exe --self-test` выполняет тесты JSON, отклонения неверной лицензии и безопасного удаления только в новых изолированных временных папках. Он не анализирует реальные данные пользователя, не чистит кэш браузеров и не очищает корзину. Код выхода 0 — успех; 11 — ошибка. `YCleaner.exe --smoke-quit` открывает интерфейс и автоматически закрывает его.

Набор проверок реального релиза: запустить self-test; выполнить анализ, открыть список; отменить анализ/очистку; проверить блокировку удаления без лицензии, trial, активацию и истечение; проверить 100%, 150%, 200% DPI и окно на мониторах 1366×768 и 1920×1080. Интерфейс подстраивает масштаб содержимого к доступной области.

## Сборка

Используйте `../build-tools/build-linux.sh` либо команды MinGW-w64 C++17 из него. Ресурсы находятся в `resources/app.rc`, публичный ключ в `src/license_public.h`. Для сборки без привязки к поставляемому серверному ключу замените публичный ключ и приватный ключ сервера согласованно. API-секрет Heleket никогда не включается в приложение.

`tests/json_tests.cpp` и `tests/cleaner_policy_test.cpp` запускаются обычным C++17 компилятором в Linux. `tests/windows_cleaner_selftest.cpp` собирается Windows-компилятором вместе с `src/cleaner.cpp` и тестирует реальные Windows API на изолированных файлах.

Автоматической очистки и автоматической загрузки/запуска обновлений нет. Журнал не содержит содержимое документов, но локальный прогресс и просмотр показывают пути к анализируемым файлам.

## Политика доступа 1.2.0

После завершения trial, подписки или 24-часового офлайн-разрешения функции приложения требуют активации либо соединения с сервером. Нажатие показывает окно с предложением открыть сайт для оплаты. Ввод и активация кода, открытие сайта, восстановление соединения и завершение программы остаются доступны. Надпись «Offline access until» удалена.

Trial учитывается на сервере по идентификатору компьютера, общему для учётных записей Windows. Новая установка и удаление пользовательских настроек не создают новый срок для уже зарегистрированного компьютера. Смена аппаратного идентификатора, чистая переустановка Windows, подмена запроса и восстановление снимка VM требуют дополнительных мер со стороны владельца: абсолютную защиту от владельца компьютера приложение не гарантирует. Переход со старого идентификатора версии 1.1.2 описан в отчёте безопасности.
