SquigglyLine Privacy Policy
Last updated: October 2026
In short
- SquigglyLine records GPS tracks on your watch and shows them on your phone. It has no servers of its own and collects no analytics, crash reports or telemetry.
- Crash reporting, bug reports or usage telemetry may be added in a future version. If that happens, this policy will be updated before that version is released (see Crash reports and telemetry below).
- Your data stays on your devices unless you send it somewhere: your own MQTT broker or HTTP endpoint, Livelox, or a backup file you create.
- A few third-party services are involved, each only for a specific feature, listed below with their own privacy policies.
- Secrets (broker password, Livelox login, Eventor key) are stored only on your phone and kept out of Android cloud backup.
Third-party services
| Service | Used for | What they receive | Their policy |
|---|---|---|---|
| Google Play services (Google) | The watch ↔ phone connection; scanning a configuration QR code | Live positions, tracks, settings and commands pass between your watch and phone over Google's Wear connection — by Bluetooth, Wi-Fi, or via Google's servers when the devices are apart (Google chooses). QR codes are read on the device. Android cloud backup is also Google's. | Google Privacy Policy |
| Your MQTT broker or HTTP endpoint (optional; you choose the provider) | Live location sharing, remote control of the watch | Your position while tracking/recording, in OwnTracks format; the commands sent to your watch. SquigglyLine never sees this traffic. | Your provider's policy (e.g. HiveMQ, or your own server) |
| Livelox (optional; needs your Livelox login) | Live tracking during recording, route upload, listing nearby events | Your GPS positions during live tracking (watch → receiver.livelox.com:10120); uploaded GPX tracks plus the event/class/name you enter; and, to list nearby events, your watch's last known position with a 150 km radius — sent when you open the upload dialog, start live tracking, or open the Orienteering page. |
Livelox User Agreement (incl. privacy) |
| OpenStreetMap (OSM Foundation) | Map tiles on the live map and track map | Requests for the map tiles you look at, which reveal the area shown and your IP address. No location data is sent. | OSMF Privacy Policy |
LiveResults liveresultat.orientering.se (optional Orienteering page, off by default) |
Showing live start lists, passings and results for the event you're at | Only ordinary web requests (your IP address). No account, no key, nothing about you. The data it returns is public: other competitors' names, clubs and times, published by organisers. | liveresultat.orientering.se |
| Eventor (Svenska Orienteringsförbundet; optional, off by default) | Official start lists and results on the Orienteering page | Read-only event lookups carrying the club API key you entered. No location data or tracks. | Integritetspolicy |
What the app collects, and where it goes
Location (watch). The watch records GPS (position, altitude, accuracy, time) only while you have tracking or recording turned on. Tracks are saved on your phone under Android/data/com.edmundwatson.squigglyline/files/OwnTracks/ and are not uploaded without your action.
On-demand location. From the phone you can ask your own watch for one position (via the Wear connection, or via your broker). The watch takes a single fix, sends it to the phone and your broker if configured, and releases GPS. Only ever on your tap.
Phone's own location (on by default; can be turned off). Used for two things, both on the device only: the blue dot for the phone on the live map, and working out how far away each event is on the Orienteering page. Foreground only — the app does not hold background-location permission — and never recorded, published or sent anywhere. Turn it off under Settings → General → "Beta & experimental features".
Remote control over your broker. The watch listens on the standard OwnTracks command topic owntracks/<user>/<device>/cmd; the phone's remote-control buttons publish there so they reach the watch even when the direct link is down. Anyone who can publish on your broker can command your watch, so use per-user credentials and access control, not a shared or public broker.
Orienteering page (optional, off by default). Downloads public live results for the event you pick and shows only the people and club you choose to follow. Those names are stored only on your phone. It polls only while the page is on screen; the competition list is cached on the phone for up to an hour.
Crash reports and telemetry
SquigglyLine does not currently collect crash reports, bug reports, analytics or any other telemetry.
This may change in a future version, for example to collect crash reports that help fix bugs. Before any such version is released, this policy will be updated to say what is collected, which service receives it, how long it is kept, and whether you can turn it off.
Where things are stored
| Data | Where | Cloud backup? |
|---|---|---|
| GPX/KML tracks | Phone storage; deleted with the track or on uninstall | Yes |
| MQTT / HTTP endpoint settings and password | Phone, synced to your watch so it can connect | No |
| Livelox login token | Phone, encrypted (AES-256, hardware-backed key) | No |
| Eventor club API key | Phone, encrypted (same store) | No |
| People/club you follow, chosen event | Phone, plain app settings | No |
| Watch's last known position | Phone, so the map shows it at once | No |
| Watch error log, Livelox/Eventor diagnostic logs | Phone; tokens, codes, session IDs and the API key are redacted. Never leave the device unless you share them | No |
Your own backup file. Settings → General → "Back up tracks & settings" writes one .zip (all tracks + connection settings) to your Downloads folder, only when you tap it. It contains your broker password in plain text — keep it private and delete copies you don't need. "Restore" reads only the file you pick.
Permissions
Watch: Location (record while tracking/recording; one fix on request), Foreground service (keep the session running with a visible notification), Wake lock (GPS with screen off), Internet and network state (your broker, Livelox), Notifications (tracking status), Ignore battery optimisations (asked once; optional), Boot completed (offer to resume a recording interrupted by a restart; never starts on its own).
Phone: Internet and network state (your broker, Livelox, map tiles; LiveResults and Eventor only if turned on), Notifications (track arrived from the watch), Fine location (the on-device "phone location" feature above; foreground only; no background-location permission).
If you request the watch's location while its app is in the background, Android may block it; the watch then shows a notification asking whether to share, and sends nothing unless you tap it.
Changes and contact
Material changes are committed to the repository with the "Last updated" date above. Questions: open an issue at https://github.com/tactmaster/EdsOwnTracks or email the developer at ed@edmundwatson.com.