AdGuard выпустил AdGuard 4.13 для Android – крупное обновление блокировщика рекламы, в котором появились дифференциальные обновления фильтров, поддержка технологии CRLite от Mozilla и постквантовая криптография в движке DNS-фильтрации. Список встроенных инструкций по установке HTTPS-сертификата пополнился прошивкой ColorOS.

Дифференциальные обновления фильтров
Раньше изменения в фильтрах доходили до устройства с заметной задержкой: приложение скачивало список правил целиком, из-за чего обновление занимало время и расходовало мобильный трафик. В версии 4.13 в приложение встроена библиотека FilterListManager, которая умеет загружать только изменившиеся части фильтра.
Практический эффект от этого двойной: правила приходят на устройство быстрее, а объём скачиваемых данных сокращается. Побочный эффект – настройка периодичности обновления фильтров теряет смысл. Схема «проверять обновления раз в N часов» больше не отражает реальную работу приложения: фильтры обновляются автоматически по мере появления изменений.
CRLite вместо OCSP и списков отзыва
В движок фильтрации CoreLibs добавлена поддержка CRLite – технологии проверки отозванных сертификатов, разработанной в Mozilla. Она заменяет два прежних подхода: протокол OCSP (Online Certificate Status Protocol), при котором браузер или приложение обращается к стороннему серверу с вопросом о статусе конкретного сертификата, и сверку каждого сертификата с полным списком отзыва CRL (Certificate Revocation List).
CRLite упаковывает данные об отозванных сертификатах в компактную структуру, которая помещается на устройстве целиком. Проверка выполняется локально, без сетевых запросов к третьей стороне. За счёт этого сайты открываются быстрее, а информация о том, какие ресурсы вы посещаете, не уходит наружу вместе с OCSP-запросами.
Инструкция по установке сертификата для ColorOS
Без корневого сертификата AdGuard фильтрация HTTPS-трафика невозможна, а вместе с ней отваливается блокировка рекламы в большинстве приложений и на сайтах. Процедура установки сертификата отличается от прошивки к прошивке, поэтому AdGuard постепенно добавляет в приложение пошаговые инструкции под конкретные оболочки – этим разработчики занимались начиная с версии 4.10.
В 4.13 к списку добавилась ColorOS – оболочка Oppo. Заодно исправлена ошибка, из-за которой владельцам устройств на ColorOS показывалась неподходящая инструкция.
Постквантовая криптография в DnsLibs
Движок DNS-фильтрации DnsLibs обновлён до версии 2.8.45 и получил поддержку постквантовой криптографии. Речь идёт о защите зашифрованных DNS-запросов от сценария «сохранить сейчас, расшифровать потом», когда перехваченный сегодня трафик расшифровывается спустя годы уже на квантовом компьютере.
Для HTTPS-фильтрации постквантовые алгоритмы появились в AdGuard ещё в версии 4.6.4 – там их добавили в CoreLibs. Теперь тем же защищён и DNS-канал.
Что ещё изменилось
Помимо крупных нововведений, в 4.13 закрыт длинный список накопившихся ошибок. Из наиболее заметного:
- Устранён повышенный расход батареи, появившийся в версии 4.12;
- Исправлена ситуация, когда при включённом AdGuard переставали работать сразу несколько приложений;
- Убраны сильные задержки журнала последних действий после обновления с 4.12.1;
- Приложение снова запускается после перезагрузки устройства;
- Устранено дублирование поддоменов в статистике;
- Добавлена поддержка резервного копирования Google Backup;
- Фильтрация HTTP/3 включена по умолчанию в стабильных сборках.
Список изменений
Улучшения
- Добавлена возможность скопировать применённое правило в подробностях запроса в журнале фильтрации.
- Добавлена возможность скопировать имя пакета приложения в подробностях запроса.
- Добавлена поддержка резервного копирования Google Backup.
- Приложение 2ndLine исключено из фильтрации по умолчанию.
- В списке DNS-фильтров отображается информация об их обновлении.
- Исправлено поведение кнопки проверки обновлений на соответствующем экране.
- Запрещено добавлять пустое пользовательское правило через вкладку последних действий.
- Добавлено цветовое выделение обновлённого содержимого на экране обновлений.
- Улучшено озвучивание элементов приватного браузера в TalkBack.
- Переработаны поля ввода и диалоги в разделе антитрекинга.
- Обновлены названия и диалоги для отчётов о сбоях и данных об использовании приложения.
- Добавлен поиск запросов по применённым правилам в последних действиях.
- Добавлена проверка вводимых данных на экране маскировки IP-адреса.
- Страница автоматически перезагружается после переключения защиты сайта в приватном браузере.
- Добавлена авторизация для локального прокси.
- Добавлена возможность удалять ненужные файлы
.hprof. - Добавлен экран ошибки обновления приложения для Android TV.
- Улучшено воспроизведение видео в плеере YouTube в фоновом режиме и в режиме «картинка в картинке».
Исправления
- Кнопка добавления разрешающего правила в подробностях запроса добавляла блокирующее правило для типа
$network. - Диалог отключения всех правил появлялся на экране пользовательских правил даже при пустом списке.
- Инструкция по установке сертификата не подходила для ColorOS.
- DNS-фильтры показывали
nullвместо времени последнего обновления. - Фаервол включался сам после выдачи системного разрешения на доступ к статистике использования.
- Повышенный расход батареи начиная с версии 4.12.
- Домен, разблокированный в DNS-фильтре, нельзя было заблокировать средствами журнала фильтрации.
- В статистике отображались некорректные поддомены и дублировались поддомены.
- Многие приложения переставали работать при активном AdGuard.
- Журнал последних действий сильно тормозил после обновления до 4.12.1 и не очищался мгновенно.
- Проблемы при редактировании расширений в языках интерфейса, отличных от английского.
- Пользовательские регулярные выражения в правилах блокировки рекламы и DNS-фильтрации ломались.
- Собственный DNS-сервер пропадал после импорта только что экспортированных настроек.
- Заголовок видео не сворачивался при нажатии кнопки поделиться в горизонтальном режиме.
- Включение AdGuard через плитку быстрых настроек закрывало панель уведомлений.
- Фильтры обновлялись без авторизации.
- При обновлении бета-версии приложение переходило на последний стабильный выпуск.
- Конфигурация не импортировалась по ссылке даже при совпадении версий.
- Правила дублировались в разделе применённых правил.
- Корневой сертификат AdGuard не переносился в системное хранилище кнопкой переноса.
- Пользовательские списки фильтров пропадали через некоторое время.
- Защита перезапускалась каждые несколько секунд при включённых HTTPS-фильтрации и FakeDNS.
- После редактирования пользовательского скрипта появлялось сообщение об ошибке.
- Переключатель в настройке расширений не реагировал на нажатие по названию настройки.
- После перезагрузки телефона в журнале не отображалась причина блокировки URL.
- На Android 10 и новее показывалось уведомление о возможных проблемах при активной точке доступа.
- Нельзя было добавить блокирующее правило с дополнительными модификаторами из последних действий.
- Собственный DNS-сервер не выбирался кнопкой сохранения и выбора.
- Фактический протокол DNS не совпадал с указанным на экране сведений о сервере после импорта настроек.
- Пустое место под панелью навигации при открытии редактора расширений.
- AdGuard не запускался после перезагрузки устройства.
- Некорректное отображение начальной настройки установки сертификата при импорте настроек по ссылке.
- Диалог режима интеграции открывался не всегда при первом запуске приложения.
- Поисковый запрос не отображался на экране последних действий при возврате из подробностей запроса.
- Кнопка перехода для DNS-провайдеров открывала браузер, но не сам сайт на Xiaomi TV Box.
- Сообщение о невозможности обновить сведения о лицензии не показывалось на экране лицензии Android TV.
- Сброс фокуса после нажатия кнопки обновления статуса на экране лицензии Android TV.
- Диалог о неустановленном сертификате показывался после установки сертификата через передачу настроек.
- Версия пользовательского фильтра не обновлялась после обновления самого фильтра.
- Обрезка текста, наложение заголовка и перекрытие содержимого клавиатурой в редакторе правил.
- Кнопка YouTube в плеере AdGuard перезапускала видео.
- На экране быстрых действий показывались уведомления фаервола и для заблокированных, и для разрешённых приложений при выбранном фильтре только заблокированных.
- Прокрутка пользовательских правил перекрывала другой элемент интерфейса.
- Фокус прокрутки уходил за пределы экрана при быстром пролистывании управления приложениями на Android TV.
- Не работала передача из YouTube Music в плеер AdGuard.
- Уведомление AdGuard выводило экран устройства из спящего режима.
- Приватный браузер не открывал другие приложения по ссылкам с веб-страниц.
- Редактор правил принимал любую непустую строку без проверки синтаксиса.
- Динамическая тема не применялась к приложению после закрытия приватного браузера.
- При казахском или киргизском языке системы AdGuard определял его как русский.
- Некорректное число заблокированных запросов в уведомлениях для языков с иероглифической письменностью.
DnsLibs (движок DNS-фильтрации)
- Обновлена DnsLibs до версии 2.8.45.
- Добавлена поддержка постквантовой криптографии.
- Добавлена возможность убирать
h3из параметраalpnзаписи HTTPS RR. - Повышена надёжность проверки доступности DoT-сервера.
- Улучшено обновление списка DNS-серверов без перезагрузки фильтров.
- Исправлено: не работало разблокирующее правило DNS.
- Исправлено: ответы системного сервера
system://иногда не принимались на Android. - Исправлено: отсутствовал сертификат AdGuard на некоторых сайтах.
CoreLibs (движок фильтрации)
- Обновлена CoreLibs до версии 1.21.38.
- Добавлена поддержка декодирования URL в модификаторе
$urltransform. - Добавлена поддержка косметических правил вида
example.org/path. - Добавлена поддержка нового модификатора
$reason. - Улучшено поведение Do Not Track.
- Устранена утечка DNS-запросов к
local.adguard.orgпосле включения защиты. - Фильтрация HTTP/3 включена по умолчанию в стабильных сборках, а также в бета- и ночных сборках.
- Исправлено: некорректная обработка серийного номера сертификата приводила к ложным срабатываниям CRLite.
- Исправлено: отсутствовал сертификат AdGuard при включённой проверке прозрачности сертификатов.
- Исправлено: сбросы соединений в CoreLibs 1.19.
- Исправлено: недоступность localhost в режиме ручного прокси.
- Исправлено: ошибка импорта пользовательского скрипта из-за метки BOM.
- Исправлено: нарушение внедрения скриптов при использовании FakeDNS в настройках прокси.
- Исправлено: некорректная обработка закрывающих тегов
scriptс пробелами. - Исправлено: неверное поведение
$generichideдля правил с областью действия по домену. - Исправлено: высокие задержки при фильтрации QUIC и HTTP/3 приводили к откату на HTTP/2.
Scriptlets (расширения JavaScript для фильтрации)
- Обновлены Scriptlets до версии 2.2.16.
- Добавлен новый скриптлет
prevent-innerHTML. - Улучшен скриптлет
fingerprintjs2– добавлена поддержка window. - В скриптлет
trusted-click-elementдобавлен параметр увеличения времени выполнения.
Полный журнал изменений опубликован на GitHub, там же принимаются сообщения об ошибках и предложения.