Third day of using a Jolla phone

I was getting increasingly fed up with Android, even though I was using /e/OS. I was looking at postmarketOS updates, but nothing I could see inspired me that it would be usable as a daily driver. Then I noticed Jolla’s new phone was, not only marketed as “everything works”, but it even had a removable battery, so I decided to purchase one and see how it goes. I was definitely not expecting to be able to switch to it as a main device right away.

To be precise, I purchased two phones, one for myself and one for Sebastian. However, one of these phones ended up being defective: it initially wouldn’t connect to WiFi, and after a few factory resets and reboots, it ended up being unable to boot. I have opened a support ticket, but I haven’t heard back from them yet. Hey, it hasn’t even been 48 hours since I opened the ticket.

So I grabbed the other phone and started happily setting things up. I already knew that it has some native applications but can also run Android applications through an emulation layer. The Android part of it was a pleasant surprise: I only found some extremely minor incompatibility issues, which I will analyse below. No deal-breakers for sure.

However, I noticed that there are even more ways to install apps:

  • From a third-party app store called Chum
  • From another third-party app store called Storeman, though this one mostly contains out-of-date packages
  • Downloading the rpm directly from OpenRepos

To add to this, there are some apps that only offer their source code and you have to compile the rpm yourself using the SDK. I think for a couple of apps I had better luck compiling them on-device. (Imagine that: having a phone where you can compile apps for it on the device itself!)

Hardware-wise, the phone is actually quite good. It has approximately the same dimensions as my Fairphone 5, but it’s definitely lighter. You can add and remove SIM cards (and I think even the SD card?) while the phone is on, unlike the Fairphone where the slots are behind the battery. It even has a physical privacy switch, and you can configure what you want it to do when you turn it on. Battery life is also very decent. The only thing I’m not happy about is that, while the main body is slimmer than the Fairphone, the camera compartment is bulking out, so it wobbles around when you put it flat upon a table/desk.

I also liked the OS interface quite a lot. It has N9-esque gestures, which simplify the interface itself but also feel very intuitive. Compared to that, using Android feels a bit like typing with boxing gloves on. I had the same impression when I first started using Android after I broke my N9, and the feeling persists now.

Next thing I was happy to see was that you can add a system-wide XMPP account. Turns out, it claims that you can only reply to messages received through the Messages app. I switched to my good old friend Conversations for that. I also tried two Matrix clients, one of them was not even able to log in to the gnome.org server, and the other one didn’t support encrypted messages. All in all, I was happy with the choice of native apps, but of all things, I’d have expected that more people would have created Jabber / Matrix clients. Anyway, no big deal, Android apps work extremely well there.

The built-in browser is also based on an ancient Firefox version. No big deal, Fennec from F-Droid works great.

The pre-installed keyboard was quite decent, but a bit large for my liking, and you can’t adjust the height. Its emoji part is seriously lacking. And there is no Japanese language support. After a while, I found the FUTO keyboard, which supports gesture typing and also has a proper emoji keyboard. I do not really like FUTO for ideological reasons, but the usability difference of its keyboard is so big that I decided to accept it.

For Japanese input, I ended up finding https://github.com/inugamine/SailfishOS-Japanese-Keyboard/ , which depends on anthy-qml-plugin, which in turn depends on anthy-unicode. All of these have to be compiled. anthy-unicode claims to be installable the good old ./configure; make; make install way, though the source claims that it also has Meson support. After fighting a bit with the cross-compiling VM provided by the SDK, I ended up creating a very primitive RPM spec file. It is horrible, but it worked. Afterwards, I compiled and installed anthy-qml-plugin and finally the keyboard itself. A proper flick keyboard. It was quite tricky, but I’m happy.

Next rabbit hole was my smart watch. Gadgetbridge does work, but the pairing process is kinda finicky. I ended up crashing the Bluetooth driver a few times, but fortunately the phone has a nice “restart Bluetooth services” button in the settings, so you don’t need to reboot. In the end it did work, but couldn’t read notifications. I tried Vapaamin, but it was very primitive in terms of functionality, basically the only thing it does is to send notifications to the watch. It claims to also support weather syncing, but that somehow didn’t work. You also can’t use both Vapaamin and Gadgetbridge in parallel, because of some difference in the pairing process, whether it happens via Sailfish OS or AppSupport. So I reverted to Gadgetbridge and tried harbour-rockbridge. Now I can at least see the notifications, but not reply to them. That MIGHT be technically feasible – I will come back with another blog post if there is any progress.

One thing I was surprised to see lacking is the ability to have different ringtones per contact. I really like knowing when it’s a family member on the phone. I tried Personal Ringtones from 2021, but in 2026 it just breaks the phone’s ability to make or receive calls. I might get back to this in the future at some point, but for now I have other itches to scratch.

And the thing that simply doesn’t work was Viber. That’s none of Jolla’s fault though. The apk runs fine, but the Viber servers reject the registration because it looks too spam-like. I heavily dislike Viber and I only use it for the networking effect, because in Greece several people rely on only Viber as an instant messenger. So, I decided I’ll keep it on my old phone for now, until I can move away from it.

All in all, there are still a few rough edges that need to be ironed out, but I’m still surprised by how well it works. It might still not be possible for a non-technical person to grab a Jolla phone and port over all their use case scenarios into it, but that’s all feasible with some knowledge and involvement, so I’m optimistic. The groundwork is definitely there and it’s solid.

Plus, it’s nice to have a phone that honestly says “Enter a password for su and SSH, but you’ll lose software warranty if you do that” 😊 If I want to tinker with it, I can turn its guts inside out, but if I need support, I’ll need to revert to factory settings and reproduce the issue. I find it fair enough and very anti-walled-garden.