Files
foto-duplicate-finder/PRIVACY.md
T
Hadrian Burkhardt 4706e2669c Initial commit: Foto Dup Finder 1.0.1
An Android duplicate-photo finder. Pure-Kotlin core (SHA-256 + dHash hashing, exact and
perceptual union-find grouping, three sensitivity presets) with MediaStore access, a
persistent SQLite hash index and a tiered ScanEngine behind a Jetpack Compose UI.
No INTERNET permission, no ads, no analytics, no account.

Ships versionCode 2 / versionName 1.0.1, carrying the scan-stall hardening (BoundedCall
breaker) and verified against a 5,363-photo device library. 80 JVM unit tests, lint clean.

Release paperwork is in docs/ (Play checklist, store listing, edge-case testing), the
upload-ready Play graphics and screenshots in store-assets/, and the generators for those
assets in tools/.
2026-10-13 23:13:39 +02:00

68 lines
2.7 KiB
Markdown

# Privacy Policy — Foto Dup Finder
_Last updated: 2026-10-13_
## Summary
Foto Dup Finder finds and removes duplicate photos **entirely on your device**.
The app does **not** collect, transmit, sell or share any of your data. It has no
network access at all.
## What the app accesses
| Data | Why | Where it goes |
|---|---|---|
| Your photos (images) | To compare them and detect duplicates | Never leaves your device |
| Photo metadata (file name, size, folder, dimensions, date) | To group and display results | Never leaves your device |
| A local cache of file hashes | To make repeat scans fast | Stored only in this app's private storage |
## What the app does NOT do
- It does **not** have the `INTERNET` permission, so it cannot send data anywhere.
- It does **not** collect analytics, crash reports, advertising identifiers or
location data.
- It does **not** contain advertising SDKs or third-party trackers.
- It does **not** create accounts and does **not** ask for your name, email or
phone number.
- It does **not** read photos other than the images you grant access to.
## Permissions and what they mean
| Permission | Purpose |
|---|---|
| Read photos (`READ_MEDIA_IMAGES` / `READ_EXTERNAL_STORAGE`) | Required to scan your photo library. You can deny this and the app simply will not scan. On Android 14+ you may grant access to *selected photos only*; the app then scans only those. |
| `READ_MEDIA_VISUAL_USER_SELECTED` | Supports Android 14's partial photo access. |
| `WRITE_EXTERNAL_STORAGE` (Android 10 only) | Used solely to delete photos you explicitly select on that older Android version. |
## Deleting photos
On Android 11 and newer, deletions are performed through the operating system's
own confirmation dialog (`MediaStore.createDeleteRequest` / `createTrashRequest`).
The app can never delete anything without your explicit confirmation, and it never
requests the broad `MANAGE_EXTERNAL_STORAGE` permission.
On Android 10, deletions use the standard media API and still only affect the files
you selected.
## Data retention and deletion
The app stores a small local database of file hashes in its private app storage so
that repeat scans are fast. This database contains no image content and never leaves
your device. Uninstalling the app, or clearing its storage in Android Settings,
removes it completely.
## Children
The app is a general-purpose utility and is not directed at children. It collects no
personal data from anyone.
## Changes
If this policy changes, the updated version will be published at this address with a
new "last updated" date.
## Contact
Questions about this policy: **support@example.com** _(replace with your real
support address before publishing)_.