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/.
2.7 KiB
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
INTERNETpermission, 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).