Once again, it’s been a super-busy fortnight for Jolla and the Sailfish OS community, with some big news on multiple fronts.
First, if you’re thinking about getting a Sailfish X licence, or think you might want to upgrade to an Xperia 10 III when it’s released next year, then now is a really good time to take the plunge with our Buy One Get One Free offer. The deal is, you buy a licence for any of the currently released devices now, and get a voucher which you can use to receive another licence, either for yourself or someone else, either now or in the future.
So you could, for example, buy a licence for a friend or family member now, and use the voucher to install Sailfish OS on an Xperia 10 III when it becomes available next year.
Note that when you buy the licence, you must be logged in with the account you want it to be tied to. Similarly, when you use the voucher, you must be logged in with the account that that licence will be tied to. So they can be different accounts, but you have to be logged in with the right account at the right time.
The offer will run until the end of the year, and of course I urge you to take the opportunity to get Sailfish OS onto even more phones!
The second big announcement, which went hand-in-hand with the offer, is that after a gap of 11 months, Jolla is now once again selling Sailfish X in the UK. The UK has always been one of the largest markets for Sailfish X, but when the UK left the transition period out of the EU at the end of 2020, the tax requirements for selling into the UK became a lot more burdensome.
Jolla has been working hard over the last year to find a suitable solution. The work has paid off, and we’re now able to once again offer Sailfish X to our UK users. As I explained in my post last week, this is a source of much personal gratification to me, as I know it will be to many others in the UK.
The really great news is that the solution can potentially scale to other non-EU countries as well. The rollout back to the UK is being taken as a pilot, so if all goes well, expect to see more countries added to the list. Rest assured we’ll be making more noise about that when it happens.
In the last newsletter we highlighted the release of the Sailfish SDK 3.7 to Early Access users. Such are the challenges of real world events that by the time the newsletter had been released, the facts had already changed, and the SDK had moved out of Early Access and on to General Release.
The hope is always that the Early Access version can be elevated to a full release without major changes, and happily this was indeed the case for the SDK 3.7. So I won’t go through all the details again since they were covered last time, but it is worth reiterating that the main new changes include
man page help formatting, and build targets for Sailfish OS 4.3.0 Suomenlinna.
If you’re a user of the SDK, you should get an upgrade notification automatically within the SDK when you run it.
In the next section we’ll be taking a look at some of the devices which, while not officially supported by Jolla, are nevertheless able to run Sailfish OS due ot the incredible efforts of various community porters.
But before that, since this will be the final newsletter before Christmas, let me take this opportunity, on behalf of Jolla, to wish all of our community users, developers and porters the very best for the festive period. We will be back for one final newsletter of 2021 between Christmas and the new year.
I was a little shocked to realise that over the last year in the newsletter we’ve not taken the opportunity to look at some of the Sailfish OS ports that are available. There are a huge number of ports, but not all of them are complete or maintained.
So we thought we’d look at some and spoke to some of the leading Sailfish OS porters about their work. This is by no means an exhaustive coverage of the available Sailfish OS ports, but hopefully it will give a taste of exactly how professional and lively the Sailfish OS porting scene is.
I spoke to four very active porters: Michał Szczepaniak (Mister_Magister), Rinigus (rinigus), Adam Pigg (piggz) and Vlad Grecescu (vlagged). Between them they support in excess of 20 different ports.
We’ll look at the set of the ports each porter is responsible for maintaining to try to give a picture of the level of support and features you might expect from each device. To some extent, these features are dependent on hardware capabilities, such as the availability of different cameras or sensor on the device.
Hardware aside, one important point of difference between these ports and the official Sailfish X supported devices is that the “paid” features from Sailfish X aren’t available for ports as they are with the official devices. This means for example that Android AppSupport, Microsoft Exchange and Jolla’s predictive text aren’t available for the ports described here.
On the other hand, a key feature of these ports is that they’re available for a much wider range of devices than the official Sailfish X releases. If you already have a device that has a high quality port available for it, then installing Sailfish OS on it is a great way to try out Sailfish OS without the overhead of having to buy one of the officially supported devices. You get much wider access to devices and different hardware capabilities.
Michał Szczepaniak has been a long-standing supporter of Sailfish OS and the Sailfish OS porting scene, having started porting back in 2015 for the Motorola G2. You may also be familiar with his work under the VerdandiTeam branding. As Michał explains, he set up VerdandiTeam with a friend in order to
show people ports that are not “random” ports but to assure their stability and continuous support so that people can trust them, which is the biggest concern of using ports
Since his first port in 2015 Michał’s efforts have exploded to cover a huge range of devices, including several supported by successful community fundraisers.
These ports include the Moto G 2014, Moto G 2014 LTE, Moto X 2014, Moto Z and Zenfone 5z which are still active or in development. Michał has also developed ports for the Moto G 2015, Moto X 2013, Moto X Force, Moto X Play, Moto X Pro, Xperia Z2, Huawei P8lite, and Nexus 7 2013 (wifi/flo), although these are no longer supported (or were never fully released) due to devices dying or a lack of time.
The longest running of these ports are the Moto G 2014 and Moto G 2014 LTE, which have been updated over the years starting with Sailfish OS 1.1.7 Björnträsket up to Sailfish OS 4.2 Verla most recently. As Michał explains “I’m planning on supporting it longer than Jolla supported the Jolla phone (6 years and counting)”, which would indeed be quite an achievement. Midway through writing this piece Michał also updated the Moto X 2014 and Zenfone 5Z to Sailfish OS 4.3 Suomenlinna, which included an update to a newer base for the Zenfone 5Z.
In terms of features, the level of support depends on the device in question. For example, Michał explains that the Moto G2 devices “are fully supported, no exceptions” and are very stable. This port is the longest running of those Michał has developed and is also what attracted him to porting in the first place.
Back in 2015 when I was doing my first port, the G2, we spent a couple of months just to get the GUI to work, working with mal and sledges. Finally we found a hack, well mal did the hack and we didn’t fix the GUI ever since just improved the hack.
The other devices are newer, and the feature support situation for them is a little more complex. For example until very recently the Zenfone 5z didn’t support calling, but this was also fixed with the new base just this week. Michał contacted me to give an update.
It is with great pleasure to inform you that calls indeed work on the new base. Currently, everything is working on 5z. I even got the second, wide angle, camera to work and from my patches, mal is now doing multi-camera support. It was fun to get the second camera to work.
While for the Moto X 2014
camera recording is broken as well as microphone in calls. These only work in loudspeaker mode, although you can also connect headphones and use their mic.
And on the Moto Force he says it was “fun to get the front flash working. It did work out of the box but no one at Jolla even expected a front flash.”
While Michał is still committed to working on his ports, he’s also had success in developing apps for Sailfish OS, several of which we’ve featured in previous newsletters. Much of his focus is now with these apps, but he’s still committed to developing his ports as well.
Now, I’m still supporting four phones and seven apps. So ever since 2015 I’ve been doing my best to support Sailfish OS.
For more information about all of these ports, check out the VerdandiTeam website.
While Michał has focussed largely on Motorola ports, Rinigus has instead developed ports primarily for the Sony Xperia Tama devices. This covers quite a range, but includes variants of the XZ2, XZ2c, and XZ3. There are six such variants in all. Rinigus picked these devices for reasons that aren’t so dissimilar from the reasons Jolla has chosen the Xperia 10 devices for the official Sailfish X releases.
Sony Tama appealed as it wasn’t excessively expensive and had AOSP support by Sony itself. This is important as you have the legal aspects of BLOB distribution covered by Sony.
Rinigus’s ports are all well maintained and on the most recent version of Sailfish OS. The latest release just a couple of weeks ago updated them to Sailfish OS 126.96.36.199 Suomenlinna. That’s less than a month after the first public release of the operating system, so you can expect a fast update process.
Part of the reason Rinigus can achieve such fast updates is because the hard work of figuring out the challenges to get device functionality working has already taken place, and now it’s mostly a case of rolling them forwards.
It is mainly in maintenance mode these days with most of the functionality supported. Some limits are imposed by the AOSP 10 base with some having specialized workarounds (for example GPU lag in some conditions fixed by zgovernor) and some not (for example a bit higher power consumption than was the case before, but still fine). Current issues are reported on GitHub. From the open issues, NFC is maybe not working - but taking into account the absence of NFC functionality in Sailfish OS it is not even required to be fixed.
However, there are other steps that have also required extra effort as the port has developed. For example, during the two years that the ports have been in development, Sony updates their own AOSP for the phone from 32-bit Android 9 to 64-bit Android 10. In order to support the new platform — which Rinigus has now completed — required a significant re-working of the port. “As such” Rinigus explains “it probably corresponds to 1.5 ports”.
For more information about these ports for the Sony XZ2, XZ2c ad XZ3, check out the Tama port pages on GitHub.
This next collection of ports comes from veteran porter Adam Pigg. These aren’t the only ports Adam has been involved with, but as he explains, his Xiaomi Latte tablet and Xiaomi Mido ports are “in states of disrepair”.
My first port, for the HTC Ace, came around because while I wanted a Sailfish device, I’ve never been into spending lots on a phone, so, I thought I’d save a few pounds, and instead embark on a porting adventure that has taken the last six or so years!
Things have changed a lot since those early days of porting. The main ports Adam works on at the moment are for the F(x)tec Pro1, the Volla Phone, the VollaX and the Pinephone. And unlike those early days of saving money, Adam now receives direct support from manufacturers for the devices he ports to.
For these devices, it’s been the device manufacturers who have requested the ports, for which I am very grateful for the opportunity (thanks f(x)tec, Volla and Pine64!)
It’s unusual for phone manufacturers to sanction third party ports for their phones, let alone encouraging them so explicitly, and these three companies are to be applauded for their pioneering approach.
All four ports are very actively developed, having been updated in the last month to the latest Sailfish OS 4.3.0 Suomenlinna release, and Adam is already preparing for their update to 4.4 when it’s released next year.
The phones from the three different manufacturers have quite diverse characteristics, with the Pro1 being 32-bit armv7 based, the Volla phones being arm64, and the Phonephone being an arm64 port which unlike the others here, is a native port and so not based on libhybris.
They have slightly different levels of completeness between them. Of the Pro 1 Adam says that it “works okay as a daily” although it has some quirks with some car kits. From my own anecdotal experience, it seems to have been one of the more popular ports. The Volla and VollaX similarly are also mostly okay as daily phones. There are a few glitches with “some weird quirk where BTLE devices don’t work (Android 10/MTK specific)”, as well as “a funny kernel oops when you take a screenshot!”.
Finally, the Pinephone is also mostly working okay, apart from the rather crucial functionality of making and receiving calls.
Some work is required to get [the telephony stack] oFono fully working with the modem, and fortunately, a new dev, Jan Jasper de Kroon has recently joined the effort and is dedicated to working on oFono.
There’s also a glitch with the WebView on native ports that prevents the email client working properly, but which will be fixed in Sailfish OS 4.4. Adam’s enthusiasm for the phones is clear when I ask him what he particularly likes about the ports. He loves the Pro 1 “for the N950 vibes”, and because “it’s pretty much a complete port, and I can ping notkit with issues”. The VollaX he loves because it’s his first MTK port. “That brought its own quirks you don’t see on Qualcomm devices” he explains, “it had a lot of tweaks required to get sailjail working!”. Finally the Pinephone has been “a constant challenge, but the reward of a native Sailfish phone should be worth it!”
If you want to know more about Adam’s ports, check out their respective repositories on GitHub:
- F(x)tec Pro 1: https://github.com/sailfish-on-fxtecpro1
- Volla: https://github.com/HelloVolla
- Pinephone: https://github.com/sailfish-on-dontbeevil/
And all of the images are build on the GitLab porters CI system. Adam gives one final piece of advice to potential users of his ports.
If you’re a user, you should download the “testing” images, not the “devel” ones, and please file issues against the
*-configrepositories for each project. I don’t mind being contacted by Telegram or the forum for general queries.
For our final summary we’re looking at Vlad Grecescu’s port for the Xiaomi Mi Note 10 (codenamed Tucana). The port is being actively developed by Vlad, who’s actively looking for users to test it out. It’s had three recent releases bumping it up from Sailfish OS 4.0.1 Koli in June through to Sailfish OS 4.2 Veria in October of this year. Vlad also has a Sailfish OS 4.3 Suomenlinna release in the works, which is currently in testing and will be released as soon as he’s satisfied no additional bugs have been introduced.
Vlad worked his way through many mobile operating systems before settling on Sailfish OS. “I stayed away from Android devices for a long time” he explains, “using Symbian and Blackberry 10, Windows 10 and then Sailfish OS on a Xiaomi Mi4 (cancro) and then a Jolla C.” But in 2018 he was really keen to use Sailfish OS on a high end device with an OLED screen and a high-quality camera, and so intended to start porting it to a Huawei P20 Pro. The next week “the bootloader unlocking portal was closed and the custom ROM scene ground to a halt” he explains, which essentially made the port unviable.
Undeterred Vlad moved on to the Xiaomi Mi Note 10.
This time with the Mi Note 10 I got through: the bootloader was unlocked and an unofficial Lineage build was available, so I finally started following that 2018 dream, but in 2021
A key feature of the port which Vlad is particularly proud of, is the “double-tap to wake” feature, which many will remember from early Jolla phones.
I specifically included this in my criteria for selecting the device. And there it was,
straceing the Android setting, I got the same screen feature enabled and after a double-tap you see that gorgeous Sailfish on the OLED. I sometimes double-tap the phone just so I can smile
I think we can all relate to that! But there are also a few areas that still need some work, including video recording, the under-display fingerprint reader, and the unusual ultrasound proximity sensor.
The most annoying bug is that you have to have some Android audio services running for the proximity sensor to work. That in turn has some problems: sometimes there is echo in calls, sometimes race conditions at boot time make the calls have no sound. It’s funny because if I don’t use the proximity sensor, I get a more stable device, but I keep it on so that I remember that I still need to fix this.
Vlad is keen to get these issues fixed, and intending to make a wider and more public release once they are. But users are still very welcome to try the port in its current form. For more information visit the device’s port repo on GitHub, or have a read of this quite thorough thread on the forum.
There are very many Sailfish OS ports out there and we’ve covered just a few of the more active ones here. If you’re a user with one of these devices, we really encourage you to try them out. As is hopefully clear, the ports often have a few rough edges, but they also often include technologies which you won’t find anywhere else, as Rinigus highlights.
Having a ported device gives you more freedom than with the official device. These days, we have proper encryption support which is way ahead of the official version. It also allowed us to implement support for Flatpak before any other devices got it (missing in the current version, though, as I couldn’t make it work for aarch64/AOSP 10). There are many aspects that I like about the port, but probably freedom of choice is the main one.
For users of Sailfish OS who choose to use one of these ports, the breadth and quality of supported features is of course going to be one of the most important factors. But what’s also very clear is that for the porters themselves, their porting is as much about community and personal development as it is about technology. For example, in the case of Michał it was even his way into learning English.
Back in 2015, the early Jolla days, only the Jolla phone was available, but hard to buy. I was talking with a friend about being frustrated with Android and I just wanted Linux on a phone. My friend mentioned Sailfish OS but he thought it was dead. Thankfully it wasn’t. It was around Sailfish OS 1.1.5. I grabbed the HADK and started porting my G2 but it quickly turned out to be challenging so I headed out to the
#sailfishos-porterschannel on IRC. Mind you my English was nowhere near as good as it is now, it sucked big time (you can check that in the logs :D) and I literally learned English on
Vlad is also especially effusive about the community. Porting a device is not easy, both because of the technical challenges, and the commitment it entails.
Even for a dev — but in an unrelated industry, not Linux/Android/Qt related — there is a ton to learn. The first wall I hit was that the Lineage port I was hoping to use as a base actually used the prebuilt kernel extracted from the boot image of the phone. So the first month was spent searching for how to compile the Xiaomi kernel from sources, apply their drivers’ patches and make it actually boot into Lineage, before getting to actual Sailfish building.
The Sailfish OS part was harder until I got the screen enabled. That was another month of desperately trying things left and right (I even sabotaged myself by applying unrelated changes that lost me some days). Whenever I think of that screen turning on the first time I think I remember shedding a tear
The people on the porters’ channel had solutions for each and every question (either live, or by grepping the logs) so I always ended up enabling some piece of functionality every two or three days. There was even one fellow porter who went through my whole list of bugs (I started filing them on GitHub to not lose track) and adding suggestions on the ones he hit himself. What’s not to like with such a community?
The icing on the cake was when Waydroid was made available for wayland ‘legacy’ that lipstick uses. Run a couple of python scripts and bam! Lineage was booting once again, this time in it’s container.
Having read this far, might you be tempted to dip your toes into the porting water yourself? If so, then these veteran porters have some wise words and advice for you. Adam highlights the benefits of inhabiting the
An extra word of thanks to the very helpful people in
#sailfishos-porters(mal!), as without the help from in there, none of this would likely happen. I recommend all potential porters to hang out in there and ask questions (after reading the FAQ! )
And Vlad also highlights the benefit of collaboration.
I’d like to include Elros (elros34) from the Telegram side of the bridge. He is basically a porter which responds to other people as frequently as mal does!
I think there’s one thing that can make ports better, and that is having more than one dev working on them.
Thank you to all four of the porters who kindly contributed their experiences. One of the joys of Sailfish OS has always been the ability to port it to such a wide variety of devices. There’s currently no prefered central place to find out about all of these ports, as Adam points out.
What is missing is a nice device specific info page. I’m hoping that the new Sailfish OS wiki might allow us to centralise port info, maybe in a similar style to what UBports does.
In the meantime, for more information about the porting process, the best place to start is on the Sailfish HADK pages, the overview pages of the new Sailfish docs site, and of course, the
#sailfishos-porters IRC channel.
Last week saw the inaugural Sailfish OS FR meetup event (also available in English) at the Frog & Princess in the 6th arrondissement of Paris. Organised by Nico Cartron (ncartron) and attended by five particularly committed Sailfish OS users, the evening was an opportunity for them to discuss Sailfish OS, alternative operating systems, and the best way to install software, amongst other topics. The attendees were somewhat outnumbered by phones, including five Xperia 10 IIs, a Jolla 1, an Intex Aqua, two XA2s and a Jolla Tablet!
Congratulations to Nico for organising such a clearly enjoyable and successful event. If you missed it, then the good news is that he plans more for the future.
The event was a success, and we all agreed that we must organise follow-up meetups with a larger audience (of course depending on the whole Covid situation). We’re working on identifying a nice place for the 1st quarter of 2022, and decide on the date upfront so that as many people as possible can attend.
If you’d like more information about such future events, then get in touch with ncartron to join the Sailfish OS France Telegram channel which already has around 30 people participating. “It is very active” he says:
with a lot of interesting discussions, questions and answers, people helping each other in their daily usage of Sailfish OS.
Let’s take our customary look at some of the newly released or newly updated apps for Sailfish OS.
We’ve looked at clock applications in the newsletter before, the last one being slava’s Swiss Clock app back in September. But while Swiss Clock focusses on the analogue, Display Time by Arno Dekker (adekker) focusses very much on the digital.
It provides a very clear 24 hour digital clock readout that’s suitable to use as a bedside clock for example. The clear intention is that you might even leave the clock running with the display showing all night, something that probably works most efficiently if you’re using a device with an OLED display, like the Xperia 10 II.
The app shows the clock in full view by default, but tapping it will open up the settings page. And while there are only a few settings to choose from, they’re all very thoughtfully chosen and aimed at catering for this always-on clock approach. You can set it up so the screen doesn’t blank, lock the display to a particular orientation, configure the colour, and even more importantly, also control the brightness. The brightness you might want for a clock in general isn’t likely to be the same as the brightness you want the clock set to at night when nothing is stirring, not even a mouse.
And put simply, that’s pretty much it. This is a very clean, simple and effective implementation. The latest update provides Sailjail permissions, and if you’re looking for a new bedside clock, you may well want to consider this software before you shell out for a physical alternative.
Display Time is available from the Jolla Store, and OpenRepos.
In the last newsletter we looked at Sailtrix, a very promising native Matrix client for Sailfish OS. This time we’re looking at Hydrogen, a new contender for the native Matrix crown, created by thigg and based on the work of the official Element team.
Hydrogen cleverly makes use of the WebView API to provide the equivalent of what might be an Electron app on other platforms (although Hydrogen isn’t made available as an Electron app). This is a local app that nonetheless harnesses web technologies to provide a cross-platform implementation. But don’t be deceived into thinking this is just a wrapper around a website. Hydrogen makes a point of good offline and mobile support “focusing on personal messaging, performance, offline usage and wide browser support, including mobile!”
And generally it lives up to this claim. I tested it out by disabling the network, and while it doesn’t keep a record of the entire history of a chat session, and obviously won’t send messages without a network connection, it does allow viewing of messages from its cache even without needing to be online.
The other impressive characteristic of Hydrogen is that it works very well, with a really good set of features. Unsurprisingly it doesn’t do a great job of following the Sailfish aesthetic that we all love, but it does offer very solid performance and the best feature set of any of the native Matrix apps on Sailfish OS.
There is some room for improvement. For example, it would be great to have a more useful cover, and if a room has a long title, it will increase the screen width without being able to scroll horizontally, so that text gets cut off by the edge of the screen.
While I’d love to be using a matrix client with all of the Sailfish style of a fully native app, there simply are currently no other native Sailfish OS apps that offer the level of compatibility of Hydrogen, and thigg is to be aplaueded for making the release available.
Hydrogen is available for download from the Jolla Store.
Frome is a rather simple but bold app created by Rustem Abzalov (arustg). It allows you to very easily calculate percentages, and specifically how much you have after a certain percentage has been removed.
The number entry and operations are entered using nice chunky buttons of a similar style to those found in the Sailfish calculator app. Unlike the calculator, operations are limited to % and =. The former for distinguishing the number from the percent to be removed, the latter for performing the operation. It is possible to chain multiple percentage operations together, but I quickly found this became confusing. It can nonetheless be convenient so see multiple calculations on the same screen, and you can also pick the “Skip” option from the pulley menu to start again with a clean slate.
If you’re heading for the sales after Christmas, then this app may be just what you need to find out how much those “25% off” bargains are actually going to save you.
Frome is available from OpenRepos.
Unit Converter isn’t a new app, but it is an app that has a new fork. The original version developed and maintained by Mikko Leppänen (mikel83) was last updated in 2014, but Arno Dekker (adekker), who you may recall is also the author of Display Time, created a fork earlier this year and has provided a rapid succession of updates ever since.
The app allows you to convert quantities between a large number of different units, categories across different unit types, from distance, acceleration and volume, all the way through to magnetic flux density (which I understand is important for reversing the polarity of the neutron flow). The majority of these are physical units, but it will also convert between currencies, pulling the latest conversion rates from the Internet on request.
One of the nicest features of the app is that the conversion happens entirely dynamically as you type. All of the related units (e.g. meters, feet and angstroms) are shown on a single scrollable page. Updating the value in one field immediately updates the values in all of the other fields, which means you can always be confident that the values shown are the intended results.
The app has some other nice features, including an on-screen ruler, which is just about practical if you happen to have left your physical ruler at home. The little icons used for each of the units types are cute too. If you have particular conversions that you use often (for example maybe you’re travelling and need to know a currency rate) you can configure a favourite that will show a very specific conversion between two values for reference.
Recent versions have added aarch64 and Sailjail compatibility, with only the Internet permission needed for collecting currency rates. The latest version has also introduced some updates to to improve the UI layout.
Unit Converter is a very handy app, and while Mikko’s original is available on the Jolla Store, Arno’s fork is only currently available from OpenRepos.
This is a community update, and frankly we can’t always keep up with all the exciting stuff happening in the Sailfish community. Plus, the less of this we have to actually write ourselves the better. So please help us out by posting your Sailfish news updates to the forum as a reply to this post. We’ll collate as much of it as possible into one easily digestable post for the next update.
And don’t forget to join us at the community meeting every other Thursday on IRC. It’s a great place to discuss any of the content you see here, or to share your ideas for future updates. The next meeting will be in the new year on the 20th January, full details here.