Summary
- Your photos stay on your phone. PicFrame opens, edits and saves your photos on your device. PicFrame never uploads your photos, your creations or your profile picture, to us or to anyone else.
- No account. There is no sign-up or sign-in. PicFrame does not ask for your email address, phone number or password.
- Background removal runs on your device, using Google ML Kit’s selfie segmentation model, which is built into the app.
- One thing leaves your phone automatically: Google ML Kit sends Google technical diagnostics about its own operation (for example device model, Android version, processing times, error codes and a per-installation identifier). These diagnostics do not include your photos.
- PicFrame contains no advertising SDK, no analytics SDK and no crash-reporting SDK, and does not use the Android advertising ID.
- Sorted Systems does not run a server for PicFrame and does not receive your data. The only information we receive is what you choose to send us by email.
1. About PicFrame and this policy
PicFrame is a photo frames, collage and photo editing app for Android, published by Sorted Systems (“we”, “us”). This policy explains what PicFrame does with information on your phone and what, if anything, leaves it. It applies to the PicFrame app for Android (package in.sortedsystems.picframe).
With PicFrame you can:
- put a photo in a frame, or several photos in a collage, using the built-in template library (with search and favourites);
- edit with cut-outs (background removal), backgrounds, filters, text and stickers/decorations;
- take a new photo with your camera, or choose existing photos from your device;
- export a finished picture (Standard or HD) to your gallery, keep it in My creations, and share it to another app;
- optionally set a display name and profile picture, which are shown only inside the app.
This policy is based on an audit of PicFrame version 1.0.0 as released, including its source code, its Android manifest and permissions, and the third-party libraries compiled into the release build.
2. What data PicFrame accesses
“Accesses” below means the app reads or creates the information on your phone. That is different from “transmits” (sends it off your phone). Most of what PicFrame accesses is never transmitted.
| Category | Accessed? | Why | Stays on device? | Transmitted? | Stored? | Deleted when |
|---|---|---|---|---|---|---|
| A. Photos and images | Yes, only the photos you choose | To edit them and build frames and collages | Yes | No. PicFrame never uploads photos. | Yes, as copies in app storage (see Local storage) | When you delete the creation, clear the app’s storage or uninstall |
| Videos | No | PicFrame works with still images only | — | — | — | — |
| B. Camera | Indirectly: PicFrame opens your phone’s camera app | To take a new photo when you choose Camera | Yes | No | The photo you take is saved in PicFrame’s cache, then handled like any chosen photo | When the cache is cleared, or as for photos above |
| C. Files and media library | Only the items you pick. PicFrame also writes exported pictures to your gallery | To open your chosen photos, and to save exports to the “PicFrame” album | Yes | No | Exports are stored in your gallery, outside the app | Exports stay until you delete them in your gallery app |
| D. App-created content | Yes | To keep your creations and let you edit them again | Yes | No | Yes (creations, edit history, cut-out masks) | See Deleting your data |
| E. Profile and settings | Yes, if you set them | Display name and picture to greet you; favourites and export quality to remember your choices | Yes | No | Yes | When you change or clear them, clear the app’s storage or uninstall |
| F. Device information | Not by PicFrame’s own code. Google ML Kit reads it. | ML Kit diagnostics (see section 4) | No, sent to Google | Yes, by ML Kit, to Google | By Google | Under Google’s policies |
| G. Diagnostics | Not by PicFrame’s own code. Google ML Kit creates them. | Google’s diagnostics and usage analytics for ML Kit | No, sent to Google | Yes, by ML Kit, to Google | By Google | Under Google’s policies |
| H. Network information | Only whether a connection is available (network state), checked by Google’s ML Kit libraries before sending diagnostics | To send ML Kit diagnostics when online | Yes | The receiving Google server sees your IP address, as with any internet connection | Not by PicFrame | — |
| I. Identifiers | Not by PicFrame’s own code. ML Kit uses a per-installation identifier. | ML Kit diagnostics | No, sent to Google | Yes, by ML Kit, to Google | By Google | Under Google’s policies (see Identifiers) |
| J. Location | No | — | — | No | No | — |
| K. Contacts | No | — | — | No | No | — |
| L. Account information | No. There are no accounts. | — | — | No | No | — |
| M. Payment information | No. PicFrame is free and has no purchases. | — | — | No | No | — |
PicFrame also does not access your microphone, phone calls, SMS, calendar, health data, or other apps’ data.
3. Your photos, step by step
Throughout, your photos are accessed locally by the app on your phone. None of these steps uploads or transmits a photo to a remote server.
Choosing photos
PicFrame uses Android’s system photo picker (or, where that is not available, the system file chooser). You choose the photos. PicFrame receives only those photos and is never given access to your whole photo library. To open a chosen photo reliably, the picker component makes a temporary copy in PicFrame’s private cache folder. On some older Android versions, the photo picker itself is provided by Google Play services as part of Android.
Taking a photo
When you choose Camera, PicFrame asks your phone’s camera app to take a picture and save it into a file in PicFrame’s private cache folder. PicFrame does not use the camera directly and does not request the camera permission.
Editing, frames, templates and collages
Frames, collage layouts, decorations, fonts and preview photos are all built into the app. Applying a template, filter, text, sticker or background happens on your phone. Nothing is downloaded or uploaded while you edit.
Background removal
The Cutout tool separates a person from the background on your phone using Google ML Kit (see section 4). The photo is not uploaded. The resulting cut-out mask is saved in PicFrame’s private storage so it does not have to be computed again.
Saving and exporting
When you export, PicFrame saves:
- the finished picture in its private My creations folder, together with a private copy of the original photo (and of each collage photo), so you can edit it again later;
- a small edit-history file describing your edits (for example the template, text and adjustments you used, the export size and the date). This file also stores a fingerprint (an MD5 hash) of the original photo, used only to match it with its saved cut-out mask;
- a copy of the finished picture in your phone’s gallery, in an album called “PicFrame”.
Sharing
When you tap Share, Android’s share sheet sends the finished picture to the app you choose (for example a messaging or social app). The sharing component keeps a temporary copy in PicFrame’s cache while it hands the picture over. What happens to the picture after that is governed by the app you chose, not by this policy.
Deleting
See Deleting your data for exactly what is removed when you delete a creation, clear the app’s storage or uninstall.
4. Background removal (Google ML Kit)
- Provider
- Google LLC
- Library
- Google ML Kit Selfie Segmentation (
com.google.mlkit:segmentation-selfie16.0.0-beta6), used through the Flutter plugingoogle_mlkit_selfie_segmentation0.11.0 - Purpose
- To separate a person from the background when you use the Cutout tool
- Where it runs
- On your phone. The segmentation model is bundled inside the app, and PicFrame starts ML Kit only when you use background removal.
- Your photo
- Cutout processing is performed on your device. Your photo is not sent to Google, Sorted Systems or anyone else, and it is not part of the diagnostics described below.
Google describes ML Kit like this: “ML Kit’s processing happens on-device … It also works while offline and can be used for processing images and text that need to remain on the device.”
Diagnostics sent by ML Kit
Although the image processing happens on your device, the ML Kit library sends Google technical information about its own operation. According to Google’s ML Kit data disclosure, ML Kit collects the following for diagnostics and usage analytics:
- device information, such as manufacturer, model, operating system version and build, and available machine-learning hardware accelerators;
- application information: package name and app version;
- for features bundled in the app, such as PicFrame’s: “per-installation identifiers that are not intended to uniquely identify a user or physical device”;
- performance metrics such as latency, API configuration such as image format and resolution, input and output sizes, and feature version;
- event types (such as feature initialisation, detection and resource release) and error codes.
Google states that ML Kit encrypts this data in transit using HTTPS and does not transfer it to third parties. It is sent when your phone has an internet connection. PicFrame’s own features do not need a connection.
5. Network communications
PicFrame’s own code contains no networking. It does not call any API, download images, or send data to Sorted Systems, and all editing features work without an internet connection. The table lists every network destination found in the release build.
| Destination | Provider | Purpose | Data sent | Data received | Your photos sent? | Optional? | HTTPS? |
|---|---|---|---|---|---|---|---|
firebaselogging.googleapis.com and firebaselogging-pa.googleapis.com | Delivery of Google ML Kit diagnostics (through Google’s data-transport library) | The ML Kit diagnostics listed in section 4 | Delivery acknowledgements | No | Not controllable in PicFrame; sent only when online | Yes |
These options hand you over to other apps on your phone; PicFrame itself sends nothing:
- Rate this app / Rate us opens the PicFrame page in the Google Play Store app or your browser.
- Share app opens Android’s share sheet with a short message and a link to the Play Store page.
- Email us opens your email app with our address and the subject “PicFrame support”. Nothing is sent unless you send the email.
The preview photos and all templates are bundled in the app (see Pexels preview photos), so PicFrame does not contact Pexels or any image service.
6. Third-party components
PicFrame is built with Google’s Flutter framework. Its third-party components fall into three groups. Only the first group sends any data off your device.
6.1 Runtime SDK that processes and transmits data
Google ML Kit is the only component in the released app that sends data off your device. It sends technical diagnostics, never photos (see section 4).
| Component | Provider | Version | Purpose | Data processed | Data transmitted | Required / optional | Privacy / terms |
|---|---|---|---|---|---|---|---|
| Google ML Kit Selfie Segmentation (with ML Kit common 18.11.0, vision common 17.3.0, vision interfaces 16.3.0 and MediaPipe 17.0.0-beta10) | 16.0.0-beta6 | Background removal (Cutout), performed on your device | The photo you run Cutout on, on your device only | Diagnostics only, to Google over HTTPS. Never your photos. | Bundled with the app; runs when you use Cutout | ML Kit data disclosure · Google Privacy Policy | |
| Google data transport (transport runtime 2.2.6, CCT backend 2.3.3, API 2.2.1), with Firebase encoders and components used only as its encoding layer | see left | Delivers ML Kit’s diagnostics to Google; part of ML Kit’s delivery path | ML Kit diagnostics; whether a network is available | The ML Kit diagnostics above, over HTTPS | Required by ML Kit | Google Privacy Policy |
6.2 Supporting libraries (run on your device, transmit nothing)
These libraries work only on your phone. They do not send data anywhere, and none of them is a third party that receives your data.
| Component | Provider | Version | Purpose | Data handled on the device |
|---|---|---|---|---|
| Google Play services base, basement and tasks | 18.5.0 / 18.4.0 / 18.2.0 | Support libraries that ML Kit requires. PicFrame calls no other Google Play services API. | None by PicFrame | |
image_picker (Android 0.8.13+17) | Flutter team (Google), open source | 1.2.3 | System photo picker and camera app | The photos you choose or take (copied to the app’s cache) |
gal | Open source | 2.3.2 | Saves exports to your gallery | The picture you export |
share_plus | Flutter Community, open source | 13.2.1 | Android share sheet | The picture you share (temporary copy in cache), handed only to the app you choose |
url_launcher (Android 6.3.30) | Flutter team (Google), open source | 6.3.2 | Opens the Play Store page and your email app | None |
shared_preferences (Android 2.4.23) | Flutter team (Google), open source | 2.5.5 | Stores your settings on the phone | Settings listed in Local storage |
path_provider (Android 2.3.1, with jni 1.0.0) | Flutter team (Google), open source | 2.1.6 | Finds the app’s private folders | None |
permission_handler (Android 13.0.1) | Baseflow, open source | 12.0.3 | Opens Android settings if photo access is refused | None |
image and crypto | Open source (Dart) | 4.9.1 / 3.0.7 | Encode exported pictures; compute the photo fingerprint used to match cut-out masks | Your photos |
Flutter engine and framework, AndroidX and Kotlin libraries, and app-structure packages (flutter_riverpod, go_router, intl, characters, cupertino_icons) | Google, JetBrains, open source | as built | Run the app’s interface and logic | App data |
Content bundled inside the app, with no runtime connection: preview photos from Pexels (see section 7); decorations from Google’s Noto Emoji (Apache License 2.0); fonts under the SIL Open Font License (Poppins, Montserrat, Oswald, Playfair Display, Dancing Script, Caveat, Anton, Bebas Neue, Lobster, Pacifico, Noto Sans, Noto Sans Devanagari and Noto Sans Gujarati); and the templates, frames and collage layouts made for PicFrame.
6.3 Build-time and test-only dependencies (not in the app)
These tools are used only to build and test PicFrame. They are not included in the app you install, and none of them handles your data: flutter_launcher_icons, change_app_package_name, flutter_lints, flutter_test, integration_test and flutter_driver.
7. Pexels preview photos
The sample people and scenes you see in template previews (for example on Home and in the Library) are photographs from Pexels, used under the Pexels license.
- PicFrame bundles 283 of these photos inside the app. The publisher selected and downloaded them while making the app.
- PicFrame does not use the Pexels API and makes no Pexels search or API request. It does not connect to Pexels at all.
- Pexels does not receive your photos, your creations, or any information about you or your device from PicFrame.
- When you use a template, your own photo replaces the preview photo. Preview photos are never combined with your data or sent anywhere.
8. Permissions
These are all the permissions in PicFrame’s final Android manifest. “Runtime” permissions need your approval on screen; “normal” permissions are granted automatically when the app is installed.
| Permission | Type | Why PicFrame has it | When requested | Data involved |
|---|---|---|---|---|
WRITE_EXTERNAL_STORAGE (Android 10 and older only) | Runtime | Older Android versions require it to save a picture to the gallery | On Android 7–10, the first time you save to the gallery. Not used on Android 11 and newer. | The picture you export |
INTERNET | Normal (install time) | Added by Google’s data-transport library so ML Kit can send its diagnostics | Never shown; granted at install | ML Kit diagnostics (see section 4) |
ACCESS_NETWORK_STATE | Normal (install time) | Added by the same Google library, to check for a connection before sending diagnostics | Never shown; granted at install | Whether a network is available |
…DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION | Internal (signature) | Added by Android’s AndroidX library to keep the app’s internal messages private to PicFrame | Never shown | None |
Not requested: camera, reading your photo or media library, location, contacts, microphone, phone, SMS, calendar, notifications, or the advertising ID permission. Photos come through the system photo picker, and photos you take come from your camera app; neither needs a permission.
You can review or withdraw the storage permission at any time in Android’s settings. PicFrame keeps working, but saving to the gallery on Android 10 and older will not.
9. Local storage
Everything PicFrame stores is on your phone. Nothing is stored on a server.
| What | Where | Why | How long | How to delete |
|---|---|---|---|---|
| Settings: display name, profile-picture file name, favourite template IDs, export quality (Standard/HD), and whether you have seen the introduction | App preferences (private) | To remember your choices | Until you change them or clear the app’s storage | Edit Profile; or clear storage or uninstall |
| Profile picture (optional) | App’s private documents folder | Shown in Profile and on Home | Until you remove or replace it | Edit Profile, then remove the photo; or clear storage or uninstall |
| Creations: the finished picture, a copy of the original photo, copies of collage photos, and an edit-history file (edits, export size, date, photo fingerprint) | App’s private documents folder (creations) | My creations, and editing a creation again | Until you delete them | My creations, then Delete (see section 17); or clear storage or uninstall |
| Cut-out masks | App’s private documents folder (creations/masks) | So background removal doesn’t have to run twice on the same photo | Until the app’s storage is cleared | Clear storage or uninstall |
| Temporary copies of chosen photos, camera photos and shared pictures | App’s private cache folder | Needed to open, capture or share a picture | Until Android or you clear the cache | Settings → Apps → PicFrame → Storage → Clear cache |
| Exported pictures | Your gallery, album “PicFrame” | So you can use them anywhere | Until you delete them | Your gallery or Photos app |
| Templates, preview photos, decorations and fonts | Inside the app (read-only) | The template library | While installed | Uninstall |
PicFrame does not use a database, an account sync service or cloud storage. It does not encrypt its stored files itself; they are protected by Android’s app sandbox (see Security).
10. Accounts and payments
PicFrame does not have accounts. There is no registration, login, password, email verification, Google or Apple sign-in, social login or authentication token. The optional display name in Profile is stored only on your phone.
PicFrame is free. It has no in-app purchases or subscriptions, contains no billing library, and does not ask for or process payment information.
11. Advertising, analytics and tracking
The released PicFrame app contains none of the following: Google AdMob or Google Mobile Ads, Meta Audience Network, Firebase Analytics, Firebase Crashlytics, Sentry, Amplitude, Mixpanel, AppsFlyer, Adjust, or any other advertising, analytics, attribution or tracking SDK. PicFrame does not show advertising, does not use the Android advertising ID, does not fingerprint your device, and does not track you across apps or websites.
The only usage information that leaves your device is the Google ML Kit diagnostics described in section 4, which Google collects for its own diagnostics and usage analytics of ML Kit.
12. Identifiers
| Identifier | Used? | By whom, and why | Transmitted? | Retention |
|---|---|---|---|---|
| Android advertising ID | No | — | No | — |
| App set ID | No | — | No | — |
| Firebase installation ID | No (the app contains no Firebase Installations or Analytics) | — | No | — |
| Android ID, IMEI or other hardware IDs | Not read by PicFrame | — | No | — |
| ML Kit per-installation identifier | Yes, by Google ML Kit | Google, for diagnostics and usage analytics. Google describes it as “not intended to uniquely identify a user or physical device”. | Yes, to Google | Set by Google |
| IP address | Not by PicFrame | Seen by Google’s servers when ML Kit sends diagnostics, as with any internet connection | As part of the connection | Set by Google |
| Photo fingerprint (MD5 hash) | Yes, by PicFrame, on device | Matches a photo to its saved cut-out mask | No | Until you delete the creation or clear storage |
13. Diagnostics and crash reports
- PicFrame’s own analytics: none. PicFrame has no analytics of its own and does not record how you use the app.
- Third-party SDK diagnostics: Google ML Kit sends Google the diagnostics described in section 4.
- Crash reporting: PicFrame includes no crash-reporting SDK. Separately from PicFrame, if you have allowed your phone to share usage and diagnostics data with Google, Android may send Google Play reports about app crashes and freezes. We see those only as aggregated statistics in Google Play Console. You can change this in your phone’s settings.
- Performance diagnostics: only those collected by ML Kit, such as processing time.
15. Security
- Local processing. Editing and background removal run on your phone, so your photos are not exposed to a network.
- App-private storage. PicFrame’s files and settings are kept in its private storage, which Android’s app sandbox protects from other apps. PicFrame does not add its own encryption to these files.
- Encrypted transport. The only data sent off your device, Google ML Kit’s diagnostics, is sent over HTTPS, according to Google.
- No accounts and no server. There are no passwords to protect, and Sorted Systems keeps no server-side copy of your data.
- Permission controls. The only runtime permission PicFrame requests is storage access on Android 10 and older, which you can withdraw in Android’s settings.
No method of storage or transmission is completely secure, and we cannot guarantee the security of your phone or of third-party services.
16. Data retention
| Data | Retention |
|---|---|
| Your photos (copies inside PicFrame) | On your phone until you delete the creation, clear the app’s storage or uninstall. PicFrame never changes or deletes your original photos in your gallery. |
| Creations and edit history | On your phone until you delete them, clear storage or uninstall |
| Cut-out masks | On your phone until you clear storage or uninstall |
| Temporary and cache files | Until Android or you clear PicFrame’s cache, or you uninstall |
| Exported pictures | In your gallery until you delete them. Uninstalling PicFrame does not remove them. |
| Preferences and profile | Until you change them, clear storage or uninstall |
| Google ML Kit diagnostics | Held by Google under Google’s policies. Sorted Systems has no access to them. |
| Emails you send us | Kept only as long as needed to answer you. Ask, and we will delete them. |
Because PicFrame’s data stays on your device, you and your device decide how long it is kept.
17. Deleting your data
Delete one creation
Open My creations, tap the picture, then Delete. This deletes the finished picture, PicFrame’s copy of the original photo and the edit-history file. It does not necessarily remove every related file: copies of collage photos and saved cut-out masks may remain in PicFrame’s private storage. Clear storage (below) removes any remaining app data.
Delete your profile name or picture
Open Profile, edit your profile, and clear the name or remove the photo.
Delete temporary files
Android → Settings → Apps → PicFrame → Storage → Clear cache.
Delete everything PicFrame stored
Android → Settings → Apps → PicFrame → Storage → Clear storage (or Clear data), or uninstall PicFrame. This removes all creations, copies, masks, edit history, your profile and your settings.
Exported pictures
Pictures you exported are in your gallery (album “PicFrame”). PicFrame does not delete them; delete them in your gallery or Photos app.
Device backups
To remove PicFrame data from your Android device backup, manage or delete it in your phone’s backup settings or your Google account.
What we can and cannot delete
Sorted Systems holds no PicFrame data about you, so there is nothing on our side to delete, except emails you have sent us, which we will delete on request. Google ML Kit diagnostics are held by Google and governed by Google’s policies; we cannot delete them for you.
18. Children
PicFrame is not directed at children under 13. We do not knowingly collect personal information from children, and the app does not send personal information to us from anyone. If you are a parent or guardian and believe your child has emailed us personal information, contact us at info@sortedsystems.in and we will delete it.
19. Your rights (India and elsewhere)
India
Under the Digital Personal Data Protection Act, 2023, you may ask for information about how your personal data is processed, ask for it to be corrected or erased, and raise a grievance. Because PicFrame keeps your data on your device, you can view, correct and delete most of it yourself in the app. For privacy questions or grievances, contact Sorted Systems at info@sortedsystems.in. Google ML Kit diagnostics are governed by Google, but we will help where we can.
EU, EEA and UK
You may have rights to access, correct, delete and port your personal data, to restrict or object to its processing, and to complain to your data protection authority.
California and other US states
We do not sell personal information or share it for cross-context behavioural advertising.
Everywhere else
Your local law may give you similar or additional rights. Contact us and we will help where we can.
We reply to privacy requests within 30 days.
20. Third-party services and links
- Google ML Kit data disclosure: developers.google.com/ml-kit/android-data-disclosure
- Google ML Kit overview: developers.google.com/ml-kit
- Google Privacy Policy: policies.google.com/privacy
- Android photo picker: developer.android.com/training/data-storage/shared/photopicker
- Pexels license: pexels.com/license
Third-party services have their own privacy policies, which we do not control.
21. Open-source software
PicFrame uses open-source software and third-party libraries, including Flutter, Android Jetpack (AndroidX) and the plugins listed above, as well as Noto Emoji artwork (Apache License 2.0) and fonts under the SIL Open Font License. Their respective licenses and notices continue to apply.
22. Application information
- App name
- PicFrame
- Publisher
- Sorted Systems
- Package (application ID)
in.sortedsystems.picframe- Version
- 1.0.0 (version code 1)
- Minimum Android version
- Android 7.0 (API level 24)
- Target Android version
- API level 36
- Platform
- Android, distributed through Google Play
- Build
- Release build
Download size depends on your device and on how Google Play delivers the app.
23. Changes to this policy
If a future version of PicFrame changes how it handles information, for example by adding an online feature, we will update this policy before releasing that version and change the “Last updated” date. For significant changes we will also tell you in the app.
24. Contact
Questions, requests or complaints about privacy:
Sorted Systems
info@sortedsystems.in