Improved Firewall functionality and on-the-fly DoH filtering are the highlights of AdGuard v4.4 for Android. After extensive testing, we are ready to introduce the new version to you.
Firewall on fire
We like to think that we make the Internet cleaner and more enjoyable for users. But we are not ashamed to admit that sometimes we can send annoying notifications ourselves. Users have reported that they find using Firewall inconvenient: there are just too many notifications. As a result, people are turning them off for good in the system preferences.
In response, we have improved Firewall functionality. Now you can customize and turn off firewall notifications for all applications or specific ones.
Don’t want to get notifications about Chrome connections? Open the notification shade, tap a notification about Chrome, and then tap Mute. All Firewall notifications for this app will be disabled.
Alternatively, you can go to Protection → Firewall → Notificationsand toggle off notifications for individual apps.
DoH requests be flying
With the updated filtering engine, CoreLibs, we can implement on-the-fly DNS-over-HTTPS (DoH) connection filtering. Our desktop apps have already gone this route and it seems to work fine. Why is this feature even necessary?
Before, if a user enabled DoH in their browser but not in AdGuard, we had to filter requests directly in the browser and send them to the unencrypted system DNS, which decreased security. Now, with on-the-fly DoH connection filtering, we can filter DNS requests in the browser without sending them to an unencrypted server.
You can find the new feature in Settings → General → Advanced → Low-level settings → Filter secure DNS.
We also fixed some minor bugs and updated UserscriptsWrapper and DnsLibs.
Changelog
Improvements
- Enable HTTPS filtering on the Chromite browser for free #4997
- Improved Developer Tools section #5173
- Add the "Nothing to export" snack when trying to export rules with empty User rules list #5176
- Added com.klook app to default HTTPS filtering exclusions #5143
- Include com.nekki.shadowfightarena to QUIC bypass packages by default #5158
Fixes
- The license key is not hidden #4496
- Fixed the translation on
it
locale #5180 - Autorun doesn’t work after rebooting Chromecast and Sony TV #5156
- Large battery consumption #4960
- Cache size grows quickly #5125
- App crashes when making changes on the Userscript state and returning back #5131
- App crashes when choosing the Indonesian language #5236
- DNS server settings reset after resetting the settings in DNS filters tab #5142
- Dialog about the certificate installation failure does not disappear after successful installation #5194
- Downloading the application update takes more than 400 mAh of battery capacity #5259
- Duplicates can be added to Websites allowlist using case difference #5037
- Error while exporting settings #5069
- Background images are blocked on com.opera.browser #5096
- Meross device pairing error (com.meross.meross) #4989
- Recent activity of the selected company with two components is not displayed #5067
- Remove (.) character for all DNS entries #4824
- Scroll area issue on the Browsing security screen #5195
- Scrollbar thumb goes behind the bottom menu in Recent activity #4901
- Snacks close due to minimizing the application #5018
- Some custom filter properties don’t update properly #5171
- Statistic cards on main screen doesn't fill full screen width #5118
- The popups are displayed in the system language, while the whole application is in English #5168
- The radio button state is not imported for the Bootstrap upstreams option #5239
- Update loader is not working correctly #5028
- Disabling via the notification shade will auto enable itself upon re-opening the app #5146
- With AdGuard protection enabled, the app reports that there is no Internet connection #5209
- Santander and Sainsburys Bank apps are breaking with HTTPS filtering on #5058
- Update progress bar has wrong colors #5308
CoreLibs (Filtering engine) updated to v1.14.59 #5316
Improvements
- Added on-the-fly filtering of DoH connections #198
- Added
GM.xmlhttpRequest
as alias ofGM_xmlhttpRequest
#1785 - Indicate that outbound proxy is used in the request processed event #1385
- Added support for passing host to outbound proxy #1386
- Added Firefox 121.0+ to the list of user agents, that natively support
:has()
#1840 - Added ECH parameters from intercepted DNS HTTPS queries #1794
- Improved HTML filtering performance #1855
- Added an option to use
|
as a separator in$permissions
#1850
Fixes
- Apply
$permissions
only todocument
#1856 - Cannot parse QUIC ClientHello split into two packets #1861
- VOT script doesn’t work in Google chrome #1665
- Request with Authorization header is not redirected #1851
- Support anti-DPI feature for Korea Telecom #1789
- Cookie rules with
[
and]
in the name are invalid #1843 - Cosmetic rules are not applied in some cases when AdGuard works alongside AdGuard VPN browser extension #1791
- One of the subdomains is not filtered due to different site certificates #1839
$all
modifier does not work correctly #1842mall.sk
content script is not injected #1834- Blocking regex rule that has escaped slash in a character class doesn’t work #1831
- Content script is not injected if there is a tag (with embed attribute) before doctype declaration #1825
$path
modifier doesn’t work with query params #1817$removeparam
on url with port redirects to url without port #1818android-hilfe.de
brakes website #1800- Cannot connect to wiki.cemu.info securely #1821
- AdGuard systematically crashes and freezes #1880
Scriptlets (JavaScript enhancement for filtering rules) updated to v1.10.25
Improvements
- Improved google-analytics, added
ga.q
property #355 - Improved google-ima3, added
OmidVerificationVendor
property #353 - Added compatibility with uBO's set-cookie scriptlet #332
- Added new scriptlet
href-sanitizer
#327 - Added new scriptlet
json-prune-fetch-response
#361 - Added new scriptlet
json-prune-xhr-response
#360 - Added new scriptlet
trusted-suppress-native-method
#383 - Added new scriptlet
no-protected-audience
#395 - Improved
set-cookie
, increased a possible numeric value #388 - Improved
trusted-click-element
, added support for finding selectors in shadowRoot #323 - Use some redirects resources as scriptlets as well #300
- Added possibility to allowlist scriptlets #377
- Improved
prevent-fetch
, addedcors
responseType #394 - Improved
set-cookie
, addeddomain
parameter #389 - Added new scriptlet
call-nothrow.js
#333 - Added new scriptlet
spoof-css
#317 - Added new scriptlet
trusted-create-element
#278 - Improved
set-cookie
, added more supported values #379 - Added new scriptlet
trusted-set-attr
#281
Fixes
- Fixed
set-constant
— setProxyTrap() #403 - Fixed
set-cookie
, do not encode a cookie name #408 - Fixed
set-local-storage-item
conversion,$remove$
param #404
UserscriptsWrapper updated to v1.2.23
DnsLibs (DNS filtering engine) updated to v2.5.25 #5306
Improvements
- Allowed specifying tcp-only and udp-only DNS upstreams #208
- Support passing hostname to outbound proxy instead of bootstrapping #197
- Improved handling of HTTPS RRType #215
- Restrict host normalization to DoH only #219
Fixes
- Cannot use DoH DNS server that use HTTP/1.1 after updating to v4.3 #216
- Use Happy Eyeballs for IPv4/IPv6 in DoH #217
- Adblock syntax rules with FQDN doesn’t work #210