You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+23-2Lines changed: 23 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,10 @@
9
9
TrackerControl is an Android app that allows users to monitor and control the widespread,
10
10
ongoing, hidden data collection in mobile apps about user behaviour ('tracking').
11
11
12
+
TrackerControl can also route filtered traffic through a remote VPN endpoint using
13
+
its experimental WireGuard support, with built-in setup for Mullvad and IVPN and
14
+
support for custom WireGuard profiles.
15
+
12
16
To detect tracking, TrackerControl combines the power of the *Disconnect blocklist*,
13
17
used by Firefox, the *DuckDuckGo Tracker Radar* for mobile apps, and of our in-house blocklist, created *from analysing ~2 000 000 apps*! **To protect your privacy from your ISP, you can also optionally encrypt your DNS traffic using DNS-over-HTTPS (DoH).**
14
18
Additionally, TrackerControl supports custom blocklists and uses the signatures from [ClassyShark3xodus](https://f-droid.org/en/packages/com.oF2pks.classyshark3xodus/)/[Exodus Privacy](https://exodus-privacy.eu.org/) for the analysis of tracker libraries within app code.
@@ -24,13 +28,14 @@ Under the hood, TrackerControl uses Android's VPN functionality,
24
28
to analyse apps' network communications *locally on the Android device*.
25
29
This is accomplished through a local VPN server, to enable network traffic analysis by TrackerControl.
26
30
27
-
No root is required. Other VPNs or Android's "Private DNS" feature are not supported (due to Android limitations), but TrackerControl provides its own **Secure DNS (DNS-over-HTTPS / DoH)** feature to protect your DNS traffic. For users who want to combine tracker analysis with a remote VPN, TrackerControl also offers **experimental WireGuard support**, allowing filtered traffic to be tunnelled through a WireGuard endpoint of your choice.
31
+
No root is required. Other VPN apps or Android's "Private DNS" feature are not supported alongside TrackerControl due to Android limitations, but TrackerControl provides its own **Secure DNS (DNS-over-HTTPS / DoH)** feature and optional **WireGuard tunnelling** for users who want remote VPN routing.
28
32
By default, no external VPN server is used, to keep your data safe! TrackerControl even protects you
29
33
against *DNS cloaking*, a popular technique to hide trackers in websites and apps.
30
34
31
35
TrackerControl will always be free and open source, being a research project.
@@ -44,6 +49,22 @@ TrackerControl will always be free and open source, being a research project.
44
49
-[License](#license)
45
50
-[Citation](#citation)
46
51
52
+
## VPN Support
53
+
54
+
TrackerControl's built-in VPN remains local by default: it analyses and filters traffic on your device without sending traffic to an external VPN provider. The experimental WireGuard support adds an optional second step for users who also want remote VPN tunnelling after TrackerControl has applied its local tracker analysis and blocking.
55
+
56
+
The VPN tab supports three modes:
57
+
58
+
| Mode | What it does |
59
+
| :--- | :--- |
60
+
|**Mullvad**| Creates WireGuard profiles from a Mullvad account number, lets you choose a relay country, and stores only the account number and generated WireGuard profile data locally. |
61
+
|**IVPN**| Creates WireGuard profiles from an IVPN account ID, including CAPTCHA handling when IVPN requires it, and lets you choose a relay country. |
62
+
|**WireGuard**| Imports and manages custom WireGuard configurations from another VPN provider, your own server, or a workplace endpoint. |
63
+
64
+
When WireGuard tunnelling is enabled, TrackerControl still uses Android's VPN service for local filtering, then routes allowed traffic through the selected WireGuard endpoint. Secure DNS (DoH) is automatically paused when the active WireGuard profile provides DNS, because DNS queries are then handled through the WireGuard tunnel instead. Provider-generated WireGuard keys can be rotated from advanced settings.
65
+
66
+
This feature is experimental. Android only allows one active VPN service at a time, so TrackerControl cannot run alongside a separate VPN app.
67
+
47
68
## Download / Installation
48
69
*Disclaimer: The usage of this app is at your own risk. No app can offer 100% protection against tracking. Analysis results shown within the app might be inaccurate.*
49
70
@@ -100,7 +121,7 @@ TrackerControl is mainly designed to help you investigate the tracking practices
100
121
101
122
Mobile trackers rely on the sending of personal data over the internet. This is why tracking can be detected and analysed from apps' network traffic. This is the core functionality of TrackerControl. The advantage of this approach over tracker library analysis is that actual evidence of data sharing is gathered; by contrast, when analysing solely the presence of tracking libraries in apps, some of these libraries may never be activated by an app at run-time.
102
123
103
-
TrackerControl analyses network traffic locally on the device using DNS-based detection. TLS Server Name Indication (SNI) extraction is disabled by default because it requires connecting to tracker servers, leaking the user's IP address. SNI can be re-enabled from the advanced settings for research purposes.
124
+
TrackerControl analyses network traffic locally on the device using DNS-based detection. TLS Server Name Indication (SNI) extraction is disabled by default because it requires connecting to tracker servers, leaking the user's IP address. SNI is enabled only when Research mode is turned on for measurement purposes.
104
125
105
126
You analyse apps network traffic by following the steps within the app to enable the VPN. Consequently, TrackerControl keeps track of any contacted tracking domain. Note that you need to interact with apps of interest in order to make these apps share data with tracking companies over the internet.
Copy file name to clipboardExpand all lines: TODO.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,21 @@
1
1
# TODO
2
2
3
+
## Secure DNS battery and simple protection health
4
+
5
+
Secure DNS is currently Java-based and can make the phone warm while the screen is off. Do **not** make DoH a stronger default until its idle behavior is profiled and fixed.
6
+
7
+
Investigate:
8
+
- whether the local DNS proxy / DoH client stays active when there is no DNS traffic
9
+
- whether retries, circuit-breaker checks, network-change handling, or idle HTTPS connections cause wakeups while the screen is off
10
+
- whether DNS caching is effective enough to avoid repeated upstream DoH queries
11
+
- whether DoH duplicates work or conflicts with WireGuard-provided DNS
12
+
- whether system-app routing through TC/DoH is contributing to wakeups
13
+
14
+
Desired product direction after the battery issue is fixed:
15
+
- add a simple protection health screen showing tracker blocking, Secure DNS, WireGuard, Android Private DNS conflict, and battery/background permission status
16
+
- keep recommended defaults simple: low-battery tracker blocking by default; Secure DNS as a clearly explained stronger privacy option until its screen-off cost is low
17
+
- avoid exposing Rethink-style expert configuration unless it directly helps users recover from breakage
18
+
3
19
## ParcelFileDescriptor Race Fix
4
20
5
21
The VPN file descriptor can be closed by `stopVPN()` while native code in `jni_run()` is still using it, causing EBADF errors and VPN tunnel failures — typically triggered by network transitions (WiFi/mobile).
0 commit comments