FORUMS
Remove All Ads from XDA

[APP][5.0+] DNS66 - Open Source Host/Ad-Blocker without Root

231 posts
Thanks Meter: 726
 
By julian_klode, Senior Member on 25th October 2016, 06:45 PM
Post Reply Email Thread
Hey,

I am the developer of DNS66, a free (GPL-3) host and ad blocker for Android 5.0 and newer. It utilises Android's VPN service to redirect DNS traffic to the local app, and filters out any blocked hosts from reaching the servers (instead responding directly with "non-existing domain").

As it only intercepts DNS traffic it is a fairly lightweight solution and does not seem to have any measurable effect on the battery life. Given that it only blocks entire host names, it cannot block as detailed as some other ad blockers. But it still catches almost all ads on the web.

The project can be found in the https://github.com/julian-klode/dns66 project on GitHub and you can directly install it via F-Droid: https://f-droid.org/app/org.jak_linux.dns66, the personal fdroid repository at https://jak-linux.org/fdroid/repo (updated immediately when there is a new release), or download the apk from the github releases page: https://github.com/julian-klode/dns66/releases (or use the fdroid repository listed on github

Android 7 notice: The DownloadManager in Nougat and newer fails to download files when a VPN service is active. This affects Play Store updates and installs, and downloads in Chrome, amongst other things. Versions 0.1.3 contains a workaround for the Play Store, but other apps might still fail to download unless the bug in Android is fixed. See https://code.google.com/p/android/is...tail?id=213341 and https://github.com/julian-klode/dns6...ment-256695500 for further details.

Not working? For blocking issues, send me logcat via E-Mail (jak@jak-linux.org). If it worked before, send a logcat for the old version as well. Note that not all ads can be blocked via DNS, so partial ad blocking is usually not a bug - If you see requests in the logcat, that means DNS66 works correctly, and I'm not going to investigate further. Issues in UI elements and stuff like that you can just report directly (especially in preview builds).

In-App Ad Blocking: Might or might not work. Seems Google worked around VPNs blocking the ads or something. In-Browser blocking works fine.
The Following 125 Users Say Thank You to julian_klode For This Useful Post: [ View ] Gift julian_klode Ad-Free
 
 
25th October 2016, 08:52 PM |#2  
Senior Member
Thanks Meter: 134
 
More
Hi, saw this on F-Droid the other day.

Sounds nice, but is there any benefit to using it if I'm already rooted and have AdAway?

Also, if there is, will I have to change DNS servers? Because I have DNSCrypt on all my devices now.


Here's the link to the github since you can't post links.
https://github.com/julian-klode/dns66
The Following 6 Users Say Thank You to paed808 For This Useful Post: [ View ] Gift paed808 Ad-Free
25th October 2016, 09:25 PM |#3  
OP Senior Member
Thanks Meter: 726
 
More
Quote:
Originally Posted by paed808

Hi, saw this on F-Droid the other day.

Sounds nice, but is there any benefit to using it if I'm already rooted and have AdAway?

I don't think so right now (maybe one advantage is that you don't need to modify /system and can retain OTA this way?). In the future, you might also be able to block/allow hosts via wildcards, so you can say: "Allow **.example.com" for example (that needs to be implemented first, but at least it's possible here).

Quote:
Originally Posted by paed808

Also, if there is, will I have to change DNS servers? Because I have DNSCrypt on all my devices now.

If you disable the DNS servers in the DNS tab, it should pick up the DNSCrypt proxy. Or you can manually remove the entries there and add the DNSCrypt proxy. I'd love to have native DNSCrypt support, but there's still a bit to go: I could embed the DNSCrypt proxy, but that looks sort of ugly. I'd love to have a Java implementation of the protocol.
The Following User Says Thank You to julian_klode For This Useful Post: [ View ] Gift julian_klode Ad-Free
25th October 2016, 09:41 PM |#4  
Grep_The_Truth's Avatar
Junior Member
Thanks Meter: 6
 
More
Currently DNSCrypt requires root to function. If you could get it to work on non-rooted devices using your VPN settings trick that would be revolutionary for DNSCrypt and unrooted android users!
25th October 2016, 10:18 PM |#5  
OP Senior Member
Thanks Meter: 726
 
More
Quote:
Originally Posted by Grep_The_Truth

Currently DNSCrypt requires root to function. If you could get it to work on non-rooted devices using your VPN settings trick that would be revolutionary for DNSCrypt and unrooted android users!

When I fix dns66 to allow proxies on ports other than 53, it should easily be possible to run dnscrypt-proxy as a non-root user and combine that with dns66. I mean, that's basically the only reason dnscrypt needs root: Android does not handle DNS servers on non-standard ports.
The Following User Says Thank You to julian_klode For This Useful Post: [ View ] Gift julian_klode Ad-Free
27th October 2016, 05:51 AM |#6  
Senior Member
Flag Hong Kong
Thanks Meter: 69
 
More
Hi, saw this via reddit and downloaded. So far so good. Am having to use an unrooted phone at the moment because of work MDM requirements and adblocking was one of the biggest thing I was missing. Your app seems to be running pretty well. Haven't noticed any major speed decrease.

One thing I have noticed though is that you have to turn the VPN off to download Play store apps and updates. Thanks.
27th October 2016, 10:09 AM |#7  
OP Senior Member
Thanks Meter: 726
 
More
Quote:
Originally Posted by browngeek

Hi, saw this via reddit and downloaded. So far so good. Am having to use an unrooted phone at the moment because of work MDM requirements and adblocking was one of the biggest thing I was missing. Your app seems to be running pretty well. Haven't noticed any major speed decrease.

One thing I have noticed though is that you have to turn the VPN off to download Play store apps and updates. Thanks.


Are you running Nougat? Seems Nougat has a bug with downloads while VPNs are enabled ...
The Following User Says Thank You to julian_klode For This Useful Post: [ View ] Gift julian_klode Ad-Free
27th October 2016, 10:13 AM |#8  
Senior Member
Flag Hong Kong
Thanks Meter: 69
 
More
Quote:
Originally Posted by julian_klode

Are you running Nougat? Seems Nougat has a bug with downloads while VPNs are enabled ...

Yep, running Nougat.
27th October 2016, 12:51 PM |#9  
jerryn70's Avatar
Senior Member
Thanks Meter: 190
 
More
Tight competition is coming

Everything works fine.

Now it needs some options like, different types of filters, whitelist option, ad block count, firewall and malware protection, advance protection option to block youtube and similar ads etc. And simple UI like adclear
27th October 2016, 11:24 PM |#10  
OP Senior Member
Thanks Meter: 726
 
More
Quote:
Originally Posted by jerryn70

Tight competition is coming

Everything works fine.

Now it needs some options like, different types of filters, whitelist option, ad block count, firewall and malware protection, advance protection option to block youtube and similar ads etc. And simple UI like adclear

I'm still curious what you mean with simple UI like adclear. Even adding a filter (white or blacklist) for apps would make the whole UI a whole lot more complicated. Because, currently it has 3 clearly defined sections: One for starting it, one for controlling which hosts are allowed, and one for controlling DNS servers.

Let's assume I want to add whitelist for apps. I have to replace the hosts section with a filtering section. But then I can only reasonably implement whitelisting for app, not blacklisting. Meaning that some items (hosts) can have 3 options (allow/deny/ignore), whereas others (apps) can have 2 (allow/deny). Heck, I might even need a different name than allow and deny for apps (to be fair, I do have a hardcoded app whitelist right now to work around a bug in Nougat that prevents downloads [and thus play store] from working). But that's not all: We cannot represent it with the other filters, as the other filters implement a priority list, whereas app whitelisting ignores any other filters (the apps completely bypass the VPN service). But adding another tab with a list of whitelisted apps does not really make it intuitively clear how that lists relation to the "normal" filtering list is.

Almost every new feature will make the UI more confusing. Some don't - for example, IP based blocking or domain based blocking (**.example.com) generally have the same options as hostname based blocking. But if we add new things like app filtering that partially overlaps with other stuff, we're in for trouble.
The Following 4 Users Say Thank You to julian_klode For This Useful Post: [ View ] Gift julian_klode Ad-Free
28th October 2016, 06:24 AM |#11  
jerryn70's Avatar
Senior Member
Thanks Meter: 190
 
More
Quote:
Originally Posted by julian_klode

I'm still curious what you mean with simple UI like adclear. Even adding a filter (white or blacklist) for apps would make the whole UI a whole lot more complicated. Because, currently it has 3 clearly defined sections: One for starting it, one for controlling which hosts are allowed, and one for controlling DNS servers.

Let's assume I want to add whitelist for apps. I have to replace the hosts section with a filtering section. But then I can only reasonably implement whitelisting for app, not blacklisting. Meaning that some items (hosts) can have 3 options (allow/deny/ignore), whereas others (apps) can have 2 (allow/deny). Heck, I might even need a different name than allow and deny for apps (to be fair, I do have a hardcoded app whitelist right now to work around a bug in Nougat that prevents downloads [and thus play store] from working). But that's not all: We cannot represent it with the other filters, as the other filters implement a priority list, whereas app whitelisting ignores any other filters (the apps completely bypass the VPN service). But adding another tab with a list of whitelisted apps does not really make it intuitively clear how that lists relation to the "normal" filtering list is.

Almost every new feature will make the UI more confusing. Some don't - for example, IP based blocking or domain based blocking (**.example.com) generally have the same options as hostname based blocking. But if we add new things like app filtering that partially overlaps with other stuff, we're in for trouble.

No prblm just do what you can do for your app
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes