Any ad blocker that works across a whole phone ends up seeing a list of every address your apps ask for. That list says a lot about you. So the first design decision we made was where that list is allowed to live.
What an ad blocker sees
Before an app loads anything, it asks for an address: the name of a server, turned into a number the phone can connect to. A news app asks for its own server, then for the servers of its ad networks and analytics companies. A banking app asks for the bank. A health app asks for whatever it talks to.
To block ads this way, something has to look at each of those requests and decide. Whoever makes that decision sees the requests. There's no way around that part. The only choice is where the decision happens.
The two common ways to do it
One way is to send your lookups to a filtering server run by the company that makes the blocker. It's simple to build and easy to update, and it means that company receives a stream of the addresses your phone looks up.
The other way is to make the decision on the phone. The block lists are downloaded to the device, every request is checked there, and the answer never has to leave. That's the way AshtaLok works.
What “on the device” means in practice
- Blocking decisions are made on your phone, against lists stored on your phone and the rules you wrote.
- Addresses that are allowed still need to be looked up. AshtaLok does that over encrypted DNS, with a provider you choose, the same way your phone would look them up without AshtaLok. Those lookups don't pass through an AshtaLok server.
- Recent activity and statistics are kept on the phone, encrypted, so you can see what was blocked and why. You can clear them whenever you like, and there's no copy elsewhere to worry about.
- The password manager keeps its vault on the phone too.
Android makes AshtaLok use its VPN setting to do this, which is why you'll see a key icon in the status bar. It isn't a VPN service. Your traffic isn't sent anywhere new and your location doesn't change.
What it costs us
Deciding on the device isn't free. Lists have to be small and fast enough to check on a phone without draining the battery. Updates arrive as list downloads rather than instant server-side changes. And when something breaks, we can't look it up on our side, because there's nothing on our side to look at.
That last one shaped how support works. When you report a problem, the app writes a report, shows you all of it, and hands it to your own email app. It includes things like your app version, phone model and settings. It doesn't include the addresses you visited, your history or your passwords. You decide whether to send it.
What we ask you to check
You shouldn't have to take our word for any of this. Once AshtaLok is released, the encrypted DNS provider you choose is shown in the app, recent activity shows every block and the rule that caused it, and the support report shows you exactly what it would send. If something here doesn't match what you see, we want to know.
