What leaves the phone, and who keeps what
- Applies to
- Copperplate, both editions
- From
- S M Fahim, Ergonomc LLC
- Date
- October 15, 2026
This page is for whoever approves Copperplate, our dictation keyboard for Android, at your firm.
What we hold
No server we operate can read your audio or dictated text, in either edition. This is everything we hold:
| Data | Held by Ergonomc? |
|---|---|
| Audio and dictated text | No |
| Vocabulary, history and settings | No. Stored on the phone, with a firm list also in your device management. |
| Name, work email, firm, seats, license keys and messages you send us | Yes, to issue licenses and reply to you |
| Payment card details | No. A payment processor holds them. |
| Crash reports | Private Cloud edition only, if a user turns them on, and never with audio, text or vocabulary |
| Usage analytics | None. Neither app contains analytics, advertising or tracking libraries. |
On-Device edition
- The mic runs only while the keyboard panel is open and you're dictating, never in password or other sensitive fields.
- Speech recognition and cleanup run on the phone, with its stored vocabulary. Audio stays in memory and is never saved.
- The text goes into your app through Android's standard keyboard connection, not the clipboard.
Your phone
- Microphoneonly while the keyboard is open and you've tapped the mic
- Speech recognition
- Cleanup, with your vocabulary
- Text into the app you're using
VocabularyDictation history (as your firm sets it)
Google Play
Installs the app and delivers its speech models
Your device management
Pushes your firm's settings and license key
Both feed in only.
Network No internet permission. Android blocks the app from the network.
Our servers
Receive nothing from the app.
| Kept where | What |
|---|---|
| Your phone | Vocabulary; dictation history only as your firm allows |
| Our servers | No audio, text or vocabulary. Account and license details only |
| Anyone else | Nothing |
Network: nothing leaves from the app. Its manifest has no android.permission.INTERNET entry, and Android doesn't let an app without it open network connections. It passes dictation to other apps only by typing it at your cursor.
Billing and models: Its models arrive through Google Play, adding background-download permissions. These let Google Play fetch files. The app itself still can't connect.
Private Cloud edition
- When you tap the mic, the phone asks the provider's server for its attestation report. That's a list of the software it loaded, signed with a key built into the chip. It works like a tamper-evident seal with the contents printed on it.
- The phone checks the signature and compares the list with the provider's published one. On any difference, it sends nothing and shows why.
- On a match, it encrypts the audio, and any vocabulary names the dictation needs, so that only that server can decrypt them.
- The server's processor keeps its memory encrypted, even from the data center's staff. It turns the speech into text and sends it back.
A few routing fields, such as the model name, stay readable in transit.
No connection: it switches to processing on the phone and shows it. If your firm has turned that off, dictation waits for a connection.
Your phone
- Microphone
- Check the serverThe phone asks for the server's hardware-signed report and compares it with the published software list.
MismatchStop. Nothing sent.
MatchEncrypt the audio, and the names this dictation needs, to that server
- Text into the app you're using
OfflineNo connection → the phone does the work, and the keyboard says so.
Over the Network: encrypted audio out, text back
Sealed server (sealed-cloud provider)
Turns speech into text and cleans it up in encrypted memory
Text back to the phone
Our servers
Never receive readable audio or text.
| Kept where | What |
|---|---|
| Your phone | Vocabulary; dictation history only as your firm allows |
| Sealed-cloud provider | Request metadata, such as IP address and time, for up to 90 days |
| Our servers | No audio, text or vocabulary. Account and license details only |
Third parties and what they keep
| Data | Kept by the Private Cloud provider? |
|---|---|
| Request metadata: IP address, time, account key, amount processed, request path and method, status code, response time | Yes, for up to 90 days. The provider's authorized staff can see it. |
| Usage totals per account key | Yes, kept indefinitely for billing |
The account key is ours, not your firm's. The IP address it logs is the one your phone connects from. Ask us at support@ergonomc.com which provider we use and where it processes requests. Before any change of provider, we update this page and the privacy policy (opens smfahim.com) and email account holders.
Other third parties: Google Play distributes the apps and models. Our payment processor and email provider handle billing and mail, and receive no dictation unless you email some.
Models: both editions run speech-recognition and cleanup models built on third-party models. We don't train any model on customer dictation. Ask us for the model list, with each maker and license.
On the phone
Vocabulary import: a list is read from a file you choose in Android's file picker, with no storage permission.
Backups: history, vocabulary and settings are excluded from Android backup and device-to-device transfer.
Voice data: no voiceprints or speaker profiles, anywhere.
Device-management controls
Administrators set these through Android Enterprise managed configuration in any console that supports it, including Microsoft Intune. Staff can't change a locked setting on a managed phone.
| Setting | What it controls |
|---|---|
| Which edition each group gets | The app your console assigns in managed Google Play |
| Processing location (Private Cloud) | Private Cloud, or this phone only |
| Phone processing offline (Private Cloud) | Allowed or not allowed |
| Modes | Which modes staff can use, and the default |
| Firm vocabulary | A list pushed to every phone |
| History on the phone | How long it's kept, or not at all |
| Crash reports (Private Cloud) | Whether users can turn them on |
| License key | Pushed by the console |
On Intune, also add each app's package ID, which we send with your licenses, to the Approved keyboards list for Android.
Limits of these protections
- Attestation shows what software a server loaded, not that the software or the chip is free of flaws. Researchers have found and makers have patched weaknesses in such hardware before.
- The provider writes the expected-software list. The check accepts whatever that list contains.
- The provider's metadata is real data (section 4).
- Text you put into another app is handled by that app. Dictating into Gmail sends that text to Google, as an email would.
- History on your firm's phones is your firm's record, discoverable like anything else on them. We hold no dictation, so we have none to produce.
- The phone is the boundary. A compromised phone, or one without a screen lock, exposes what's on it.
- Locks hold on managed phones. A rooted or unmanaged phone is outside what device management can enforce.
What we don't claim
- HIPAA. We don't describe Copperplate as HIPAA compliant and don't offer a business associate agreement. Whether a particular use meets your duties is your counsel's call; this page gives them the facts. We don't market it for clinical use.
- Privilege. We don't claim that using it preserves attorney-client privilege. That depends on how it's used, and by whom.
- Ethics opinions. We don't claim it satisfies any bar opinion, including ABA Formal Opinion 512.
- Certifications. We claim no SOC 2 report, ISO certification or third-party audit, and show no badges. A certificate the provider holds is the provider's.
- GDPR. We claim no GDPR compliance label.
- Zero retention. Not for the Private Cloud edition, because of the metadata in section 4.
- Accuracy and speed. We publish no accuracy or speed figures.
- Integrations. It types into apps on the phone. It doesn't connect to case management or document systems.
- Platforms. Copperplate runs on Android phones. We make no claims about other devices.
How to check it
No internet permission (On-Device edition)
- On a test phone, run
adb shell pm path <package-id>, thenadb pullthebase.apkit lists. - Run
apkanalyzer manifest permissions base.apkoraapt2 dump permissions base.apk. - Confirm that
android.permission.INTERNETisn't listed. Repeat this on each update before you approve it. We run the same check on every build.
No traffic while dictating
- Put a test phone behind a network monitor you trust.
- Dictate for several minutes with the On-Device edition. The app should make no connections. Background model downloads come from Google Play, not the app.
- Repeat with the Private Cloud edition. You should see only encrypted connections, to the hostnames we give you.
The server check (Private Cloud edition)
On a demo, we show the phone refusing a server whose report doesn't match. In our own test of that check, we changed one digit of the expected value, and no audio was sent. We ran it in October 2026, on a laptop client against the server check. Ask us for the write-up, dated October 2026.
Questions from your review
Send your security questionnaire to support@ergonomc.com, or book a demo and bring your IT lead. Questionnaires go to S M Fahim, Ergonomc's founder, who leads the engineering.