1. Who we are
TrueRide is an Android app for drivers who work with ridesharing apps. It reads the ride offer on the screen and calculates, on the phone, whether it is worth taking, based on the costs and thresholds you entered.
The data controller is [TO COMPLETE: sole-trader name (PFA)], tax ID [TO COMPLETE], registered at [TO COMPLETE]. Write to us at [TO COMPLETE: email] with any question about your data.
We have not appointed a data protection officer (DPO); for any request about your data, write to us at the contact address (to be confirmed by our lawyer).
TrueRide is not affiliated with Uber, Bolt or any other ridesharing platform.
2. In short
- The offer is read and calculated on your phone. Screenshots and the full text read stay in memory only, for one calculation, and are not sent anywhere. Exception: in test versions the log also carries the text read (§11).
- The app does not accept or decline rides and does not tap anything in the driver app.
- You have no account with us and we do not ask for GPS access. For the subscription, the phone sends our server the Google purchase token and a random installation code (§5.2). Otherwise, technical data leaves only through Sentry: the report you send (§5) and what you choose with the three switches (§5.1). Sentry derives your approximate city from the connection.
- The history of offers and shifts is kept only if you turn it on, and it stays on the phone (§4.2).
- What you enter in the Garage (deadlines, odometer readings, expiry dates) stays on your phone (§4.3).
- This site uses no cookies and no analytics. The calculator sends and saves nothing.
3. How the offer is read
3.1 The accessibility service
A shift starts only with the TrueRide accessibility service on, after you have read the explanation in the app and given your consent. The explanation has two layers: a short text on the consent screen, and “Details”, small in the corner, which opens the full text in the app. Without consent, the service reads nothing.
The service:
- receives events from Android only from Uber Driver and Bolt Driver;
- reads on-screen text only from these two apps, including their floating bubble while another app is in front; it ignores the windows of other apps;
- does not tap, perform gestures or read keystrokes.
3.2 Screen capture
- Android 11 and later: the accessibility service takes screenshots only while Uber Driver or Bolt Driver is open (in front or as a bubble), at most three per second.
- Android 8–10: capture uses Android’s screen sharing, which asks for your consent each time a shift starts. While the shift is on, Android gives the app an image of the whole screen. The app compares it with the previous one to notice a change, but reads text from it only when Uber Driver or Bolt Driver is in front.
While a shift is on, a persistent notification tells you so.
3.3 What happens to what is read
- Text is recognised from the screenshot on the phone, with Google ML Kit, whose model is bundled in the app.
- From all the text, the app keeps only numbers and units: price, distances, durations, surge multiplier. It does not extract names or addresses, even when they appear on screen. Exception: test versions (§11).
- The screenshot and the full text exist only in the phone’s memory, for one calculation, and are then replaced. They are not written to storage and not sent. Exception: the text, in test versions (§11); the screenshot stays in memory only.
- If you turn on the “Log” switch, the log keeps and sends to Sentry the shape of the lines read (letters replaced with “L”) and their numbers (§5.1). Without the switch, it does not keep them. Test versions are an exception: their log holds all the text read (§11).
- Passenger data may appear on the offer screen. For the ride, the controller of that data is the ridesharing platform; TrueRide neither keeps nor transmits it.
- If the driver app protects its screen against capture, Android does not give us the image. TrueRide tells you it cannot read the offer and does not try to bypass the protection.
4. What is stored on the phone
Everything below stays in the app’s private storage only. It is excluded from Google backup and from transfer to a new phone.
4.1 Settings and state
| What | Why |
|---|---|
| Vehicle costs, thresholds, main indicator, values shown on the card, theme, chosen notifications and sound | So you don’t re-enter them |
| The Dashboard layout, period, fuel and chart indicator you chose | So the Dashboard looks the same the next time you open it |
| That you finished setup, the version of the accessibility explanation and of the disclaimer you accepted, your answers about the history and about the platform, that you have seen the one-time history notice at the Basic tier | Proof of your consent; if the explanation changes, you are asked again |
| Time of the last offer read and the time the service last saw Uber Driver or Bolt Driver open | The “Why isn’t the card showing?” screen. Times only, no offer content |
| Summary of the last shift: number of offers, how many good / excellent / poor, average and best offer in lei/km, lei/hour and lei/min (the screen shows the chosen one), duration | The Shift screen, on the phone only. Replaced at every shift |
| Subscription plan, end date, whether it renews, time of the last check and the random installation code | So the app works offline for up to 72 hours and knows which phone the subscription is on (§5.2) |
| The free trial: when it started, how many of the 10 rides you have used, how many offers were counted and whether it has ended | So the app knows how many rides you have left in the trial. It stays on the phone only and does not leave it |
| Number of failed report uploads and the last error code | So the next report tells us why the previous one did not arrive |
4.2 History (optional)
Only if you choose “Turn on history” (during setup or in Settings → About → “Keep history (1 year)”), the app saves:
- for each offer: the time, the platform (Uber or Bolt), lei/km and the verdict;
- for each shift: the start time and the duration.
The platform is kept only if you accepted the text that names it; until then offers are kept without it. You can turn it off anytime in Settings → About → “Keep the platform too”: the history stays, and new offers are kept without the platform.
The Dashboard uses them. Each record is deleted automatically after one year. When you turn the switch off, the whole history is deleted. Without your consent nothing is written to the history.
4.3 The Garage
What you enter in the Garage stays on your phone until you delete it: the items you track (for example ITP, RCA or engine oil, or a name you type), their intervals, the work done and documents renewed with their date and odometer reading, the odometer readings you enter, and the reminders already sent. The app uses them to show your deadlines and send you reminders. They are not part of the history or of the report.
4.4 The ML Kit component
ML Kit creates on the phone its own installation identifier and a queue for statistics. We removed from the app the component through which ML Kit sends them to Google; the queue stays empty and nothing leaves the phone (verified in our tests, with no request to Google).
4.5 The log and Sentry
| What | Why | How long |
|---|---|---|
| The shift log: start (with the Uber/Bolt version and the phone settings that change the screen), stop, how many offers, how many cards, as counts; with the “Log” switch, also the shape and numbers of the lines read and the reading quality (in test versions, all the text read, §11) | The report you send and, with the switch, Sentry | 48 hours, at most 20 MB |
| A random installation ID, created by Sentry | Links together what the same installation sends | Until you clear the app’s data |
| What you chose for the three switches | Proof of consent | Until you change it |
| With the “Errors and phone state” switch, the app’s last steps | To accompany the next error | Rewritten as you use the app; removed when you turn off a switch or clear the app’s data |
| What has not yet gone to Sentry while you are offline | Sending later | At most 128 packages; emptied when you turn a switch off |
| The report waiting for internet | Sending later | Until it is sent; after 20 failed attempts, 7 more days |
5. The report you send us
The report helps us fix reading problems. It leaves only when you tap “Send report” and choose a channel:
- “Direct Transfer”: the report goes through Sentry, encrypted in transit (HTTPS). Without internet, it waits on the phone and is sent automatically once you are connected;
- “Save to Downloads” (Android 10+): it is saved in the phone’s Downloads folder, and what you do with it next is up to you.
The report contains:
- your note, if you write one (at most 500 characters). Do not put personal data in it;
- the version of the app and of the reading rules, the Android version, the phone maker and model, the time zone, the phone language;
- technical state: permissions granted, the accessibility service status and consent version, battery optimisation, battery saver, RAM, screen refresh rate, theme and animation speed, the app TrueRide was installed from, failed uploads;
- the shift log from the last 48 hours (§4.5): counts and technical states; with the “Log” switch, also the numbers of the lines read (in test versions, all the text read, §11).
When you choose “Direct Transfer”, the report is sent, even with no switch on, together with the random installation ID, device information and the approximate city derived from the connection (to be confirmed by our lawyer).
The report does not contain screenshots, on-screen text, names or addresses; offers appear only as numbers, and only with the “Log” switch on. The report of a test version contains its log, so all the text read from the screen, including passengers' names and addresses (§11); screenshots are never included.
5.1 Telemetry: the three parts
During setup you choose “Accept all”, which turns on all three, “Send nothing”, or “Customize”, where you turn on only what you want (all start off); in Settings you can also turn each one on or off separately. In Settings, “Telemetry” turns all three on or off at once; when only some are on it shows “partial”, and one tap turns them all on. The consent screen has a common line (“Sent to Sentry, to fix errors. Withdraw anytime in Settings.”), and “Details”, small in the corner, opens the full text in the app.
- Errors and phone state: the type and place of the error, the app’s last steps and, on Android 12 and later, the state of its threads (numeric values from memory); during a freeze, the app’s threads; the Uber Driver and Bolt Driver versions and the phone settings that change how the screen looks (ROM, font size, dark mode, navigation, refresh rate), the security patch level, the screen width in dp, how many accessibility services are on (the number only, no names) and the standby bucket Android put the app in; when Android has stopped the app (for example for lack of memory), at the next opening: the reason Android gave (on Android 11 and later) and whether a shift stopped unexpectedly.
- Reading speed (if it appears in Settings): how long startup and screens take, how long each offer takes to reach the card, step by step, one session per shift and per-minute totals about reading, the battery (level, whether it is charging), temperature and memory, and whether it is the first shift or first card on this phone (numbers, no text from the screen and no offer figures). In test versions, also how many offers and how many rides the app detected, per platform (§11).
- Log: the log lines, with the shape of the lines read (letters replaced with “L”) and their numbers, how confident the reading was and how sharp and bright the frame was (numbers, no image); never the screenshot or the text. In test versions the log also has all the text read from the screen (§11).
With each switch, the installation ID, device information and approximate city are sent too, as with the report.
5.2 The subscription
When you buy a subscription, at start-up, at Start and periodically during a shift, the phone sends our server (Supabase, in the EU, Frankfurt) two things: the purchase token issued by Google Play and a random installation code, created at first start and new on every reinstall. The code is different from the installation ID used by Sentry (§5) and the two are not linked. The server asks Google Play for the subscription status and keeps: the token, the plan, the expiry date, the payment status, the code of the active phone, and the times of checks and moves. Google Play notifies the server of any change to the subscription, through Google Cloud.
What for: checking the subscription and the “one subscription, one phone” rule (Terms, §6). Not sent: names, email, addresses, offer data.
To protect the server from abuse, we count requests per IP address. The IP is not kept: only a fingerprint made with a secret key remains, from which the IP cannot be recovered.
6. Who receives data
| Recipient | What it receives | Why | Where |
|---|---|---|---|
| Sentry (Functional Software, Inc. d/b/a Sentry), processor | The report and what the switches send. It also receives the connection’s IP address; it uses it only to derive the city and does not keep it on the event | Receiving reports and debugging | Data in the EU (Frankfurt); some reaches the US, under the EU–US Data Privacy Framework (DPF) (to be confirmed by our lawyer) |
| Google, independent controller | Data related to installing and updating the app from Google Play, under Google’s policy | Distributing the app | Under Google’s policy |
| Supabase (Supabase Pte. Ltd), processor | Purchase token, installation code, subscription status, IP fingerprint; the platform’s technical logs | The subscription server (§5.2) | EU (Frankfurt) |
| Google Cloud (Pub/Sub), processor | Google Play notifications about the subscription, with the purchase token | Notifying the server of changes | [TO COMPLETE: region] ⚖️ |
| Google Play, independent controller for payment | Payment and subscription status; our server sends it the token to learn the status | Selling and checking the subscription | Under Google’s policy |
We do not sell data or give it to anyone else. We do no profiling and show no ads.
7. Legal basis
| Processing | Basis (GDPR Art. 6(1)) |
|---|---|
| Reading the offer, the calculation, settings and the last-shift summary | (b) — the service you ask for by using the app |
| The one-year history | (a) — your consent, withdrawable at any time with the switch |
| The Garage | (b) — the service you ask for when you use it (to be confirmed by our lawyer) |
| Checking the subscription and the “one subscription, one phone” rule | (b) — the subscription contract (Terms, §6) (to be confirmed by our lawyer) |
| Keeping the subscription row for 12 months after it ends | (f) — our legitimate interest in answering complaints and disputes about payment or moves (to be confirmed by our lawyer) |
| Request limit per IP and server logs | (f) — our legitimate interest in protecting the server from abuse (to be confirmed by our lawyer) |
| The report you send and the three Sentry switches | (a) — your consent, given with each report and each switch; you can withdraw the switches anytime in Settings (to be confirmed by our lawyer) |
The accessibility service is required for a shift; without it, the shift does not start. The data in §5.2 is needed to buy and use the subscription. The history, the report and the Sentry switches are optional: the app works the same without them.
The verdict shown on the card is a calculation made on the phone. Whether to accept the ride is your decision; there is no automated decision with legal effects on you.
8. How long we keep data
- Screenshot and text read: in memory only, for one calculation (test versions: the text also in the log, §11).
- History: one year per record, or until you turn the switch off.
- The Garage: until you delete it, from Garage → “Delete Garage data”, or until you clear the app’s data.
- Settings and the rest of §4.1: until you clear the app’s data or uninstall it.
- The log on the phone: 48 hours.
- Report on the phone: the temporary copy, at most one hour; the one waiting for internet, until it is sent, and if sending gives up after 20 attempts, 7 more days.
- In Sentry: 30 days, then deleted automatically (to be confirmed by our lawyer). This applies to reports, errors, sessions and the log.
- Report copied to us: until we solve the problem you sent it for.
- On the server, the subscription row: 12 months after the subscription ends, then deleted automatically.
- The IP fingerprint for the request limit: deleted daily, so at most ~2 days. Supabase platform logs: one day.
- Google Play notifications through Google Cloud: at most 7 days, if they could not be delivered.
- On the phone, the subscription status and installation code: until you clear the app’s data or uninstall it.
- When you turn a switch off: nothing new is sent; what was waiting on the phone is deleted; log lines from the last 5 seconds at most, already prepared, are still sent. What already reached Sentry stays until the 30 days are up.
9. Your rights
You have the right of access, rectification, erasure, restriction, portability and objection (GDPR Arts. 15–21), and the right to withdraw consent at any time, without affecting what was done before.
- Data on the phone is under your direct control: Android Settings → Apps → TrueRide → Storage → Clear data, or uninstalling.
- History: the switch in Settings → About; turning it off deletes everything.
- The Garage: delete an item from its detail screen; everything, with “Delete Garage data”.
- Accessibility consent: turn the TrueRide service off in Android Settings → Accessibility; from then on it reads nothing.
- The Sentry switches: in Settings, anytime; the effect is the one in §8.
- Subscription data on the server: cancel the subscription, then write to us at the address in §1 with the code from Settings → Subscription. The code is shown only on the phone the subscription is on; after uninstalling it can no longer be found, and the row is deleted automatically after 12 months (§8). You can object at any time to the processing based on (f) in §7.
- Data in Sentry: the app cannot delete it from the phone; it is deleted automatically after 30 days. To have it deleted sooner, write to us at the address in §1 with the approximate date and your phone model: you cannot see the installation ID used by Sentry in the app (it is different from the code in §5.2). Sentry only allows deleting whole groups of errors, so we delete the whole group your report is in (to be confirmed by our lawyer).
We reply within one month; for complex requests this may be extended by two further months, and we will tell you. You may lodge a complaint with the Romanian data protection authority (ANSPDCP), www.dataprotection.ro.
10. Permissions requested
| Permission | What it is for |
|---|---|
| Accessibility service | Reading the offer from Uber Driver and Bolt Driver and, on Android 11+, screen capture (§3) |
| Display over other apps | The result card appears over the driver app |
| Foreground service | The shift keeps running while on, with a persistent notification; on Android 8–10, also screen sharing |
| Notifications (optional) | The shift notification, the alerts you choose and the Garage reminders |
| Vibration | Alerts, if you choose vibration |
| Run after the phone restarts | Garage reminders continue after a restart without opening the app |
| Prevent the phone from sleeping | While reminders are checked, a few seconds |
| Internet and network state | Checking the subscription (§5.2), sending the report (§5) and, if you turned them on, the data of the three switches (§5.1) |
| Google Play billing | Buying the subscription and reading it from Google Play |
The app may take you to the battery optimisation setting so the shift is not stopped in the background; this gives no access to data.
11. Test versions
Test versions, given directly to some drivers before publication, always write the full log on the phone, including all the text read from the Uber and Bolt screens (not only the shape and numbers of the lines), with passengers' names and addresses, without waiting for the “Log” switch. Only your report and what you switched on go to Sentry, but with the “Log” switch (or with the report) this complete text goes too; it is kept at Sentry for a limited period. With the “Reading speed” switch, two more numbers go: how many offers and how many rides the app detected, per platform (Uber or Bolt); they are not the content of the offers and not your trial counter. Screenshots never leave the phone. Published versions do not send text, names or addresses. What they send is marked as coming from a test version. The report can also go through WhatsApp or another app you choose. Debug test versions also trust security certificates you installed on the phone.
12. Children
TrueRide is meant for adult drivers and is not intended for anyone under 18.
13. Changes
Any change to this policy is published on this page, with the update date. If what leaves the phone changes, we will also tell you in the app and, where needed, ask for your consent again.