I am happy to announce the release of Radar (Find My Device) for Sailfish OS (v2.0-1)!
Ever had that moment?
You forgot your precious new Jolla phone somewhere on the couch and can’t find it? → Just let it RING for 60 seconds remotely!
You lost your phone somewhere between home and work? → Locate it remotely on a map and see exactly where it is!
Your phone got stolen? → Lock it or even wipe your data remotely to protect your privacy!
Radar is a native find-my-device app for Sailfish OS: see your device’s last position on a map and control it remotely via MQTT or SMS — fully self-hosted, no Google or cloud account involved.
Locate your device on an OpenStreetMap map (optional free Geoapify key needed for a zoomable map)
Track other Sailfish OS devices on the same map (Radar app installed + same MQTT broker)
Publish your device’s GPS position via MQTT (optional — use your own or a free public broker)
Remote commands, via MQTT and/or SMS:
RING / STOP_RING — ring the device for 60 seconds (or stop it)
LOCK — lock the device into the lock screen
GPS — report the current position (published via MQTT, or replied by SMS — SMS costs may apply)
CAMERA — take a photo (front or back camera) and upload it to your WebDAV folder
DELETE — wipe all user data (/home/<defaultuser | nemo>) and reboot — NOT a factory reset
Everything is opt-in: each command, MQTT, SMS and background tracking can be enabled/disabled individually in the settings
Translations: EN, DE, SV, FR
Two Packages: App + Background Services
Since v2.0 the project ships as two RPMs (required for Jolla Store / Harbour
compliance):
harbour-find-my-device: App itself, fully sandboxed (Sailjail). Works standalone: map, device management, foreground position updates.
harbour-find-my-device-daemon: background services (remote commands via MQTT/SMS, background tracking, privileged helper for reboot/SMS). Not sandboxed
Security Information
This is not a spy app: every remote action — even a failed one — shows a notification on the device. All commands are disabled by default.
MQTT: Commands require broker authentication (username/password) plus a one-time HMAC token derived from your PIN
SMS: Commands are only accepted from whitelisted phone numbers and require a TOTP code or a one-time backup code
Technical Information
Qt 5.6.3 (Sailfish OS Silica UI) + Python 3 backend/daemons
Tested on:
Jolla Phone 2026 - Sailfish OS 5.1.0.xx
Fairphone 4 - Sailfish OS 5.0.0.62
Emulator - Sailfish OS 5.0.0.62, 5.1.0.11
Integration within your Ecosystem
You can easily integrate the GPS locations and remote commands into your existing smart home or automation ecosystem via MQTT. Build your own custom control panel, create automation rules, or integrate it with Home Assistant, openHAB, Node-RED, and more!
An example client app for home use (Flask + Leaflet map + command buttons) is available under docs/examples/ — use it as a starting point for your own integration!
See the Technical Documentation for detailed information about MQTT topics, message formats, and command authentication.
Check out the full release notes on GitHub for a complete list of changes. If you would like to contribute, please send me a PM or create a pull request!
NOTE: As you can see above the app is not tested yet on new Jolla 2026 - only on emulator (until i receive my phone in #batch2) – so it would be nice if someone with new Jolla phone can do some tests and report back to me if everything is working or what is not working properly
Quite nice looking app! Find my device has been one thing I have been missing, although luckily I haven’t yet required it. I kind of hope at one point your work would be integrated even to the SFOS fully!
thank you! yes that’s what i missed as well i tested it now for a long time on fairphone 4 with many iterations and i was very happy with it - hope it serves you well!
Could be stage-installing the daemon like Situations app does. Installing arbitrary RPMs from within Jolla Store apps seems to be allowed:
I want an ‘RPM install’ feature in my application, how can I install/sideload RPMs from a program?
As mentioned above you are not allowed to use PackageKit’s D-Bus API. Use Qt.openFileExternally() method in QML and QDesktopServices::openUrl() in C++ to trigger a sideload. Use the absolute file path to the RPM file. If you want to monitor the progress, the following signals on the session D-Bus are available:
The last one I had up to my Xperia X was this one:
Back then I had forgot that I installed it and it was running untill one day I received an sms with the (very simple) password I had set, the alarm sound started and I had no idea why !
Excellent! I have been thinking if something like this exist an there it is! I set it up on JP2 to the point that I could get my location sent to homeassistant mqtt broker. Not added yet to ha maps, but message came through. Also ringtone worked, but didn’t test any remote commands yet.
…and on X10III. Seem to work very well, even though I haven’t yet had the opportunity to deep dive on it.
Thanks for this app, it feels kind of obvious.
I made more quick tests pairing Jolla phone SFOS 5.2.0.15 with Fairphone5 SFOS 5.1.0.11. Ringing and locking screen between both devices work well. I didn’t test the remote photo / remote delete options more, but when pressing camera-button, it says “camera disabled on target”, but delete-option it will open even if it’s disabled on both devices. I can see both phones on map with their battery level like intended. I had problem reconnect mqtt when changing between mobile connection and wlan, I needed to restart the app and then it worked again. I was only testing with mqtt, receiving in homeassistant and also managed to set ringtone on / off at command line. I have been using OwnTracks before on Android, and this app probably covers my needs with location tracking. btw I Think word “Uhr” needs translation.