Privacy Policy
Effective September 25, 2026
Short version: Eavesdrop turns speech into text using the speech recogniser already built into your phone. Your transcripts stay on your device unless you choose to share or export them. Eavesdrop does not save audio recordings or require an account. Release versions with telemetry configured send diagnostic reports about failures and optional counts of saved transcripts. These reports do not contain your transcript text or titles. Usage stats can be turned off in Settings. We do not use advertising or cross-app tracking.
1. Who we are
Eavesdrop is an independent app published by aflutter.dev. You can reach us at privacy@aflutter.dev.
2. Your audio and transcripts
Eavesdrop processes microphone audio through your phone's on-device speech recogniser. It does not save audio files. Transcript text, titles, language, session dates, and durations are stored in the app's private storage. Unfinished transcripts may also be stored as recovery drafts. We do not receive this content through our diagnostic or analytics services.
You can delete transcripts in the app. Removing the app and its data removes its local transcripts and drafts. Copies you shared or exported elsewhere are managed separately by you and the destination app. We cannot recover your transcripts because we do not hold a server copy.
The transcript database and its temporary SQLite files are excluded from iOS backups, and from Android backups and device transfer. Unfinished transcripts are saved locally as recoverable drafts. Existing backups made by older app versions are not changed by this setting.
3. How speech recognition actually works
Eavesdrop doesn't ship its own speech recognition engine. Instead, it uses the speech recogniser provided by your operating system. This is important for two reasons: it's how we keep the app small and battery- friendly, and it's also where your audio is actually processed.
On iPhone and iPad
Eavesdrop uses Apple's SFSpeechRecognizer and requires its
on-device recognition mode. Availability depends on your device, iOS
version, language, and the models available to the system recogniser.
Eavesdrop cannot download speech models on iPhone or iPad. If on-device
recognition is unavailable, recording stops with an error instead of
falling back to Apple's servers.
On Android
Eavesdrop uses the Android RecognitionService provided by
your device and requires Android 12 or newer and a dedicated on-device recognizer. A compatible offline
language model must be installed. If the service cannot recognize speech
locally, Eavesdrop stops with an error instead of allowing network
recognition. On supported Android versions, the app can ask the system
to download a missing model when you tap Download model. Downloading a
model requires a network connection; it does not upload a recording.
In both cases, only the audio you actively record while Eavesdrop is listening is sent to the OS recogniser — never anything else from your microphone, and never when you're not in a recording session.
4. Permissions we request
- Microphone — required to capture your speech. We only listen while you've explicitly started a recording.
-
Speech recognition (iOS only) — required for iOS to
let us call
SFSpeechRecognizeron your behalf.
You can revoke either permission at any time in your phone's Settings. Without microphone access, Eavesdrop simply won't be able to record.
5. Diagnostic reports
We use Sentry to receive reports about crashes and other reportable failures, so we can fix bugs. When this service is configured in a release build, a report may contain:
- The error type and call stack. Error messages and SQL parameters are removed.
- Your device model (e.g. "iPhone 15 Pro") and OS version.
- The version of Eavesdrop you're running.
The app removes transcript text, titles, error messages, user identifiers, screenshots, and arbitrary metadata from these reports. Microphone audio is not attached. Reports are used to investigate failures and improve reliability; they are not used for advertising.
Diagnostic reports are only sent from release builds with this service configured. Development builds do not initialise Sentry. The usage-stats switch described below controls Aptabase analytics, not diagnostic reports.
6. Usage stats
To understand how saved transcripts are used, release builds with analytics configured send a small event stream to Aptabase, an analytics provider. Usage stats are enabled by default and can be turned off in Settings. Eavesdrop does not include an account identifier, advertising ID, transcript text, or title in these events.
What gets sent:
-
recording_saved— sent after a recording is successfully saved. Includes a coarse duration bucket (<30s,30s-2m,2m-10m,10m-30m,>30m) and the recogniser language code (e.g.en-US). Never the transcript content, never the title, never the exact duration.
Turning usage stats off immediately blocks new events and access to the unsent event queue, which is discarded. A network request already in progress cannot be recalled. Turning stats back on does not restore discarded events.
Each event also carries a timestamp, operating system name and version, device locale, app version and build number, SDK version, and a temporary session ID generated by Aptabase. The SDK does not send a persistent device or advertising identifier.
Aptabase's data processing agreement explains that its service uses the connection's IP address and User-Agent temporarily to derive your approximate country and region and a pseudonymous daily user identifier. The identifier uses a salt unique to each app that rotates daily; salts are deleted within 48 hours of creation. Country, region, and the daily identifier are retained with analytics. The raw IP address and User-Agent are not stored with that analytics data. Eavesdrop does not send GPS coordinates or request location permission.
Usage stats are only sent from release builds. Development builds send nothing.
7. Your controls
You can turn off anonymous usage stats at any time from Settings › Privacy › Anonymous usage stats. The change takes effect immediately.
We don't use advertising SDKs, attribution SDKs, or any cross-app tracker. We don't read your address book, device location, photos, or calendar. Aptabase's approximate country/region information comes from the network connection, as described above, rather than location access on your device. The microphone is the only sensor we touch.
8. Sharing transcripts
When you tap Share on a transcript, Eavesdrop hands the text to the standard share sheet on your phone (iOS or Android). Where the text goes after that — Mail, Notes, Messages, a cloud service — is your choice and is covered by the privacy policy of that destination app, not ours.
9. Children
Eavesdrop is not directed at children under 13. If you have a concern about a child's use of the app or information sent to us, contact privacy@aflutter.dev.
10. International users
Eavesdrop does not upload audio or transcripts to its telemetry providers. Diagnostic reports and optional usage statistics may be processed by Sentry and Aptabase in countries other than your own. Their privacy policies are linked in § 5 and § 6. Sharing or exporting a transcript is a separate action you control, as described in § 8.
11. Changes to this policy
If we change this policy in a way that affects how your data is handled, we'll update this page and its effective date. The current policy is available from the app's Settings screen.
12. Retention and deletion requests
Local transcripts and drafts remain until you delete them or remove the app and its data. Previously shared or exported copies, and backups made by older app versions, are not removed by deleting a transcript in Eavesdrop. We do not hold a server-side copy of your transcript content.
Diagnostic reports are retained according to the configured Sentry service settings. Aptabase states in its data processing agreement that it retains telemetry for up to five years, or until the corresponding app or customer account is deleted, whichever occurs first. This describes the provider's published retention policy. To ask about retention or request deletion of records that we can identify:
- Step 1. Email privacy@aflutter.dev with the subject "Eavesdrop data deletion request".
- Step 2. Tell us the approximate dates you used Eavesdrop and your device model and OS version, if you have them. Do not send transcript contents or microphone recordings. We use the details you provide only to investigate your request.
- Step 3. We'll review the request and explain which records we can identify and delete. Because telemetry is not linked to an account, we may be unable to locate records belonging to you.
If you contact us by email, we receive your email address and the information you choose to send. We use that correspondence to respond to your request. Turning usage stats off prevents new analytics events and clears the unsent queue; it does not recall events already sent.
13. Contact
Questions, concerns, or data-rights requests: privacy@aflutter.dev.