Privacy

Img DeDup collects nothing, sends nothing and stores nothing outside your device. This page explains what that means in practice, and where the limits are.

What is collected

Nothing. There is no account to create, no server to talk to, no analytics package, no crash reporter and no advertising identifier. The app has no code that transmits your data anywhere.

What the app reads

Your photo library
Img DeDup asks for full read and write access to Photos. It needs read access because a duplicate can only be found by examining every item, and write access because read-only access cannot delete. Hidden photos and individual burst frames are included, since a copy you cannot see occupies the same storage as one you can.
Fingerprints it computes
A SHA-256 checksum and a perceptual fingerprint are computed for candidate items and cached on the device so a later scan does not repeat the work. The cache holds fingerprints and identifiers, not images, and you can clear it from the main screen at any time.
What you type in
The savings screen can price freed space against your iCloud+ tier, and can estimate over a lifetime from a birth date. Both are entered by you, are used only to compute the figures shown on that screen, and never leave the device.

What the app writes

A deletion log
Every deletion is recorded on the device with the filename, SHA-256, byte count and the identifier of the copy that was kept, so a deletion can be audited afterwards rather than taken on trust.
Snapshots
At each scan and deletion the app records the library count, the library size it measured and the free space on the device. This is how the timeline shows iCloud catching up with a purge.
Exports you ask for
The log, the snapshots and a plain-text savings report can be shared out of the app through the standard iOS share sheet. Where they go from there is your choice; the app does not send them anywhere itself.

Network access

The only network traffic Img DeDup causes is Apple's own. When Download originals from iCloud when needed is on and a comparison requires an original that is not stored locally, iOS fetches it from iCloud Photos on the app's behalf. That request goes to Apple, under your Apple Account, exactly as it does when you open the photo in Photos. Turn the option off and the app works from local previews and downloads nothing.

Analyse on the web is the one exception, and it is still not an upload. It opens this site's report page in a window inside the app and hands your diagnostics.json to it directly, in memory. The request that goes out fetches the page; your file does not travel with it. The same is true if you open that page in a browser and drop the file on it yourself — it is read by the page, in your browser, and analysed there.

There is no endpoint that could receive it. This site is served as static files by a Cloudflare Worker with no server code and no storage attached, so there is nothing running on our side that is capable of accepting a file, logging one, or storing one.

Deletion, and what the app cannot do

Deleted copies go to Recently Deleted and remain there for 30 days. No third-party app is permitted to skip that bin or to empty it, so releasing the space is something you do in Photos. The app also cannot read your iCloud storage figure, cannot see inside Apple's own Duplicates album, and cannot make iCloud recalculate anything sooner.

Children

The app is a storage utility, is not directed at children, and collects no personal information from anyone.

Changes

If this policy changes, the revised version will appear on this page. As long as the app collects nothing, there is little here that can change.

Contact

Questions about this policy can go to rooot@atsignhandle.xyz.