Giter VIP home page Giter VIP logo

block-this's Introduction

Block This - a DNS based Ad Blocker for Android

Copyright (C) 2015-2017 Sava Georgiev. This program is free software.

You can redistribute it and/or modify it under the terms of the GNU General Public License version 3.0.

For more information on Licensing - please read the License file located in the repository.

Summary

Block This is a DNS/VPN based ad blocking & privacy app for Android, that blocks malicious or unwanted internet content by filtering DNS requests and redirecting them to 127.0.0.1 (localhost). It uses a dummy VPN client in order to go around the restrictions in Android and change the DNS settings without having root access. The backend behind the app is a DNS based on PowerDNS - an open source DNS management software working with MySQL as a datasource.

Contribution

If you wish to join the development please drop in a comment at https://forum.block-this.com or email me at [email protected].

Alternatively, you can just make a pull request here.

Installation

To get the latest release of Block This, go to:

https://block-this.com

The main logic that blocks the host names is contained within your own DNS server. You can setup one using PDNS (https://www.powerdns.com/). Once this is done, add the following in your app/src/main/assets/config.properties file. For testing the app you can use any valid DNS address (e.g. 8.8.8.8, 8.8.4.4) but ofcourse using a public DNS will not block any ads.

dns1=YOUR_DNS1_IP_ADDRESS
dns2=YOUR_DNS2_IP_ADDRESS

If you wish to run it locally and want to use fabric (https://fabric.io/) for issue tracking you will have to create your own app/fabric.properties file containing the following (optional):

apiSecret=YOUR_FABRIC_API_SECRET
apiKey=YOUR_FABRIC_API_KEY

In order for "Games" support section from the menu to work you can register with AppNext (https://www.appnext.com) and get an Api Key. Once this is done, add it to your app/src/main/assets/config.properties file (optional):

appNextApiKey=YOUR_APP_NEXT_API_KEY

Community

If you wish to join the conversation, please visit our official forums at:

https://forum.block-this.com

or the Google+ community at:

https://plus.google.com/u/0/communities/113434074801403849306

About

I created the app for my own convenience as I needed a privacy and ad blocking solution for my Android device, which I did not want to root. The app worked so well for me that I decided to put it on the Play Store. It had a huge success with almost 1 million downloads in just 2 months, but then it was taken down by Google. It is now hosted on my website as an APK. I open source it with the hope to get further developed and supported by the community.

Contact

For any questions or feedback you can contact me at https://savageorgiev.com or email me at [email protected]

block-this's People

Contributors

adityaanand1 avatar arafalov avatar bryant1410 avatar code-audit avatar ggsava avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

block-this's Issues

Autostart not working on Android 11

Probably some security feature they put in. Test device: K40 Pro Plus Redmi (Xiaomi). It has a "VPN Always On" setting under VPNs but before you login, it's not available.

Why not make a root app version? That would overcome any issues whatsoever. Like AdAway never turns off, but BlockThis allows more traffic through (like Google Adserver advertisements in browsers, but not in Apps). I think BlockThis! is better other than this little hickup.

Exploring ideas for a new app icon

Just want to throw out a few ideas for the app icon..

blockthisold

Potential areas that could use another look:

  • The Icon-to-Background size ratio is a bit off. The key is way too big. At a quick glance it almost doesn't even look like a key, but rather some abstract shape.
  • There should either be a shadow or not. Right now, there's a hint of a shadow which is only visible when you look very closely. If we're gonna go down that road (having a shadow), it should be well defined. Or not at all, nothing wrong with a flat icon. Going either way would be better than the current icon.
  • The color is nice. Down the line, we'd want to reinforce the same color throughout the app. I think the current color (#c55b5b) used in the logo will make a good primary color when we hopefully move to using material design.

Threw together some rough ideas:

Solid Shadow:
ic_launcher
Fading Shadow:
ic_launcher
No Shadow:
ic_launcher

What do you think?

Android Auto cannot be whitelisted manually

Wireless Android Auto cannot be found in the list of applications, to be whitelisted.
Can it be hardcoded? There is no real reason to block the Wireless Android Auto Wi-Fi connection.

list of sites showing ads

http://waptricks.sextgem.com (ads and redirecting)

http://maango.info (ads and redirecting)

https://dropapk.com/munh0ciu8h89 (ads , redirecting , vibration and pop up)

http://ul.to/9mfxlw6x (ads , redirecting , vibration and pop up)

https://dailyuploads.net/ifsksrv94c1r (ads , redirecting , vibration and pop up)

https://filescdn.com/fwy5vrgsysq7 (ads , redirecting , vibration and pop up)

https://uplod.ws/ny5w868j53k7 (ads , redirecting , vibration and pop up)

https://userscloud.com/7ww5ltgaf6kt (ads , redirecting , vibration and pop up)

http://hugefiles.net/4o2sy9b5gxnx (ads , redirecting , vibration and pop up)

Slow page load in Firefox Klar/Focus with Block This

I noticed an odd interplay between Firefox Focus (FFF) (or Firefox Klar in some regions) and Block This. When the latter is enabled, FFF loads pages incredibly slowly. They do load eventually, but it's a far cry compared to when Block This is disabled. I haven't noticed anything odd about other mobile browsers with Block This running.

Is it possible to block youtube ads?

Hi

The main thing I would want out of this app is to block youtube's video ads. Is this possible? I know most desktop PC browser adblockers successfully do it, but maybe it's not possible on an unrooted android.

DNS, remote servers, Pi-hole?

Hi there, firstly, this really looks great! Thanks for sharing it.

I had a few questions around the DNS implementation that I wondered if you could help with:

  1. Is there a reason why the DNS servers have to be remote? Would it not be possible to have the DNS server running as part of the app?
  2. If not, would you be interested in changes to Block This to make the DNS servers configurable in the app? So users could point them to ones they manage themselves?
  3. Related to the above, are you able to share how you implemented the ad-blocking DNS server? I'm quite interested in testing Pi-hole as a self-hosted DNS ad blocker, perhaps running on a VPS. Have you looked into it? Any pros/cons compared to your solution?

Thanks again,

Keyvan

Back-end block list

It took me a while to find out that a particular service was not down but blocked by the DNS filter of this app. Is there a place where we can see the back-end DNS filter list?

Permissions

Just curious: for what does an AdBlocker need the READ_PHONE_STATE permission? This makes the app suspicious to especially privacy-aware people (I got that response when recommending your app).

If it's for the "usual purpose" (i.e. to "background" on incoming calls, which the "official developer documentation" mentions it for): I don't see how that should make sense. An AdBlocker should work in the background anyway, and configuration/settings pages make no sound and play no video. So there's nothing to interfere with phone calls. And even if there were, there are other solutions available.

TL;DR: Would you consider removing that permission requirement?

Where is the blacklist located?

Where is the block-this blacklist located?

I tried searching for the blacklist in the source tree, but I didn't find it. A cursory search for URLs from where the addresses are fetched also fails to turn up anything.

Sound notice when BT gets closed

When Block This gets closed for any reason whatsoever, could you add a sound notice so I will know when this happens?

Thanks.

Following best practices...

So many things...

Java:

  • Use butterknife to remove findViewById bloat. Will need to change all activities a little bit
  • Use LeakCanary to make sure there are no leaks. (This just needs one method call in the Application class.)
  • Use Hugo for automatic logging
  • Use Timber as a better alternative to Log.v(...) .No need to define our own custom TAGs and we shouldn't be calling logging methods in the release build.

The above are just developer candy, no change will be perceived by the users.

And then there's the UI:

  • The app uses holo theme. Oh my god. Need to upgrade to material.
  • Use Material Dialogs
  • No need to go back to TeaserActivity in onBackPressed(). User has already seen it so there's no need to show it again. The best scenario would be just one screen, where we can turn the blocker on/off, along with a button that shows a dialog (that's automatically shown only on the first time. This is where your teaserActivity stuff will go)
  • Actually following material design would mean a complete redesign of the entire app from the ground up.

And we need to update gradle version, targetSdk, library versions etc. And there's so much more. My point is, there's a lot to be done and I'd like to get started on all of these.

I'll do the Java things first since it'll be quicker, then I'll work on the UI. Hopefully I'll be back with some screenies in a few hours.

Cant access the forums

Your connection is not private
Attackers might be trying to steal your information from forum.block-this.com (for example, passwords, messages, or credit cards). Learn more
NET::ERR_CERT_DATE_INVALID
?

Breaks Google Daydream VR

A fresh installation of Google Daydream gets stuck on the "Downloading VR Components" screen. Disabling Block This! lets Daydream complete this downloading step.

Update to 3.1 break my apps

Since the update to 3.1 i have had a few apps that stop to function when block-this! is enabled.
I have tried this on 5 different devices, Sony - Samsung and Mercer - all have the same symptoms.

  1. Some apps load, but then just hang.
  2. Some apps load but sections of the info is left blank - Bored Panda for instance some images don't load.
  3. YouTube for kids don't load any more until you disable Block-This!
  4. You Tube on my android 10 phone - Note 10+ now show ads again where it did not with the old version.

Any idea how to resolve this?

App still maintained?

Long time no commit – are you still maintaining this app, @ggsava? If so, I wonder if removing Crashlytics would be an option for you? Looks somehow strange if an app that should improve privacy itself comes with a tracker.

Block-this + Verizon Cellular Hotspot Tethering = :(

I've discovered that when I have Block-This installed I can't enable my Verizon hotspot functionality on my phone. When I uninstall Block-This, then reboot, the hotspot fires right up. Is there any way to exclude system functionality like the hotspot/tethering stuff (whitelist them)?
Thanks.

Security consern: why does the binary only available on separate resource?

Does the author alter the binary with a malware or there is another good reason why it is not published via github and\or f-droid? I've read news about removal from playstore, but there is a plenty of other apps left based on the same idea (fake VPN connection), so it raises concerns if there was another good reason for the removal, except that was because of the fact it was an adblock.

Reasoning behind adding multiple addresses

Greetings,

What's the reason behind these lines? Wouldn't the first one work?

.addAddress("10.0.2.15", 24)
.addAddress("10.0.2.16", 24)
.addAddress("10.0.2.17", 24)
.addAddress("10.0.2.18", 24)

Ad blocking not working anymore

Since last week, I noticed ads started appearing where I didn't have them before. In web pages, in apps, etc.

I tried stopping and restarting the app and my mobile without success. Sadly, it seems something has changed, and Block this is not effective anymore.

Do others have the same issue?

Firewall for apps

It would be nice if you can add features like Noroot firewall in it. Actually i wanted to block apps from connecting network.

exclude local domain names from beeing filtered

First I want to thank you for this great app. But I have a problem within my local network.
I have a local DNS server in my network which resolves local device addresses. My local devices have no publich addresses. With block-this running, I can't connect to these devices anymore, because all DNS requests were sent to your servers.

Is it possible to exclude local addresses from beeing filtered by block-this? Maybe a list to exclude (whitelist) domains would be great.

Block-This causing Gear S plugin APK to crash repeatedly

As per title since when I moved to the Samsung Galaxy S9+ (Exynos version with Oreo ITV firmware) as soon as I setup the pairing between a Gear S3 Frontier and the smartphone the Gear S plugin APK starts crashing all the time causing almost full time watch disconnection and being impossible ie. to download and install watchfaces!

It's not enough to whitelist APKs or disable the VPN.
It is MANDATORY to uninstall Block-This to stop the loop crash.

Please fix. :(

Autostart feature not working on Android 10

Hello friends,

the auto boot feature does not work (anymore?) - any idea how to fix it? I am willing to fix it when someone tells me where to look in the code 👍

kind regards

[Request] appear to apps to have watched ad

Is it possible to make it seem to the application that the ad successfully played? For example, if a game offers a reward for watching an ad, can you get the reward without the ad?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.