English · 한국어
Effective: 20 October 2026 (first effective 15 September 2026)
App name: SafeScan (Korean: 세이프스캔) · Package: com.almightyhg.safescan
SafeScan checks a QR code or link for phishing and malicious-app risk before you open it. There is no account, no sign-in and no field for your name or phone number. Your check history stays on your device only and is deleted automatically after 90 days. Codes you save yourself (Favorites and QR Books) stay until you delete them — the app must not quietly erase what you collected on purpose.
Checking a link does, however, mean that the address you are checking sometimes has to leave the device (to resolve a short link, to ask Google's unsafe-site list, or when you tap Report yourself). Section 3 lists exactly what goes where. Nothing else leaves the device.
| Item | Contents | Where | Deletion |
|---|---|---|---|
| Check history | The address checked, the verdict, the evidence and the time | Device storage (SQLite) | Deleted automatically after 90 days. You can delete everything at any time from the History tab |
| Saved codes (Favorites and QR Books) | Addresses and codes you chose to save, the name and note you added, which book they are in and when it was created, and the time they were last re-checked | Device storage (SQLite) | Never deleted automatically. Remove them one by one, by book, or with [Empty this list] under Library → QR Books. Deleted with the app |
| Report queue | A report you tapped while offline, held until it can be sent | Device storage | Deleted once sent |
| Settings | Ad grace-period start, launch count (for the review prompt), blocklist refresh time | Device storage | Deleted with the app |
allowBackup=false plus backup exclusion rules).| When | What is sent | To | Why |
|---|---|---|---|
| When you check a short link (bit.ly, han.gl, …) | That short link | The short-link service's server | To find the real destination the app follows redirects only. It first sends a HEAD request (which does not fetch page content); only if that service refuses HEAD does it retry once with GET, and even then the response content is discarded unread. It sends no cookies or referrer. |
| When you check an address (if Google lookup is enabled) | The address being checked | Google Web Risk API | Asks whether the address is on Google's real-time list of unsafe sites. Well-known legitimate domains are not sent. Google's handling: Google Cloud Privacy Notice |
| When you check an address | A SHA-256 hash of the address (not the address itself) | Firebase Firestore (the developer's project) | To see how many other users have reported that address. Because it is a hash, the server cannot recover the original address. |
| When a Google lookup is made | Monthly lookup counts and a count of response types (success, denied, quota exceeded, failed), with your anonymous ID — no addresses, domains or results are sent | Firebase Firestore (the developer's project, one document per anonymous ID) | To notice before the free Google lookup quota (100,000 per month) runs out and to detect lookups being refused. It is never used to limit how many checks you can run. |
| Only when you tap "Report phishing" | The reported address, its domain, the reason you chose, the app's verdict, the time, your anonymous ID and (if you wrote one) your note | Firebase Firestore (the developer's project) | So that, after review, the address can be added to the blocklist. The note is optional and the screen asks you not to include personal details. |
| On launch | A per-installation anonymous ID (a random value created by Firebase Anonymous Authentication) and a device-integrity token (Play Integrity / App Check) | Firebase | So that the same person reporting the same address several times counts once, and so that requests from tampered apps can be rejected. The ID is not linked to a name, phone number or email, and changes if you uninstall the app. In handling these requests Firebase receives your device's IP address (unavoidable for any internet request); the developer does not store it. |
| On launch (at most every 12 hours) | A settings request including the app version | Firebase Remote Config | To download settings such as the blocklist update URL and feature switches. No personal data is sent. |
| When an ad is shown | Device information such as the advertising ID (processed by Google) | Google AdMob | See section 4 |
This app shows Google AdMob ads.
| Permission | Used for | If you decline |
|---|---|---|
| Camera | Reading QR codes only. Frames are never stored or transmitted | You can still check from a photo or by pasting |
| Internet | The transfers in section 3, and ads | Address-pattern checks, look-alike domain detection and the on-device blocklist keep working offline |
This app is not directed at children under 13 (under 14 in Korea) and does not knowingly collect personal information from children.
Check results are for reference only and do not guarantee 100% safety. SafeScan is not an antivirus and does not remove malicious apps. Before entering personal or financial information, double-check in the official app.
Email: smartdaitso@gmail.com
| Date | Change |
|---|---|
| 2026-09-15 | First version (for v1.0.0) |
| 2026-09-18 | Added Favorites and QR Books (v1.1.0). Sections 2 and 7 now state that codes you save yourself are never deleted automatically. Nothing new leaves the device |
| 2026-10-01 | Section 3 now lists Google lookup usage counts (monthly numbers and response types, stored per anonymous ID). No addresses or results are sent |
| 2026-10-20 | Section 4 now lists the four data types the ads SDK collects automatically (approximate location, app interactions, diagnostics, device identifiers); section 6 corrected from "location" to "precise location"; section 3 now states that Firebase receives the IP address and that short-link checks may retry with GET (matching the Play Data safety answers and the app's actual behaviour). The app itself is unchanged |