AdGuard for Android v2.12.223


Staff member
v2.12 is filled to the brim with new features. New filtering engine takes ad blocking quality and performance to a new level, improved notification settings and automation options will make the communication with the app easier, and freshly added DNS functionality will satisfy even the most demanding of users.

Consider this version as a bridge to the big 3.0 release which surely come soon, with even more cool stuff!

[Added] Integration with a completely new filtering engine (CoreLibs) #1869

We have been working hard on integration with CoreLibs for a long time, and we are extremely proud and happy to finally switch to it. The importance of it has been mentioned before multiple times, including a post in our Blog. We recommend reading it for more details, but if you only want a brief summary, here it is: CoreLibs is a cross-platform filtering engine that will substitute previously used platform-specific engines. Thanks to it, the performance rate will increase drastically (twofold for AG for Android, according to our tests!). The unified filtering engine also means shorter development cycles, we no more need to account for the nuances of this or that OS. And finally, many features that only existed for one OS can now be easilly transfered to AG products for other platforms. So expect things like Stealth Mode on Android!

[Added] Self-hosted automatic crash reporting system to catch the app crashes #1908

New filtering engine (see above: CoreLibs) means that there may be more crashes than usual, and to address them quickly we introduce integration with automatic crash reporting system - Sentry. It will automatically send crash reports with all the information that developers need to fix the problem. For more details on what exactly is being sent, read our Privacy Policy. Just have a look at how many issues have been dealt with already thanks to it:

  • [Fixed] Crash when running the TCP/IP stack #1984
  • [Fixed] Crash caused (possibly) by a huge number of apps installed #1659
  • [Fixed] Crash on opening app's settings with Assistant #1833
  • [Fixed] Crash if protection fails to stop in 60 seconds #1927
  • [Fixed] Crash: `java.lang.SecurityException`: Destination must be on external storage #1978
  • [Fixed] Crash: The specified child already has a parent #1956
  • [Fixed] Crash: Unable to import null to preferences #1987
  • [Fixed] RuntimeException: The TCP/IP stack has finished its work unexpectedly #1970
  • [Fixed] Timeout crash due to slow Magisk initialization #1939
And you can help us to track down and fix even more, so please keep it enabled if you are on the beta update channel.

[Added] Notification channels #1561

This is something that will only be available to users of Android 8 and newer. We have divided our notifications into six categories: Protection Status, License Status, Updates, Outbound Proxy, Firewall and Other. You can not only enable/disable each category separately in the system notification settings, but also manage each of them by tapping on the category name. This opens wide door for customization. Depending on what is important for you and what is not so much, you can, for example, turn some of them silent while keeping the sound for the rest.

[Added] Long press app shortcuts #1111

Taking advantage of the feature available to users of Android 7.1+, we add long tap shortcuts. As it is obvious from the name, you just need to tap and hold on the app icon to bring up a list of fast actions. Among them are toggling the protection status, fetching AdGuard Assistant or checking for updates.

> A note — you can drag any of these options to create a widget.
There are also two smaller buttons for opening app’s system settings and creating an AG widget, respectively.

[Added] Automation settings (Tasker, AutomateIt, etc) #1896

[Added] Extended Tasker API: proxy settings #1972

Hopefully, you’ve already had a chance to test the new tasker API. This beta will give you something new to play with: proxy settings. Two new actions become available: `proxy_state` and `proxy_default`. The first one enables/disables the outbound proxy, the latter sets any of the previously configured proxies as default. More detailed description of these actions is in our KB article.

A lot of users asked us about ways to automate some of AdGuard’s functions, like disabling protection when a certain app gets launched. Finally, we deliver, and the in-depth guide to automating AdGuard is already available in our Knowledgebase.

[Improved] DNS functionality #1831

There are two different improvements hiding behind one task here. First one is, we have upgraded DNSCrypt proxy to version 2. It is a general improvement, v2 is superior to v1 in speed and security. The other change is a bit more interesting: we’ve added “DNS over HTTPS" (DoH) support. This is an experimental protocol that is more secure due to increased protection against things like eavesdropping and man-in-the-middle attacks. You can easily find more technical information about DoH on the internet, but if you don’t want to bother just trust us: it is a nice thing to have :)

[Added] More DNS providers added to the “known by default" list #1811

The more the better, right? Right! This includes such popular providers as Cloudflare Public DNS, FreeDNS and many others. Find one that suits you best!

  • [Added] com.alseda.ideabank app - add to the HTTPS filtering exceptions #2082
  • [Changed] Protection startup timeout is not used anymore when the VpnService requires preparation #1934
  • [Changed] `pref.vpn.disable.reconfiguration` is now checked for all Android versions 7+ #1918
  • [Changed] If configured, outbound proxy must be used even if ad blocking is disabled for an app #1959
  • [Fixed] Fix DnsCrypt parse scripts #2072
  • [Fixed] Adguard does not pause itself properly when a third-party VPN is started #1954
  • [Fixed] AdGuard is disabled after network change event #1846
  • [Fixed] AdGuard is not capturing the mobile data usage correctly #1856
  • [Fixed] AdGuard misbehaves when it's set as always-on and it receives a connectivity change event #1844
  • [Fixed] AdGuard protection is not restored after being revoked by another VPN #1944
  • [Fixed] Unable to access internet with DNSCrypt enabled #1924
  • [Fixed] AdGuard does not use the fallback DNS server when the primary server times out #2042
  • [Fixed] Protection doesn't restart when changing mode of HTTPS filtering #2011
  • [Added] Bulk change option for “HTTPS filtering" preference #2010
  • [Added] A checkbox that disables Assistant and Filtering Log #1808
  • [Added] "Terms of Use" step when the app is started for the first time #1890
  • [Added] Marketing consent checkbox to the "Request trial" dialog" #1886
  • [Added] Bulk edit option for ad blocking preference #1974
  • [Added] Information about non-filtered connections to the filtering log #1730
  • [Added] A custom file picker #1935
  • [Added] Add "Enable all" and "Disable all" to User Filter selection options #1925
  • [Added] A warning about moving the certificate to the system store #1824
  • [Added] A permanent notification when HAR, pcap or "record everything" logging level is enabled #1450
  • [Changed] User is now asked for confirmation before importing the settings file #1901
  • [Changed] HTTPS filtering warning is not showed anymore on Android 7+ when the certificate is in the system store #1855
  • [Changed] “Update available" notification made permanent #1921
  • [Changed] Hide export option when User filter is empty #1995
  • [Fixed] "I agree with Terms" button is not visible if scale is enlarged in Android settings #2036
  • [Fixed] The toggle button icon missing from the notification drawer on Huawei P10 Premium #1996
  • [Fixed] Send feedback doesn't save screen state after rotating #2080
  • [Fixed] Bug in the AppsManagement screen #2101
  • [Fixed] App UI is distorted in Arabic #1945
  • [Fixed] AdGuard Notification Separator/Dot Size Issue on Samsung #1826
  • [Fixed] User login/password is missing from the HTTP proxy settings #1872
  • [Fixed] Wi-Fi icon disappearing when AdGuard is restarted #1861
  • [Added] Add Joey for reddit to browser list #2067
  • [Added] An option to reset HTTPS filtering's whitelist or blacklist to default #1707
  • [Added] Hindi [hi-IN] localization #1998
  • [Added] An option to renice the AG process priority #1812
  • [Added] A new parameter for web reporting tool integration #1948
  • [Changed] Remove comments from HTTPS white/black list for CL configuration #2044
  • [Changed] Start using ProcessHealthStats instead of scanning proc-stat for calculating AdGuard's own battery usage #1967
  • [Changed] `` is now used for the website links #1875
  • [Changed] Amazon AppStore build got rid of #1893
  • [Changed] The way conflicting apps are being detected has been changed #1823
  • [Changed] Translations moved from Spanish [es-ES] to Spanish [es] locale #1900
  • [Changed] Users with an active subscription will not be notified anymore about the upcoming license key expiration #2105
  • [Fixed] Certificate moved to the system store is not accepted on Android 8.1 #2108
  • [Fixed] A few CoreLibs bugs
  • [Fixed] Samsung Pay in South Korea won't work when any VPN is running #1209
  • [Fixed] The app hangs when press cancel button in bulk change setting of apps management #2056
  • [Fixed] HTTPS whitelist entries can't be deleted if there is a request in search box #2041
  • [Fixed] HTTPS whitelist entries not saving #2026
  • [Fixed] Importing a backup from the stable version breaks DNS settings #2034
  • [Fixed] Compatibility issues
  • [Fixed] AdGuard can't detect when certificate was removed using Android settings #1830
  • [Fixed] AdGuard crashes when launching Assistant on Android 4.2.2 #1842
  • [Fixed] Can't export User Filter on Android 8.1.0 #1865
  • [Fixed] Some rules in the User filter keep working after being disabled #1881
  • [Fixed] Error while importing settings #1955
  • [Fixed] Slow initialization of Magisk upon the device boot on Samsung S9 #1852
  • [Fixed] Moving the certificate does not work with Magisk #1928
  • [Fixed] Moving the certificate to the system store does not work on some devices #1827
  • [Fixed] NullPointer exception in the `onTrafficChanged` method #1938
  • [Fixed] T-Mobile counts traffic as Tethering when VPN is active #1741
  • [Fixed] The AdGuard app is filtered in the manual proxy mode #1958
  • [Fixed] AdGuard process kills itself unexpectedly #1887
  • [Improved] Battery stats are counted properly now #1915

This build on Github
Direct download


New Member
Appears that this version has notifications marked with higher priority? In the past notifications wouldn't show in the actual bar, but would in pulldown. Can't seem to get back to that state (always shows in top bar or shows nothing anywhere).


Staff member
@esheesle go to AdGuard side menu settings - general - notifications and set all notifications as you need.