Legal
Privacy policy
Last updated October 13, 2026
The short version: you can read codes, live data, freeze frame and readiness in DriveDecode without an account. If you sign in, it is to use DriveDecode Pro, and we get only your email address, or what Apple or Google share with us if you sign in with them. There are no ads in the app and we run no analytics in it. Your live engine data stays on your device unless you press a button that asks for an AI analysis. What leaves your device, and when, is listed below item by item, and we do not sell any of it.
This policy covers the DriveDecode app on iPhone, iPad, Android, Mac and Windows, and this website, all operated by Miller Tech Solutions, a division of Miller Warehouse, LLC("we", "us").
The DriveDecode app
What the app sends us
Trouble codes and your vehicle make
- When
- When you scan for codes
- Why
- To look up what each code means for your make and return the explanation
- How long we keep it
- Not stored against you. Code explanations are cached by code, the same for everyone
Your VIN
- When
- When the app reads your vehicle identity
- Why
- To decode year, make, model and engine, so codes and recalls are matched to your car
- How long we keep it
- Kept in a decode cache, with no expiry date, so the same VIN is not looked up twice. It is not linked to your account, your device or any other information about you
Make, model and year
- When
- When you open vehicle information
- Why
- To check for open safety recalls on that vehicle line
- How long we keep it
- Cached for up to a day, the same for everyone who owns that model
Your account
- When
- Only if you choose to sign in with Apple, Google or your email address, or approve a sign-in code for a Windows PC
- Why
- So a Pro subscription follows you to your other devices
- How long we keep it
- Until you ask us to delete your account
A snapshot of your scan, when you ask for an analysis
- When
- Only when you press Analyze this scan or Explain in depth. Never on its own
- Why
- To read your codes together with the car and the conditions, and explain what they mean as a set
- How long we keep it
- The snapshot is not stored. See "When you ask for an analysis" for how answers are cached
Subscription status
- When
- When you buy, renew, cancel or restore DriveDecode Pro
- Why
- To know whether your account has Pro
- How long we keep it
- While you have an account with us
An adapter order number
- When
- Only when you redeem one in Settings
- Why
- To add the Pro months included with your adapter, and to stop one order being redeemed twice
- How long we keep it
- See "Pro included with an adapter" below
Your adapter's serial number
- When
- When you connect a DriveDecode M1
- Why
- To confirm it is a genuine DriveDecode M1, so the app and its analysis know which adapter took the readings
- How long we keep it
- Not stored. It is checked against our list of the adapters we made, then discarded
A report, and the email address you send it to
- When
- Only when you choose Email report
- Why
- To deliver the report to that one address, with your account email as the reply address
- How long we keep it
- Not stored and not logged. They pass through our server to be sent
Your computer name
- When
- On Windows, when you ask for a sign-in code
- Why
- So the sign-in page can show you which PC is asking before you approve it
- How long we keep it
- Up to ten minutes, then deleted with the code
Your email address and a name for your device
- When
- Only when you choose to sign in with email
- Why
- To send you the sign-in link and code, and to show you which device is asking before you approve it
- How long we keep it
- The pending sign-in is deleted after fifteen minutes or as soon as you sign in. The address stays on your account until you delete it
A device integrity check
- When
- On requests from the iPhone, iPad and Android apps
- Why
- To confirm a request comes from a genuine copy of the app
- How long we keep it
- Not stored. It is verified and discarded
Accounts
An account is optional. Diagnostics work without one, and the app only asks you to sign in when you try to use DriveDecode Pro, redeem an adapter order, have us email a report, or open the sign-in screen yourself.
You sign in with Apple, with Google or with your email address. We never see a password, and email sign-in has none. From Apple we receive an account identifier, your email address and, if you share it, your name. If you choose to hide your email, we receive a relay address from Apple instead of your real one. From Google we receive an account identifier, your email address, your name and a link to your Google profile picture. We do not display or use the picture. We use the rest to keep you signed in, to attach a subscription to you rather than to one device, and to answer you if you contact us. We do not send you marketing email.
If you choose Google, the app signs you in with Google's own sign-in software rather than a web page. It runs only when you choose Google to sign in, or when you sign out of a Google account. While it runs, it collects information for Google, under Google's privacy policy. That can include your Google account details, identifiers for your device, information about the sign-in itself, and your approximate location (not your precise location). Google uses this to sign you in and keep your account secure, and to measure how its sign-in service performs. Google does not pass this information on to us. The approximate location needs no location permission: the app does not ask for one, cannot see where you are, and never receives it. If you sign in with Apple, or do not sign in at all, Google's sign-in software does not run.
If you choose email, we send one email to the address you enter. It holds a link and a six-digit code, and either one signs you in once, within fifteen minutes. The link opens drivedecode.co/signin, which shows the name of the device that asked (for example "iPhone" or your computer's name) so you can check it before you approve. Until then we hold the address, that device name and the pending sign-in, and delete them after fifteen minutes or as soon as you sign in. If that address already belongs to a DriveDecode account, for example one you made with Google, you are signed in to that account. Otherwise a new account is made with only the address. We do not use it for anything else, and we do not send you marketing email.
A Windows PC cannot show the Apple or Google sign-in screens, so the Windows app can also show a short code instead. You sign in on our website at drivedecode.co/link from any device and enter the code, and the PC is signed in to the same account. The code, and the computer name shown to you while you approve it, are deleted after ten minutes or as soon as the PC signs in.
Buying DriveDecode Pro
Subscriptions are sold through the App Store and Google Play. Apple or Google takes the payment, so we never receive your card number, billing address or payment details.
We use RevenueCat to handle subscriptions across the two stores. When you subscribe, the app tells RevenueCat your DriveDecode account identifier, and RevenueCat receives the store's purchase record: which plan, when it started, when it renews or ends, and whether it was refunded. Our server asks RevenueCat for that status and stores the result against your account: whether you have Pro, whether it came from a subscription or a hardware bundle, and when it ends. We also keep a log of the subscription notifications we receive, so a missed or duplicated one can be traced.
The app keeps a copy of your last known Pro status on your device, so Pro keeps working through a brief loss of signal. Our server still checks it on every analysis.
Pro included with an adapter
If Pro time comes with an adapter you bought from us through a marketplace such as eBay, we receive the order from that marketplace: the order number, the item, your marketplace user name, and whether the order was cancelled or refunded. When you redeem the order number in the app (Settings → Redeem adapter order), we record which account redeemed it and how many months it granted, so the same order cannot be redeemed twice and so we can answer warranty and support questions about it.
Emailing a report
If you are signed in, you can have us email a report for you instead of using a mail app. The app sends us the PDF, and the CSV if you include it, with the one address you entered. We send it from [email protected] with a fixed message, and set the reply address to your account's email once it has been verified, by Apple, by Google or by an email sign-in, so the person who receives it can reply to you. The report and the recipient's address are not stored and are not written to our logs.
What never leaves your device
- Live sensor data, in normal use. Gauges, graphs, fuel trims, freeze frame, readiness monitors, acceleration runs and battery readings are read from your car, shown to you, and discarded. The app does not upload them in the background and keeps no history of them. The one exception is the analysis button, described below, which you have to press.
- Reports, unless you send them. A PDF or CSV report is built on your device. It goes nowhere unless you print it, share it, or ask us to email it as described above.
- Your settings, your remembered adapter, your adapter's Wi-Fi address if you set one, your best acceleration times and, on a computer, the window size.
- A random install identifier generated on your device and held in the iOS Keychain, Android Keystore or the equivalent secure storage on a computer. It contains nothing about you or your device. It is sent to us only with an analysis request, and is kept with your account identifier in that analysis's usage record, described below.
When you ask for an analysis
AI analysis is part of DriveDecode Pro and needs a signed-in account. Two buttons send data through our server to a language model run by OpenAI: "Analyze this scan" and "Explain in depth" on a single code. Nothing happens until you press one. There is no automatic analysis, and no screen triggers one by being opened.
Explain in depth on one code sends that code, its status, whether the check-engine light is on, and the decoded description of your car: make, model, year, trim, body style, engine size, cylinders, fuel type and drive type. It also says whether your adapter is a verified DriveDecode M1: a yes or a no, never the adapter's serial number. No live readings, no freeze frame, no measurements. That question is the same for everyone who asks it about that kind of car, so the answer is cached and reused for thirty days, keyed to the code, the vehicle description and the check-engine light, with nothing in it that identifies you or your car.
Analyze this scan sends more, because the point is to read the pieces together: your codes and their status, whether the check-engine light is on, the freeze frame, a snapshot of live readings taken at that moment, which monitors are ready, the app's own fuel trim, battery and acceleration results, the list of readings your car supports, the protocol the adapter negotiated, whether the adapter is a verified DriveDecode M1, and the engine computer's name and calibration ID. That answer is cached for ten minutes against your account and a fingerprint of the request, so a second tap or a retry does not run the same analysis twice. Then it is gone.
Your VIN is never part of either one. The app decodes it and sends the decoded fields, so the model provider receives a description of a vehicle and never a number that identifies yours. Your name, email and account identifier are not sent to the model provider either.
What we keep is accounting, not content: a count of how many analyses your account has run each day, so the daily limit can be applied, and a usage record of each analysis with your account identifier, install identifier, which codes were asked about, which model answered, how many tokens it took and how long it ran. Both are kept while your account exists; deleting it removes them or strips the identifiers, as described under Deleting your account. The snapshot, the answer, the live readings and the VIN are not written to our database.
The analysis checks our code and sensor reference against the published SAE OBD-II standards. When it finds the two disagree, we keep a note of which code or reading it was, what each source said, the vehicle make and which model noticed, so our reference can be corrected. That note has nothing in it that identifies you, your account or your car.
Permissions the app asks for
Bluetooth is used to find and talk to your OBD-II adapter, and nothing else.
On Android 11 and older the system requires location permission before any app may scan for Bluetooth devices. That is an Android rule, not a DriveDecode one. The app does not read your location and does not store it. On Android 12 and newer the permission is not requested, and our Bluetooth scan is flagged so the system knows we do not use it to derive location.
The app asks for location permission for no other reason, on any platform. If you sign in with Google, Google's sign-in software collects an approximate location for Google, as described under Accounts above. That does not use a location permission, and the app never receives the location.
An analysis can offer to find repair shops or auto parts stores nearby. That opens your maps app with a search for one or the other. The maps app finds where you are under its own permission; the app hands it only the words of the search and still never sees your location.
Local network access on iPhone and iPad is used only to reach a Wi-Fi OBD-II adapter, if you use one. On Android the app asks to use the adapter's Wi-Fi network directly for the same reason.
The app does not use the camera, the microphone, your photos, your contacts or your files.
What is not in the app
No analytics or measurement SDK of our own. No crash-reporting SDK. No advertising, no advertising identifier and no third-party trackers. We do not track you across other companies' apps or websites. Two third-party components report to their own maker. Google's sign-in software does, only if you sign in with Google, as described under Accounts above. Google's Firebase software, which the app uses for sign-in and App Check, sends Google basic diagnostic information about how that software itself is running, such as its version. It is not linked to you, and we do not receive it.
Trying it without an adapter
Sample-data mode runs the app against a simulated vehicle using content bundled in the app. It reads nothing from any car, sends no scan data to our servers, and cannot sign in.
This website
We use Cloudflare Web Analytics to count page views. It is cookieless and does not fingerprint you or follow you between sites, which is why there is no consent banner here. There are no advertising pixels, no session recording, no chat widgets and no third-party embeds.
The PC sign-in page at drivedecode.co/link loads Google's Firebase sign-in code so you can sign in with Apple or Google there. No other page on the site loads it.
If you send the support form, we store your email address, the topic you picked, your message, the two-letter country code Cloudflare derives from your connection, and the time. A copy is emailed to us so somebody actually reads it, and a copy is emailed to you as a receipt. We keep support messages so we can follow up and handle warranty claims, and we delete them when you ask.
If you ask to be told when the app is available, we store your email address, the platform you chose, that same country code, the page you came from, and the time. The list is used only to tell you when the app ships and is not shared.
Your IP address is used in the moment, to deliver the page and to stop one connection flooding the forms. It is not written into our records.
Who else handles your data
Each of these handles data to provide its service to us. We do not allow them to use it to advertise to you or to sell it.
- Cloudflare: hosting, network delivery, our API and its logs, the short-lived Windows and email sign-ins, sign-in emails, and delivery of reports you ask us to email.
- Supabase: the database behind that API.
- Google Firebase: sign-in (Firebase Authentication), and App Check, which confirms a request came from a real copy of our app using Play Integrity on Android and App Attest on Apple devices. Firebase's software also sends Google basic diagnostic information about itself, as described under What is not in the app.
- Apple and Google: Sign in with Apple and Google Sign-In if you use them, app distribution, and payment for subscriptions. Their own privacy policies cover what they do with that. Google Sign-In collects some information for Google itself, including an approximate location, as described under Accounts above.
- RevenueCat: subscription status across the App Store and Google Play, as described above.
- OpenAI: the language model behind the analysis buttons. It receives the snapshot described above, never your VIN or your account details, and only when you press the button. The request comes from our server, not from your device, so OpenAI does not receive your IP address or any identifier for you or your device. Under its API terms OpenAI does not use that data to train its models. It may keep a request for up to 30 days to check for abuse, then deletes it.
- The US National Highway Traffic Safety Administration: VINs are decoded through its public vPIC database, and recalls come from its public recall database. Recall checks send make, model and year, not the VIN.
- eBay and other marketplaces: the order details described above, if you bought an adapter there.
- Resend: sends the support emails described above.
Our servers keep diagnostic logs so we can find faults. Cloudflare holds them for no more than seven days, then deletes them. They do not contain your VIN, your trouble codes, your scan data, emailed reports or the addresses they were sent to. Logs about billing or account-deletion faults can include an account identifier or an order number.
What we never do
- Sell or rent your personal information.
- Share your vehicle data with insurers, dealers, lenders or marketers.
- Track you across other websites or apps.
- Use your scan data or analyses to train AI models.
- Add anyone you email a report to onto a mailing list.
Deleting your account
In the app, open Settings → Delete account. It is available on every platform and takes effect straight away. We:
- delete your sign-in account, including your email address and name;
- delete your Pro status and your daily analysis counts;
- ask RevenueCat to delete its record of you and your purchases;
- remove your account identifier and install identifier from the analysis usage records, and your account identifier from the subscription notification log we keep for accounting, so those no longer identify you;
- keep a marketplace order you redeemed marked as redeemed, without your account attached, so it cannot be redeemed again and so we can still handle warranty, refunds or tax.
Deleting your account does not cancel a subscription. Cancel it first in your App Store or Google Play account settings, or you will keep being billed by Apple or Google. If you signed in with Apple on an iPhone, iPad or Mac, the app also asks Apple to revoke DriveDecode's access to your Apple ID.
If you cannot use the app, write to [email protected] from the email address on your account, or tell us which Apple or Google account you signed in with, and we will delete it for you within 30 days.
If there is a breach
If we learn that personal information we hold about you was accessed or disclosed without authorization, we will tell you by email, using the address on your account, as applicable law requires, and say what happened, what was involved and what we are doing about it.
Your choices
Other requests. Write to the same address to ask what we hold about you, to have it corrected, or to have it deleted. To find records that are not tied to an account, such as a support message or a marketplace order, tell us the email address or order number involved. We answer within 30 days.
Signing out in Settings removes your account from that device. It does not delete anything on our side.
California residents, and residents of other states with similar laws, have the right to know what personal information we collect, to have it corrected or deleted, and not to be discriminated against for asking. We do not sell or share personal information for advertising, so there is nothing to opt out of. If you are in the European Economic Area or the United Kingdom, you have the same rights plus the right to object and to complain to your data protection authority. We use your information to provide the app you asked for, to take payment for Pro, to keep the service secure, and to meet our legal obligations.
Where your data is processed
We are based in the United States and our service providers process data in the United States and other countries where they operate.
Children
DriveDecode is not directed at children under 13 and we do not knowingly collect information from them. If you believe a child has given us information, write to us and we will remove it.
Changes
If this policy changes in a way that affects what we collect or how long we keep it, we will update the date at the top and say what changed. We will not quietly widen what we collect.
October 13, 2026. Explain in depth on one code also tells the model whether the check-engine light is on, and Analyze this scan also sends the engine computer's name alongside its calibration ID. Both were already sent and were missing from this page. Deleting your account now also removes your install identifier from analysis usage records. This page now says how long server logs and the VIN decode cache are kept, and what we do if there is a breach.
October 10, 2026. You can now sign in with your email address, with no password. We email you a link and a code. The pending sign-in, which holds your address and a name for your device, is deleted after fifteen minutes or as soon as you sign in; the address then stays on your account, as it would with Apple or Google. A verified email sign-in now sets the reply address on reports you have us email, as Apple and Google sign-ins already did. This policy also now says that Google's Firebase software sends Google diagnostic information about itself, not linked to you, and that your install identifier is kept with your account identifier in analysis usage records. Neither is new collection; both were missing from this page.
October 7, 2026. The app now checks a connected DriveDecode M1's serial number with our server to confirm it is genuine, and an analysis says whether the adapter is a verified DriveDecode M1 (never its serial). Analyses can open your maps app to find nearby repair shops or parts stores, without the app reading your location. We now keep a note when an analysis finds our reference data disagreeing with the SAE standards.
October 2, 2026. Google sign-in in the app now uses Google's own sign-in software instead of a web page. This policy now describes what that software collects for Google, including an approximate location, and names OpenAI wherever an analysis is described.
Contact
Miller Tech Solutions, a division of Miller Warehouse, LLC. [email protected]