SD Card Tester — Privacy Policy
Effective date: 1 November 2026
This privacy policy explains what data SD Card Tester (“the app”, “we”, “our”) reads, stores, and shares. SD Card Tester is published by Nordic Node, based in the Netherlands.
- All test measurements, volume names, and your test history stay on your device. No measurement, volume name, file, report, or history entry is ever sent to us or to anyone else.
- There is no account and no server run by us.
- The features that use the internet are ads — Google AdMob together with Google’s consent check (User Messaging Platform) that runs before any ad is requested; ads are not shown if you bought Pro or Remove ads — Google Play Billing for the two optional one-time purchases, and usage and crash statistics (Google Firebase Analytics and Firebase Crashlytics). Where consent is required (such as the EU/EEA, UK, and Switzerland), the statistics are collected only if you agree.
- Backup is turned off, so the app’s data is not copied to Google Drive or to a new device.
What the app reads from your device
To test a card, the app reads, while a test is running or when you ask for it:
- The storage volume you choose (for example an SD card or USB drive): its name, size, free space, and file system as reported by Android.
- Timing and integrity results from writing and reading back temporary test data on that volume.
The app does not read your photos, documents, or other files on the card.
What the app stores locally
The following is stored only on your device, in the app’s private storage. None of it is transmitted:
- Your test history (results, measured speeds, dates, and the volume name) in a local database.
- App settings, and a local record of whether you own Pro or Remove ads (Google Play remains the source of truth).
- Exports you create (see below).
- If you turn on the optional retest reminder: the test ID and volume name, in Android’s local scheduling database, until the reminder fires or is cancelled.
Access to your card
The app reaches the card only through Android’s Storage Access Framework: you pick a folder
and Android gives the app access to that folder only. The app uses this access only for the test and
releases it afterwards. During a test the app writes temporary files into a folder named
.cardtest_probe on the card and deletes them when the test ends. If a test is interrupted,
the app removes leftovers on the next run or when you ask it to clean up. Just before a test starts,
the app may also briefly create a small temporary file (such as .cardtest_size_probe.tmp or
.cardtest_fs_probe.tmp) in the folder you chose, to read the card's size and how it stores
files, and deletes it straight away. If the app is closed at exactly that moment, such a file can remain;
it contains no personal data and you can delete it yourself.
Exports
A PNG or PDF report is created only when you ask for one. It is saved either in
the app’s private cache — kept there and removed after about an hour (checked when the app
starts and whenever you create a report), or when Android clears the cache — or in
Pictures/SD Card Tester on your device through Android’s MediaStore, and shared
through the Android share sheet to the app you choose. Once you share or save a report, it is outside
the app’s control; files in Pictures/SD Card Tester stay until you delete them.
Notifications and reminders
The app can show local notifications: the progress of a running test, a one-time notice when a test was paused, and, only if you turn it on, a reminder about three months after a test to retest that card. For the reminder, the app keeps the ID of that test and the volume name in the scheduling database of Android’s WorkManager, in the app’s private storage on your device, so the notification can name the card. Nothing is sent to us or anyone else, and the reminder is scheduled by your device alone. You can cancel a reminder in the app, and clearing the app’s data or uninstalling removes it. The usage statistics do not include the volume name.
Permissions
android.permission.INTERNET— needed by the ads (including Google’s consent check), Google Play Billing, and the usage and crash statistics (Firebase). The app does not use it to send your test data anywhere.com.google.android.gms.permission.AD_ID— lets the AdMob SDK read the Advertising ID for personalised or non-personalised ads, depending on your consent choice. Firebase Analytics may also read it, but only when your consent choice allows advertising storage.android.permission.ACCESS_NETWORK_STATE— added by the Google Mobile Ads SDK so it can check whether a network connection is available before requesting an ad.android.permission.ACCESS_ADSERVICES_AD_ID,android.permission.ACCESS_ADSERVICES_ATTRIBUTIONandandroid.permission.ACCESS_ADSERVICES_TOPICS— added by the Google Mobile Ads SDK for advertising through Android’s Ad Services (Privacy Sandbox): the advertising ID, ad attribution, and interest topics. They are used for ads only, depending on your consent choice and your Android ad privacy settings.android.permission.FOREGROUND_SERVICEandandroid.permission.FOREGROUND_SERVICE_DATA_SYNC— keep a long test running with a visible notification while the app is in the background.android.permission.WAKE_LOCK— keeps the device awake while a test runs so it is not interrupted by sleep. It is released when the test ends.android.permission.POST_NOTIFICATIONS(Android 13+) — requested in context: when a long test starts (for the progress notification and the paused-test notice), and when you tap the optional retest-reminder action (for the reminder). It is not requested at launch, and you can use the app without it.android.permission.RECEIVE_BOOT_COMPLETED— lets Android’s WorkManager restore a retest reminder you turned on after the device restarts. It shows no prompt and grants no access to your data.com.android.vending.BILLING— added by the Google Play Billing library for the optional purchases. It shows no prompt and grants no access to your data.
Advertising
The free version shows Google AdMob ads: a banner on the home screen (it can stay visible while a test runs in the background), one labelled native ad card on the result screen and one in the test history (shown only when no test is running, and in the history only when there are at least four entries, after the third), and at most one full-screen ad after you finish a completed test with “Done”. You can also choose to watch an optional rewarded ad to unlock the PDF report for that one test; the image report is always free. Ads are requested only after you have answered the consent form where one is required. If you bought Pro, no ads are shown. If you bought Remove ads, no ads are shown either, except the optional rewarded ad if you choose to watch it; the Google Mobile Ads SDK is then started only when you tap that button. Through AdMob, Google may collect, depending on your consent:
- Advertising ID
- IP address and approximate location derived from it
- Device and app information, and ad interactions (such as taps and viewability)
How Google uses data from partner sites and apps: https://policies.google.com/technologies/partner-sites. Google’s advertising technologies: https://policies.google.com/technologies/ads.
Usage and crash statistics (Google Firebase)
To find bugs and learn which features are used, the app uses Google Firebase Analytics and Firebase Crashlytics, provided by Google. They collect:
- App interactions: which screens are opened, that a test was started or finished (the test type, the kind of verdict, a rough duration range such as “10–60 minutes”, and whether it was interrupted), that a report was exported (image or PDF), that the upgrade screen was opened, and that a full-screen ad was shown or a rewarded ad was started, earned, or unavailable. Purchases are recorded automatically by Google Play and Firebase.
- Crash reports: the technical stack trace of a crash, the app version, and the test type that was running, if any.
- Device model, Android version, language, and app version.
- A random app-instance / installation identifier created by Firebase (not your name or email).
- Approximate location (country or region) derived by Google from your IP address.
- Install source: Firebase Analytics may read the Google Play install referrer (which store
listing or campaign led to the install), only when your consent choice allows statistics. This is
why the permission
com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICEappears in the app.
They never include a volume name, card identifier, file or folder name, path, measurement, or report. In regions where consent is required (such as the EU/EEA, UK, and Switzerland), Firebase starts with all collection switched off and is switched on only according to your choices in the consent form: usage statistics need consent to storage on your device and to measurement; crash reports need consent to storage on your device. You can change this at any time with the privacy options button described below. Outside those regions, the statistics are collected by default, unless a privacy choice shown for your region says otherwise. Data is kept according to Google’s default retention (Analytics event data: 2 months; Crashlytics crash reports: 90 days). How Google handles it: https://policies.google.com/privacy and https://firebase.google.com/support/privacy.
Consent (Google UMP)
The Google User Messaging Platform (UMP) SDK is part of the ads features: when the app starts it contacts Google over the internet to check whether consent is needed where you are. In regions where consent is required (such as the EU/EEA, UK, and Switzerland), it shows a consent form. Your choice is stored locally by the UMP SDK. To review or change your choice at any time, open the app, go to Limitations & about, and tap the privacy options button; it covers both ads and the usage and crash statistics. That button appears wherever Google reports that privacy options are required. You can also reset ad personalisation in your Android settings.
In-app purchases
The app offers two optional one-time purchases, Pro and Remove ads, processed by Google Play Billing. Google handles the payment; we never see or store your payment details. Reinstalling and restoring purchases recovers what you bought.
What we do NOT do
- We do not send test measurements, volume names, files, reports, or history anywhere. The usage statistics only record the kind of verdict a test reached, never which card it was.
- We have no accounts.
- We do not run any server that receives data from the app.
- We do not look up your card in a database of known cards.
- We do not access your contacts, microphone, camera, or precise location.
- We do not sell your data.
Data retention and deletion
All app data lives on your device. Test history can be deleted in the app, and clearing the
app’s data (Android Settings → Apps → SD Card Tester → Storage) or uninstalling
removes it entirely. Exports saved to Pictures/SD Card Tester are ordinary files that you
can delete yourself. Data collected by Google through AdMob and Google Play is handled by Google under
its own policies; withdrawing consent in the app stops further personalised collection. Usage and
crash statistics are kept for Google’s default periods (see above); withdrawing consent stops
further collection (crash reporting fully from the next app start).
Your rights (GDPR)
Under the GDPR and similar laws you have the right to access, correct, delete, restrict, and port your personal data, to object to processing, and to withdraw consent at any time. Because we hold no account or name for you, we can link usage and crash statistics only to a random Firebase identifier, not to you; if you want them erased, email us and we will delete the analytics data of our Firebase project on request where we can identify it. Because you cannot see that identifier yourself, the practical routes are: uninstalling the app (which stops the identifier from being used again), resetting your advertising ID, or simply letting the data expire after the retention periods above, when Google deletes it automatically. Apart from that, your data is on your device and under your control. For data processed by Google, contact Google or use your Google account’s privacy controls. You may also lodge a complaint with your national data protection authority (in the Netherlands, the Autoriteit Persoonsgegevens).
Children’s privacy
The app is intended for a general audience and is not directed at children. We do not knowingly collect personal information from children.
Changes to this policy
If we change this policy, we will update the effective date at the top of this page. The current version is always available at https://nordicnode.nl/cardtest/privacypolicy.html and from the app’s Limitations & about screen.
Contact
Privacy questions: nordicnode26@gmail.com
Publisher: Nordic Node, the Netherlands.
The app’s Send feedback option opens your own email app with a message to this address. The only things filled in beforehand are a fixed subject line and the app’s version number. Nothing is sent until you send it yourself, and you decide what else to include.