Kermo УКР

Kermo Privacy Policy

Effective date: 11 October 2026

Last updated: 28 October 2026

This is a translation of the Ukrainian text. If the two differ, the Ukrainian version applies.

1. Who is responsible for the data

Kermo is an app by Mavka Labs. Mavka Labs is responsible for the processing of data described in this policy. Questions about data: [email protected].

2. Summary

3. How the app works

Kermo guides a car along a route when GPS is gone, drifting or showing the wrong place.

The app only reads data from the car and changes nothing in it.

4. Data on the phone

DataPurposeRetentionTransfer
Sensor readings: gyroscope, accelerometer, compass, barometerDirection of travel, stops, leaving the carNot stored separatelyOnly in a trip record
Location data (GPS), if allowedStarting point, showing the car on the map, checking GPSNot stored separatelyTo the services in section 5 — only the points needed for a request
Car data from the adapter: speed, mileage, other readingsThe car's true speedNot stored separatelyOnly in a trip record
Car parameters: speedometer scale, car profile, compass position in the holderAccurate speed and direction for this carUntil the app is deletedNo
Adapter address and name; the adapter's Wi‑Fi network nameReconnecting to the adapterUntil the adapter is removed in the settings; after that only its address stays in the list of removed adapters, so the app does not connect to it by itselfAdapter name — only in a trip record
VINIdentifying make, model and year; choosing commands for the carThe phone's secure storage (iOS Keychain, Android Keystore)Never. It is not shown on screen and not written to the log or records; they hold only an irreversible fingerprint (the first 16 characters of an HMAC-SHA256 computed with a key that exists only on the phone)
Saved places: home, work, the car's location, recent places, destinations, stops; the number of arrivals at placesGuidance, resuming a tripUntil deletedTo the services in section 5 — only the points needed for a request
Settings: theme, last adapter, completed introduction, the speed for the no-adapter mode, the answer to the analytics question, the number of trips and the date of the first launch (for analytics)Remembering choicesPermanentlyNo
Road cacheGuidance with a weak connectionUp to 90 daysNo
Trip records (with consent)Replaying a trip and finding guidance errors: the wrong road, a wrong turn, a lost connection to the adapterUntil deletedOnly by the user's action (section 8)
Activity log (with consent)Finding errors outside a trip: adapter connection, starting point, the app closing30 daysNo; actions during a trip and just before it are also in the trip record

Contents of the activity log: app launches and closings; the car's position saved to resume guidance; the adapter's state, its name and connection errors; the car's speed once per second outside a trip record; car positions marked by the user, destinations and found places with their coordinates; guidance prompts with street names; where the dot was on the map and where GPS showed the car when the app was unsure of the car's position; position corrections by GPS; speed camera alerts; trip summaries; the car's make, year and platform, the VIN fingerprint; without an adapter — the driver's corrections (speed, pause, position); the phone's battery level and charging, the screen state.

Contents of a trip record: GPS points (coordinates, accuracy, speed, heading, altitude; on Android — satellite data); the route and the roads of the trip; the calculated position of the car; car data from the adapter; the phone's sensor readings and the list of its sensors; the car's make, year and platform, the VIN fingerprint; the same app actions as in the log, for the time of the trip and just before it.

A trip record shows where the user has been. Guidance works the same without records.

5. Third-party services

The services receive only the data needed to show the map, download roads, find an address or plan a route: no name, VIN or phone number. Each service sees the IP address and the request itself, and works under its own privacy rules.

ServiceDataPurpose
OpenFreeMap (tiles.openfreemap.org)The part of the map on screenShowing the map
Kermo road files (tiles.shturman.mavkalabs.com; Cloudflare, Inc.)The road files needed (they reveal the approximate area). Cloudflare may log requests; Mavka Labs does not see those logsDownloading roads
Photon (photon.komoot.io; komoot GmbH)The typed text (from three letters on) and the area, accurate to about a kilometreAddress suggestions
Nominatim (nominatim.openstreetmap.org)The search query and a search area centred on the car's position; a point chosen on the map; the car's position while setting home or workFinding an address; the address of a point
Overpass (overpass-api.de, overpass.openstreetmap.fr, overpass.kumi.systems, overpass.private.coffee)The bounds of the area around the car or the routeDownloading roads when Kermo's road files are missing
OSRM (router.project-osrm.org), FOSSGIS (routing.openstreetmap.de, valhalla1.openstreetmap.de)Start, destination and the car's heading; during a trip with a route — the car's position about every 5 minutes and when re-routingPlanning a route
Google (maps.app.goo.gl, goo.gl), Apple (maps.apple), 2GIS (go.2gis.com)A short map link the user sharedFinding the point the link leads to
Apple (App Store), Google (Google Play)Installation, update and crash data under their own rulesInstallation and updates

When the services change, this policy is updated before the new version of the app is released.

6. Crash reports (Firebase Crashlytics)

When the app crashes or an error occurs, it sends a short report to Firebase Crashlytics (Google LLC). No separate consent is asked, because the reports contain no data about the user. Google processes them only for Mavka Labs under the Firebase data processing terms. The developer's debug builds send no reports. If the user has agreed to analytics (section 7), its latest events before the crash are added to the crash report.

Contents:

Not sent: coordinates, GPS data (other than its state), the VIN, the car's speed, turns. Reports about the adapter do not include its name. Adapter addresses (MAC, UUID, IP) and numbers that look like coordinates are removed from error texts.

Purpose: stable operation and fixing errors. The reports are not linked to a person and are not used for ads, tracking or profiles.

Legal basis: Mavka Labs' legitimate interest in the app working without failures. Retention: 90 days, after which Google deletes the reports.

7. Analytics (Firebase Analytics)

Only if the user has agreed. Without consent no event is sent, and the app works the same.

Consent. The question is a separate step of the introduction, after the first screen that describes the app. For those who updated the app and those who declined, the question is repeated in a window after the app opens: up to three times (the second time at the next opening, the third not sooner than 3 days later). After consent, or after turning it off in the app's settings, the question is not asked again. The answer can be changed at any time in the app's settings.

Contents:

Firebase adds itself: a random installation ID, the phone model, the system and app version, the language, the country and city from the IP address (the IP address itself is not stored).

Not sent: coordinates and GPS points, street and place names, the route, the VIN and its fingerprint, the car's make and model, adapter names and addresses, any text the user types, the advertising identifier.

Purpose: to understand where the app is hard to use or does not work, and to fix it. Events are not used for ads, for tracking across other apps or for profiles of people; Google signals are off. Google processes them only for Mavka Labs under the Firebase data processing terms. If the app crashes, Crashlytics (section 6) adds the latest analytics events of those who agreed to the crash report. The developer's debug builds send nothing.

Legal basis: consent. It can be withdrawn in the app's settings: collection stops and the analytics installation ID on the phone is erased. Retention: 14 months, after which Google deletes the events.

8. Problem report

A report is sent only by the user themselves — from the app's settings, or after a trip if something went wrong.

Contents: the chosen reasons, the user's text, the app version, the phone's operating system. If a trip is added to the report — its number and record (contents: section 4). Before sending, what the record contains is shown under the trip.

Without a record: a report from the app's settings can be sent without a trip. If there is no consent to records, no new records appear on the phone; existing ones remain until deleted.

Does not contain: the VIN. There is no account. The IP address is not stored.

Storage: Mavka Labs' private storage on Cloudflare (Worker, R2); Cloudflare, Inc. processes reports only for Mavka Labs.

Purpose: finding and fixing guidance errors. Legal basis: consent, given by sending the report; it can be withdrawn by asking for the report to be deleted. Retention: until the problem is dealt with, no longer than 12 months.

Rating the app: if after a trip the user answers that everything worked, the App Store or Google Play rating window opens. Mavka Labs receives nothing in this case.

9. Permissions

Any permission can be withdrawn in the phone's settings.

10. Storage and protection

11. Deleting data

12. Children

The app is intended for drivers and is not intended for persons under 18. Children's data is not knowingly collected.

13. Rights

Under the Law of Ukraine “On Personal Data Protection” (in the EU, under the GDPR), the user can find out what data is processed, request its correction or deletion, and withdraw consent. Most of this the user does on the phone themselves (section 11). Other requests: [email protected]. Complaints: the Ukrainian Parliament Commissioner for Human Rights.

14. Map, sources and licences

15. Changes to this policy

Important changes are announced on this page and in the update notes in the store. The date of the last change is at the top.

Revision history: