Skip to content

Releases: JohNick-Mods/max-mod-johnick

MAX Mod v26.34.0.4

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 09 Oct 06:58

MAX Mod v26.34.0.4 — примечания к выпуску

Дата: 09.10.2026

База: MAX 26.34.0 GP

Сборка: V4, строгий конвейер --strict --e2e, run 9afa1f150b48, 283 шага

Изменения относительно v26.34.0.3

  • Чаты — промо-карточки: скрыт общий блок карточек-информеров на вкладках «Все», «Новые», «Личные» и «Каналы». Скрываются также сервисные подсказки и уведомления обновления. Обычные чаты, каналы и их сообщения остаются в списках. Используется существующий переключатель «Скрыть промо-виджеты».
  • Чаты — новый тумблер: в настройках мода → «Чаты» добавлен переключатель «Скрыть чат „Безопасность“». По умолчанию выключен.
  • Звонки — остановка гудка: гудок дозвона останавливается при событии завершения звонка, в том числе при сбросе звонка собеседником. После установки проверен запуск приложения; полный сценарий звонка не выполнялся.
  • Номер сборки: V4 (26.34.0.4).

Сборка и проверка

  • Строгая сборка завершилась успешно: 283 шага; собраны arm64/arm7 и основной/clone APK, подписи и DEX-контракты прошли проверки.
  • Основная и clone версии arm64 установлены на устройство 21091116AG. Основное приложение запущено; в сохранённом logcat нет FATAL EXCEPTION или ANR. В логе присутствуют предупреждения Android/приложения.
  • DEX извлечён напрямую из arm64 APK и декомпилирован: подтверждены переключатель в настройках, общий gate информера и остановка гудка в обработчике onCallEnded. Проверка реального серверного поведения промо-карточек и звонка не выполнялась.

Известные ограничения

  • Исправление бага антиудаления зашифрованного сообщения у собеседника отложено по просьбе пользователя и в V4 не входит.
  • Рекламные сообщения, пришедшие как обычные сообщения чата или канала, этим фильтром не распознаются.
  • Скрывается весь общий тип информеров: вместе с промо исчезают сервисные подсказки и уведомления обновления.
  • E2E-звонки модом не реализованы; прочие ограничения E2E описаны в E2E_GUIDE.md.

Файлы релиза

  • MAX_26.34.0_arm64_V4.apk, MAX_26.34.0_arm64_V4_clone.apk
  • MAX_26.34.0_arm7_V4.apk, MAX_26.34.0_arm7_V4_clone.apk
  • SHA256SUMS, AUDIT_26.34.0_GP_V4.pdf, DIGITAL_ID.md

MAX Mod v26.34.0.3

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 06 Oct 06:42

MAX Mod v26.34.0.3 — примечания к выпуску

Дата: 06.10.2026
База: MAX 26.34.0 GP
Сборка: V3, строгий E2E-конвейер, 279 шагов

Изменения относительно v26.34.0.2

  • Краш «Автообновление» (A11): приложение вылетало при переключении пункта «Автообновление» на экране «О приложении». Причина — ссылка на класс, переименованный в этой версии MAX. Исправлено; переключатель проверен на устройстве (три переключения подряд, без вылетов).
  • Окно «Истории, опросы и не только… Скачать» (U7): серверное окно с призывом обновить приложение теперь подавляется: гасятся информеры типа «самообновление» и любые информеры с кнопкой «Скачать» или текстом «в новой версии».
  • Реклама в чатах (F14): рекламные баннеры («promoted») в чатах скрываются. Управляется тумблером «Скрыть промо-баннеры» (по умолчанию активен).
  • Повторные пуши о прочитанном (F13): защита от повторных уведомлений по уже показанным сообщениям теперь действует и в режимах «Умная античиталка» и «Невидимка» (раньше только при «Античиталке» и «Анти-удалении»).
  • Гудок исходящего звонка (C4): на время гудка громкость медиа поднимается до 70% (если была ниже) и возвращается после ответа или сброса. Помогает устройствам, где гудок не был слышен (Redmi 9). Выбор источника звука не менялся.
  • Версия мода: на экране «О приложении» суффикс V3.

Сборка и проверка

  • Строгая E2E-сборка завершилась успешно (run c66f15a7b639); четыре APK собраны, подписи проверены.
  • Независимая верификация подтвердила дифф патчей, безопасность регистров вставок и присутствие правок в собранном DEX.
  • Redmi (arm64): main и clone установлены, SHA-256 установленного APK совпадает со сборкой, запуск без вылетов, переключатель «Автообновление» проверен.
  • Не проверено на устройстве: гудок на Redmi 9 при низкой громкости медиа, устранение повторных пушей (причина установлена по коду, без лога с устройства), блокировка рекламы и окна обновления на живых серверных данных.

Известные ограничения

  • Рекламные посты каналов, пришедшие как обычные сообщения, отличить от обычных нельзя; блокируются только баннеры механизма promoted.
  • Окно обновления гасится по типу и тексту; если сервер пришлёт другой тип с иным текстом, оно может появиться — тогда нужен лог устройства.
  • Подъём громкости гудка касается громкости медиа на время звонка; при ручной смене громкости во время гудка прежнее значение не восстанавливается.
  • Прочие ограничения без изменений: тихая E2E-отправка выключена, E2E звонков модом нет, голосовые AUDIO-вложения — только при глобальном E2E и поддержке собеседника.

Файлы релиза

  • MAX_26.34.0_arm64_V3.apk, MAX_26.34.0_arm64_V3_clone.apk
  • MAX_26.34.0_arm7_V3.apk, MAX_26.34.0_arm7_V3_clone.apk
  • SHA256SUMS, AUDIT_26.34.0_GP_V3.pdf, DIGITAL_ID.md

MAX Mod v26.34.0.2

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 05 Oct 19:14

MAX Mod v26.34.0.2 — примечания к выпуску

Дата: 05.10.2026
База: MAX 26.34.0 GP
Сборка: run a62cc004e09f, строгий E2E-конвейер, 278 шагов

Изменения относительно v26.34.0.1

  • Надёжность интерфейса (A8): добавлена проверка безопасной области касания строки вкладок и обработка detach в picker; диагностическая запись сбоя позволяет сохранить сведения для разбора. Первопричина прежнего сбоя не доказана, поэтому это защитные меры, а не заявление о полном устранении.
  • Панель обновления (A9): скрывается навязчивая штатная pinbar-плашка «Обновите приложение».
  • Сохранение настроек (A10): восстановление настроек и списка удалённых/сохранённых элементов выполняется с безопасным поведением при ошибке чтения.
  • Тёплый ACTION_SEND (F11): повторный вход Activity с новым share Intent обновляет Intent и заново применяет помощники прозрачной темы.
  • Стили (U6): поиск ресурсов стилей опирается на имена, с проверкой ID как запасным вариантом.
  • Восстановление E2E (B5/B6): после ручного сброса можно начать обновление сессии обычным исходящим сообщением. Тихая фоновая отправка выключена, интерфейс объясняет это ограничение.
  • Профиль E2E (B7): безопасная проверка данных декорации для специального профиля E2E снижает риск ошибки/падения на неизвестном ключе.
  • Непрочитанные каналы (F12): исправлены точки подсчёта непрочитанного для строк канала; третья точка остаётся закрыта существующим гейтом счётчика FAB. DEX-проверка подтвердила новые вызовы; полный интерактивный сценарий на устройстве отдельно не подтверждён.
  • Папки чатов (F9): вернулась полоска «Все / Новые / Личные / Каналы» на вкладке «Чаты». Причина — патч бейджа «Новые» (F2) затирал живой регистр в bj7.updateCounter, из-за чего счётчики папок переставали работать и список папок не обновлялся. Патч переписан на свободные регистры.
  • Версия мода: на экране «О приложении» отображается суффикс V2 рядом с версией MAX.
  • E2E-справки: уточнены два состояния чата, поведение после сброса, отсутствие E2E-звонков и условная поддержка голосовых AUDIO-вложений.

Сборка и проверка

  • Строгая E2E-сборка завершилась успешно: 278 шагов; четыре APK собраны, целевые ABI, DEX-контракты и подписи проверены.
  • Независимая сверка подтвердила совпадение SHA-256 всех четырёх APK с SHA256SUMS, наличие фиксов F12/B7 и строки V2 в итоговом DEX.
  • Redmi 21091116AG: arm64 main и clone установлены и запущены; на обоих видна полоска папок (F9). В проверенном фрагменте logcat нет FATAL EXCEPTION, VerifyError или NoSuchFieldError.
  • Проверка UI версии «О приложении», полного пользовательского сценария F12 и всех 325 патч-точек не заявляется.

Известные ограничения

  • Тихая E2E-отправка выключена. Новый обмен начинается с обычного исходящего сообщения. В строгом режиме до появления сессии отправка блокируется.
  • E2E звонков модом не реализовано. Индикатора E2E звонка нет; справки не оценивают штатную защиту MAX.
  • Голосовые AUDIO-вложения поддерживаются только при включённом глобальном E2E, активной Signal-сессии и поддержке собеседником. Видео-кружки, группы и каналы не защищаются E2E.
  • Часть старых R8-якорей пропущена: некоторые классы/методы отсутствуют или переименованы в этой базе MAX. Они перечислены отдельно в отчёте сборки.
  • Аудит охватывает статические проверки выбранных точек и smoke-запуск, но не подтверждает все 325 патчей экспериментом или интерактивным тестом.

Файлы релиза

  • MAX_26.34.0_arm64_V2.apk — arm64, основное приложение
  • MAX_26.34.0_arm64_V2_clone.apk — arm64, клон
  • MAX_26.34.0_arm7_V2.apk — arm7, основное приложение
  • MAX_26.34.0_arm7_V2_clone.apk — arm7, клон
  • SHA256SUMS — контрольные суммы APK
  • AUDIT_26.34.0_GP_V2.pdf — технический отчёт аудита
  • DIGITAL_ID.md — настройка возврата из Госуслуг в MAX

MAX Mod v26.34.0.1

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 04 Oct 19:29

MAX Mod v26.34.0.1 — Release Notes

Дата: 2026-10-04
База: MAX 26.34.0 GP
Сборка: b43e04f51991 (--strict --e2e)

Исправления и проверка

  • E2E в карточке контакта: исправлены R8-сигнатуры и типы модели в helper настроек контакта; меню не теряет строки при изменении обфускации.
  • Строгий E2E fail-closed: закрыты пути, где незашифрованный исходный текст мог пройти при ошибке сопоставления peer, REKEY/версии, crypto или повторной записи исходящего сообщения. Control-only префиксы удаляются до обычной отправки.
  • Передача владения: подтверждён путь установки владельца на устройстве в Strict mode.
  • Баннер штатного обновления: скрыт pinbar «Обновите приложение» от стока.
  • APK включают libsignal_jni.so для arm64 и arm7.

Полная сборка прошла: 275 шагов; pytest tests -q: 208 passed, 5 skipped. Все четыре APK независимо сверены с SHA256SUMS; подписи APK v2/v3 проверены. Smoke на устройстве подтвердил запуск main/clone arm64, без записей AndroidRuntime crash в проверенном запуске.

Файлы

  • MAX_26.34.0_arm64_V1.apk — arm64, основной пакет.
  • MAX_26.34.0_arm64_V1_clone.apk — arm64, клон.
  • MAX_26.34.0_arm7_V1.apk — arm7, основной пакет.
  • MAX_26.34.0_arm7_V1_clone.apk — arm7, клон.
  • SHA256SUMS — контрольные суммы APK.
  • DIGITAL_ID.md — настройка возврата из Госуслуг в MAX.

Известное ограничение: end-to-end шифрование аудио в звонках на этом стоке недоступно.

MAX Mod v26.33.1.4

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 02 Oct 12:06

MAX Mod v26.33.1.4 — Release Notes

Дата: 2026-10-02

Что нового

Четвёртый выпуск на стоке MAX 26.33.1 — исправление по репорту юзера:

  • 🗑️ Исправлена ложная пометка «удалено» у обычных сообщений при включённом анти-удалении. Ранее при antiDelete=ON входящие и канальные сообщения могли сразу получать метку «удалено». Причина: общий FCM-обработчик заносил любой приходящий msgid в список «защищённых удалённых», не проверяя тип уведомления. Теперь это делается только для настоящих уведомлений об удалении (MessageRemoved / ChatMessageRemoved), а канальные публикации больше не помечаются ошибочно. Анти-удаление чужих сообщений работает как раньше.

Продолжаются закрытые угрозы супераппа (из V1–V3)

Каналы утечек по статье arXiv:2609.11814 «Don't Trust the Super-App» перепроверены и остаются закрытыми:

  • 🔒 WebRTC: публичный IP не раскрывается (srflx-кандидат удаляется).
  • 📍 EXIF-GPS: геотеги фото и видео обнуляются перед отправкой.
  • 🚫 WebRTC debug-dump отключён; FCP-метрика мини-аппов подавлена.
  • 🔐 Хранилище мини-аппов заблокировано (мосты DeviceStorage/SecureStorage возвращают null) — push-токены и ключи ESIA не пересекают мост.
  • 🌐 Телеметрия сети заглушена — параметры оператора, IP и типа подключения не уходят на серверы.

Известные ограничения

  • E2E-шифрование аудио в звонках деактивировано на этом стоке (обфускация call-SDK, безопасный режим) — шифрование сообщений работает как раньше.
  • В редких случаях уведомления в фоне могут приходить с задержкой (ограничение прошивок HyperOS на принудительную остановку приложения).

MAX Mod v26.33.1.3

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 01 Oct 16:25

MAX Mod v26.33.1.3 — Release Notes

Дата: 2026-10-01

Что нового

Третий выпуск на стоке MAX 26.33.1 — исправления по репортам юзера:

  • 💳 «Цифровой ID» (доступ через Госуслуги) больше не крашит. Раньше после переустановки или обновления приложение падало при подключении Цифрового ID — исправлено, вход работает стабильно.
  • 🗑️ Удалённые сообщения больше не возвращаются. Свои удалённые сообщения (у всех / у себя) после перезапуска приложения теперь остаются удалёнными, как и положено. Анти-удаление чужих сообщений (маркер «удалено» и защита от восстановления) работает как раньше.
  • 📞 Исправлен гудок дозвона на перезапуске активности звонка (MTK/Tecno/Android Go). Второй путь события «абонент ответил» получил корректную остановку гудка — на устройствах с Android Go гудок не продолжает звучать на фоне разговора.
  • 🔔 «Полноэкранные уведомления» корректно открываются на ColorOS/OxygenOS/realmeUI. Пункт в «Устранении проблем» теперь ведёт в правильные системные настройки на этих прошивках.

Продолжаются закрытые угрозы супераппа (из V1/V2)

Каналы утечек по статье arXiv:2609.11814 «Don't Trust the Super-App» перепроверены и остаются закрытыми:

  • 🔒 WebRTC: публичный IP не раскрывается (srflx-кандидат удаляется).
  • 📍 EXIF-GPS: геотеги фото и видео обнуляются перед отправкой.
  • 🚫 WebRTC debug-dump отключён; FCP-метрика мини-аппов подавлена.
  • 🔐 Хранилище мини-аппов заблокировано (мосты DeviceStorage/SecureStorage возвращают null) — push-токены и ключи ESIA не пересекают мост.
  • 🌐 Телеметрия сети заглушена — параметры оператора, IP и типа подключения не уходят на серверы.

Известные ограничения

  • E2E-шифрование аудио в звонках деактивировано на этом стоке (обфускация call-SDK, безопасный режим) — шифрование сообщений работает как раньше.
  • В редких случаях уведомления в фоне могут приходить с задержкой (ограничение прошивок HyperOS на принудительную остановку приложения).

MAX Mod v26.33.1.2

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 29 Sep 13:03

MAX Mod v26.33.1.2 — Release Notes

Дата: 2026-09-29

Что нового

Второй выпуск на стоке MAX 26.33.1. Исправления багов первого релиза и доводка стабильности:

  • 🖍️ Цветной текст больше не роняет чат. Раньше при выборе «Красный» в меню выделения текст мог крашить приложение — исправлено. Цвет и форматирование текста в защищённых (E2E) чатах теперь корректно сохраняются.
  • ⏰ Уведомления в фоне стали надёжнее. Исправлен фоновый приёмник и добавлен сторожевой таймер, который запускает службу прослушивания, когда приложение уходит в фон, — уведомления приходят без вылетов.
  • 📞 Гудок дозвона слышен на громкой связи. Исправлена работа гудка при звонке на MTK/HyperOS — теперь тон дозвона звучит как положено.
  • 📋 Порядок вкладок исправлен. При включённой сортировке чаты снова открываются на первом месте, как и ожидается. Также исправлено скрытие «Цифрового ID» при любом порядке вкладок.
  • 🔔 Пункт «Полноэкранные уведомления» в «Устранении проблем». Быстрая кнопка, чтобы открыть настройки полноэкранных уведомлений — удобно, если после обновления системы уведомления перестали показываться на весь экран.
  • 🛠️ Внутренняя доводка сборки. Пройдена полная проверка всех патчей перед релизом, устранены скрытые сбои в телеметрии и совместимости. На работу приложения не влияет, но повышает стабильность будущих обновлений.

Приватность: закрытые угрозы супераппа

По результатам аудита статьи arXiv:2609.11814 — «Don't Trust the Super-App» (телеметрия и утечки данных в мини-приложениях супераппа) в линейке 26.33.1 закрыты и подтверждены следующие каналы утечек (часть пришла ещё из V1, в V2 перепроверена и входит в общий список):

  • 🔒 WebRTC: публичный IP не раскрывается. Из сетевых кандидатов соединения удаляется srflx-кандидат (server-reflexive, публичный адрес) — реальный IP больше не покидает устройство при звонках/передачах.
  • 📍 EXIF-GPS: геотеги фото и видео обнуляются. Координаты съёмки в метаданных медиафайлов заменяются на 0.0 перед отправкой.
  • 🚫 WebRTC debug-dump отключён. Дамп отладочных данных WebRTC больше не пишется и не передаётся.
  • 📊 FCP-метрика мини-аппов подавлена. Сигнал о времени отрисовки (trackFcp) не уходит в телеметрию.
  • 🔐 Хранилище мини-аппов заблокировано. Мосты DeviceStorage/SecureStorage мини-приложений возвращают null вместо ключей — push-токены и сессионные ключи ESIA не пересекают мост приложения в открытом виде.
  • 🛡️ Телеметрия сети. Основные каналы сбора данных оператора, IP и типа подключения заглушены — ключевые параметры соединения не уходят на серверы.

Известные ограничения

  • E2E-шифрование аудио в звонках деактивировано на этом стоке (обфускация call-SDK, безопасный режим) — шифрование сообщений работает как раньше.
  • В редких случаях уведомления в фоне могут приходить с задержкой (ограничение прошивок HyperOS на принудительной остановке приложения).

Обновление

Ставится поверх 26.33.1 V1 и любой более ранней версии (install -r), данные сохраняются.

Полный аудит сборки — AUDIT_26.33.1_GP_V2.pdf в этом релизе.

MAX Mod v26.33.1.1

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 27 Sep 19:11

MAX Mod v26.33.1.1 — Release Notes

Дата: 2026-09-27

Что нового

Первый релиз на стоке MAX 26.33.1. Полный порт всех фич приватности с 26.31.0/26.32.1 (E2E-шифрование, анти-удаление, умная античиталка, hide-чаты/каналы/папки, AMOLED, обои чата, watch-mode, нейтрализация телеметрии, update-checker и др.) + исправление R8-drift порта (152 скрипта, 0 FAIL) + свежие багфиксы:

  • 💬 Кнопка «прочитать всё» (✓✓) теперь по-настоящему помечает прочитанным у собеседника — активная отправка read-mark из onClick с обходом анти-читалки (раньше на стоке 26.33.1/Redmi метка не уходила).
  • 🔗 Тап по цитате (reply) джампит к исходному сообщению — стоковый скролл при этом не переопределяется.
  • 📞 Гудок дозвона слышен на MTK/HyperOS (Redmi) — стрим гудка переведён с тихого на STREAM_MUSIC, громкость 100.
  • 🖼️ Прозрачная тема: закреплённые чипы строк чата и плашка закреплённого сообщения больше не рисуются непрозрачным цветом темы.
  • Закрыты все 10 device-багов порта (2331-F1/B2/B3/B4/B5/B6/U1/A5/F5/F6) — device-verify на Redmi 26-27.09.

Известные ограничения

  • E2E-шифрование аудио в звонках деактивировано на этом стоке (обфускация call-SDK, безопасный режим; индикация защиты скрыта) — E2E-шифрование сообщений работает как раньше.
  • Chat-PIN: long-press заголовка для управления PIN недоступен (UI-хук на текущем стоке) — список защищённых чатов управляется через ADB (maxmod.chatpin.add/remove).
  • Кнопка «прочитать все» для E2E-чатов работает в прежнем режиме (простановка галочки) — принудительная отправка read-mark отключена для E2E по дизайну.

Обновление

Ставится поверх любой версии 26.31.0 RS / 26.32.1 GP (install -r), данные сохраняются.

Полный аудит сборки — AUDIT_26.33.1_GP_V1.pdf в этом релизе.

MAX Mod v26.31.0.16

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 25 Sep 12:46

MAX Mod v26.31.0.16 — Release Notes

Дата: 2026-09-25

Что нового

  • 🔄 UpdateChecker — доработка проверки обновлений: сортировка тегов релизов по убыванию (раньше при нестандартном порядке тегов могла подхватываться не самая новая версия), исправлен разбор имени файла в HTML-fallback, добавлен резервный путь mode=14 + downloadAndInstall, устранена повторная установка уже установленного обновления (идемпотентность).
  • 🛠️ Внутренняя доработка инструментов сборки (r8 hot-override и drift-скан) — не влияет на поведение приложения, ускоряет адаптацию мода к новым сборкам стока.

Функционал приватности и все тумблеры — без изменений с V15 (полный список см. в README).

Известные ограничения (без изменений с V5)

  • E2E-шифрование аудио в звонках перенесено на 26.32.0 (R8-rebump call-слоя) — звонки идут в обычном незашифрованном режиме без ложной индикации защиты. E2E-шифрование сообщений работает как раньше.
  • Chat-PIN: long-press заголовка для управления PIN недоступен в 26.31.0 (UI-хук на 26.32.0). Защита PIN при открытии чата работает; список защищённых чатов управляется через ADB (maxmod.chatpin.add/remove).

Обновление

Ставится поверх любой версии 26.31.0 RS (install -r), данные сохраняются.

Полный аудит сборки — AUDIT_26.31.0_RS_V16.pdf в этом релизе.

MAX Mod v26.31.0.15

Choose a tag to compare

@JohNick-Mods JohNick-Mods released this 24 Sep 18:39

MAX 26.31.0 RS V15 — Release Notes

Точечное усиление приватности поверх V14 + фикс зависшего баннера обновления.

🕵️ Нейтрализация скрытой слежки/аналитики

По результатам комплексного аудита выявлено и закрыто 6 ранее непокрытых путей утечки данных о пользователе:

  • Статистика звонков — SDK звонков собирал и отправлял на сервер метрики каждого звонка (длительность, качество, тип сети). Сбор отключён, сам звонок не затронут.
  • VPN-признак в аналитике — три независимых места передавали серверу признак использования VPN (в аналитике звонков, метке типа сети, общем метрическом лейбле). Все три теперь принудительно сообщают «не VPN».
  • Серверный URL восстановления аккаунта — сервер больше не может задать произвольный адрес для флоу восстановления сессии.
  • Метрики сторонних SDK — фоновый сбор метрик RuStore и отчёты HMS-аналитики нейтрализованы. Push-уведомления не затронуты.
  • Диагностика Tracer SDK — закрыт ещё один, ранее не покрытый путь отправки диагностических данных устройства (defence-in-depth).
  • 🆕 Новый тумблер «Блокировать запрос телефона мини-приложениями» (Приват → Данные и профиль, по умолчанию включён) — мини-приложения (боты) больше не могут молча получить номер телефона пользователя без его подтверждения.

🔄 Исправлен баннер «Доступно обновление», который не гас после установки

После обновления до V14 экран «О приложении → Обновления» продолжал показывать «Доступна v26.31.0.14», даже когда она уже была установлена (и через мод, и вручную с форума). Причина — внутренняя метка версии сборки не была поднята при сборке V14. В V15 исправлено.

⚠️ Отступление от процедуры

Полный fan-out-аудит всех патчей пайплайна для V15 не проводился (как и для V13/V14) — новые изменения изолированы в независимых новых скриптах и не пересекаются с общим кодом, кроме точечного расширения уже проверенного PMS-гейта. Подробности и принятый риск — в AUDIT_26.31.0_RS_V15.md.

Полный технический разбор — в приложенном AUDIT_26.31.0_RS_V15.pdf.