tvsweep Privacy Policy
Last updated: 2026-10-24
tvsweep is a phone app (Android and iOS) that tidies up an Android TV or Google TV over your home Wi‑Fi. This policy explains what the app keeps on your phone, what it sends to our server and why, who else processes it, how long we keep it, and what you can do about it.
Short version: there is no account, no advertising, no analytics SDK and no advertising ID. The app talks to your TV on your own network. Our server receives the technical names of the apps on your TV and your TV's brand, model and Android version so it can describe them to you. Everything else is either optional (anonymous before/after reports, off by default) or needed to confirm your one-time purchase. We do not store IP addresses, and we cannot tell who you are from what we receive.
1. Who is responsible
The data controller is:
makeCloud Tomasz Jurdziński (sole proprietorship)
ul. Orlego Lotu 4/35, 03-982 Warszawa, Poland
NIP (tax ID): 4980206361
E-mail: support@tvsweep.com
Website: https://tvsweep.com · API: https://api.tvsweep.com
2. What stays on your phone only
The following is stored only on your phone and never sent to us. It is deleted when you uninstall the app, or earlier when you use "Forget this TV" (and, with a separate confirmation, delete its backup).
- Remembered TVs: a hashed form of the TV's serial number (we never store or send the serial number itself), the TV's name, brand, model, Android version, build fingerprint, its last address on your local network, the connection method and the date you last connected.
- ADB pairing keys: the key pair your phone uses to connect to the TV, kept in the phone's secure storage (Keychain / Keystore).
- Backups and change history: which apps were on or off before each change, settings, Private DNS state and background blocks, so that every change can be undone. You can export a backup yourself through the share sheet; what you do with that file is up to you.
- TV health measurements, DNS journal and custom DNS hosts you typed in.
- Cached descriptions of apps, downloaded from our server so the app works offline.
- Your settings and consents, including whether anonymous reports are on.
- Your purchase entitlement: a signed confirmation from our server, the store transaction identifier and dates, in the phone's secure storage.
The app never sends your Wi‑Fi network name, the TV's or phone's IP address, MAC addresses, the TV's serial number, your Google account, file names from the TV, or the hosts of a custom DNS provider you typed in.
3. What the app sends to our server, and why
All communication with api.tvsweep.com is encrypted (HTTPS).
3.1 The random install ID
On first use the app registers with our server and receives a random install ID (a device token, plus a short public form of it shown to you as a "support code"). Registration sends the platform (Android or iOS), the app version and your language; every later request carries the install ID, app version, platform and API format.
The install ID is random. It is not derived from or tied to your name, e-mail, phone, Google or Apple account, store account or advertising ID. It identifies one installation of the app, not a person, and we have no way to connect it to you. We use it to:
- apply the fair-use limit on new package evaluations per installation,
- link your one-time purchase to your installations so it can be restored and the device limit applied,
- let you delete the reports and feedback sent from this installation,
- prevent abuse of the server.
Legal basis: performance of the contract (GDPR Art. 6(1)(b)). We store the token only as a hash. Kept while the installation uses the service.
3.2 Describing the apps on your TV
To tell you what a pre-installed app does and what you would lose without it, the app sends our server the technical package names of the apps on your TV (up to 250 per request) together with your TV's brand, model and Android version and your language.
Package names, TV brand and model and Android version are data about software and hardware, not about you. Known names are answered from our shared knowledge base, which is not linked to any installation. Descriptions for new names are generated, and all descriptions are translated, with the help of an AI service that receives only the package names, the TV brand and model and the Android version – nothing about you or your installation. No models are trained on anything you send.
A temporary ticket linking the request to your install ID is kept for 10 minutes so the app can collect the result; a daily counter of new names per installation (fair-use limit) is kept for 30 days. The TV brand, model and Android version are also sent, without the install ID, when the app identifies a TV, so we can show model-specific notes.
Legal basis: performance of the contract (Art. 6(1)(b)).
3.3 "Report wrong description" (only when you send one)
If you tell us a description is wrong, we receive: the package name, the reason you picked, which screen you were on, your TV's brand, model and Android version, your language, the time and – only if you choose "Other" – an optional free-text comment of up to 200 characters. Please do not put personal details in the comment; we cannot filter them out and we do not need them.
Legal basis: our legitimate interest in correcting the descriptions (Art. 6(1)(f)). Reports are kept until we have reviewed them and deleted 14 days after review. You can delete them earlier in the app (section 7).
3.4 Anonymous before/after reports (off by default)
Only if you tick the box on the first-connection screen, or turn it on later in Settings → Privacy, the app sends a report after each clean-up: TV brand, model and Android version, app version, session time, before/after numbers (number of apps, how many enabled, RAM, swap and storage usage, number of background apps), the actions performed (which package, result, MB freed), error codes and whether a backup was restored. Any other field is dropped by the server before storing.
Legal basis: consent (Art. 6(1)(a)); you can withdraw it at any time in Settings, which also deletes reports still waiting on the phone. Raw reports linked to your install ID are deleted 12 months after they are aggregated; aggregated statistics per TV model and per package contain no install ID and are kept.
3.5 Your one-time purchase
When you buy, restore or unlink the one-time unlock, the app sends our server the store (Google Play or App Store), the product identifier, the proof of purchase (a Google Play purchase token or an Apple transaction identifier), whether the store environment is production or test, the app version and the platform. We verify the proof with Google or Apple and store the purchase record (store identifiers, status, dates), which installations it is linked to, and the notifications the stores send us about refunds, revocations and pending payments.
We do not receive or store your name, e-mail, payment details or store account identifier. Payment itself happens in Google Play or the App Store under their terms.
Legal basis: performance of the contract (Art. 6(1)(b)). Purchase records and the store tokens needed to re-check their status are kept for as long as needed to restore your access – that is, for as long as the app is offered.
3.6 Catalogues
The app downloads the action catalogue, the list of Private DNS providers and translated texts from our server. These requests carry your install ID and the headers in 3.1, but we store nothing from them.
3.7 IP addresses and security log
Like any internet service, our server sees your IP address while a request is being handled, and so does Cloudflare, which sits in front of our server (section 4). We do not store IP addresses: not in our database, not in our security log, and our proxy keeps no access log for the app's routes. For requests that do not yet carry an install ID, a hashed form of the address is held in memory only for rate limiting and discarded. The security log (rejected or suspicious requests, exceeded limits) records the type of event and the install ID, for 90 days.
Legal basis: security and abuse prevention (Art. 6(1)(f)).
3.8 Crash and error reports (Sentry)
Store builds of the app send crash and error reports to Sentry automatically. A report contains the type and (masked) message of the error, the stack trace, recent navigation steps (screen names without parameters), HTTP method, status and host for requests to *.tvsweep.com only, the phone's model and manufacturer, OS version, language, time zone, memory and storage figures, the app version and whether demo mode was on. Sentry also counts sessions ("crash-free rate").
Before sending, the app removes user and request data and masks IP addresses, MAC addresses, tokens, keys, certificates, e-mails, URLs, file paths, package names, DNS hosts and serial-number-like strings. Sentry does not store the sending IP address. No screenshots, view hierarchy or session replay are recorded. Our server sends its own error reports to a separate Sentry project with the same rules (no IP, install ID, cookies or request bodies).
Legal basis: our legitimate interest in keeping the app stable (Art. 6(1)(f)). Reports are stored in Sentry's EU region (Frankfurt) and deleted in under 30 days. There is currently no switch in the app to turn crash reports off.
3.9 What the TV does during a DNS test
When you change Private DNS, the app runs a connectivity test on the TV: the TV resolves a random test name under dnsotls-ds.metric.gstatic.com and fetches connectivitycheck.gstatic.com/generate_204 (Google's standard connectivity-check hosts, the same ones Android uses). The phone and our server are not involved, and we learn nothing from it.
4. Who else processes the data
| Recipient | What they get | Role and location |
|---|---|---|
| OVH – virtual server hosting api.tvsweep.com, our database and queues | everything in section 3 | processor; data centre in Poland |
| Cloudflare, Inc. – DNS, reverse proxy and bot/abuse protection in front of api.tvsweep.com and tvsweep.com | all traffic in transit, including your IP address and request headers | processor; US company with a worldwide network; keeps its own edge logs under its retention rules |
| Sentry (Functional Software, Inc.) | crash and error reports as described in 3.8 | processor; EU data region (Frankfurt) |
| Better Stack | uptime checks of our server and incident notifications to us; no user data | processor (monitoring) |
| Google LLC – Google Play Billing, Play Developer API and purchase notifications | your purchase on Google Play; our server sends the purchase token and product ID for verification | independent controller for payments under Google's terms |
| Apple Inc. – StoreKit, App Store Server API and notifications | your purchase on the App Store; our server sends the transaction identifier for verification | independent controller for payments under Apple's terms |
We do not sell data and do not share it with advertisers. The AI service used for package descriptions (section 3.2) receives no personal data and is therefore not listed here.
5. Transfers outside the EU/EEA
Our server and database are in Poland and Sentry data is stored in Frankfurt. Cloudflare is a US company whose network processes traffic worldwide; this transfer is covered by the EU‑US Data Privacy Framework, under which Cloudflare is certified, and by the Standard Contractual Clauses in its data processing terms. Contact us for details of the safeguards.
6. How long we keep data
| Data | Retention |
|---|---|
| Install ID (token, hashed) and registration data | while the installation uses the service |
| Package lookup ticket (install ID, names, brand) | 10 minutes |
| Daily per-installation evaluation counter | 30 days |
| Shared knowledge base (package names, descriptions, first-seen TV brand/model) – not personal data | kept; not linked to any installation |
| Wrong-description reports | until reviewed, then 14 days |
| Raw before/after reports (with install ID) | 12 months after aggregation |
| Aggregated statistics (no install ID) | kept |
| Purchase records, store tokens, installation links, store notifications | as long as needed to restore access (while the app is offered) |
| Security log (event type, install ID; no IP) | 90 days |
| Crash and error reports (Sentry, EU) | under 30 days |
7. Your rights and how to use them
Under the GDPR you can ask for access, rectification, erasure, restriction and portability, object to processing based on legitimate interest, and withdraw consent at any time without affecting earlier processing.
We hold no name, e-mail, account or other detail that could tell us which install ID belongs to you, and we do not keep such information to be able to. Under GDPR Art. 11 we therefore cannot identify you in our data, and cannot look up or hand over "your" records on request. What you can do yourself:
- Settings → Privacy → "Delete my data from the server" deletes the before/after reports, wrong-description reports and app lists from description requests sent from this installation, and clears reports still waiting on the phone. Your purchase (needed to restore it), security log entries (gone after 90 days), daily counters (gone after 30 days) and anonymous totals stay.
- Switch anonymous reports off in the same place at any time.
- Forget a TV, or uninstall the app, to remove everything on the phone (section 2).
If you have questions, write to support@tvsweep.com. You can also complain to the Polish supervisory authority, Prezes Urzędu Ochrony Danych Osobowych (PUODO), ul. Stawki 2, 00‑193 Warszawa, https://uodo.gov.pl, or to the authority in the EU country where you live.
8. Security
Traffic to our server is encrypted; the install ID is stored hashed; IP addresses are not stored; purchase entitlements are signed; secrets on the phone live in the Keychain / Keystore. The app warns you that the TV's network debugging (ADB) is unencrypted on your local network and reminds you to switch it off afterwards.
9. Children
tvsweep is a household utility and is not directed at children. We do not ask for or collect age data.
10. The website tvsweep.com
The website sets no cookies and uses no analytics; fonts and scripts are served from our own domain. It is served through Cloudflare (section 4) from our server in Poland. Nothing on the site identifies you.
11. Changes
When we change this policy we update the date at the top and, for material changes, tell you in the app before they apply. The current version is always at https://tvsweep.com/privacy.