We’re happy to share with you the many firsts in this release: the 1st fully stacked 64-bit ARM Sailfish OS, that you can download and flash onto the Sony Xperia 10 II, which is also the first Sailfish device with AOSP-10 HW adaptation. The commercial Sailfish X package also introduces the 64-bit Android™ App Support for Xperia 10 II. The package is now available in the Jolla Shop with a limited time offer of 29.90 € for existing Sailfish users (log in to see the discount).
Kvarken is the first update in the Sailfish 4 series with the above-mentioned 64-bitness and a new Sailfish X device. In another major feature improvement, Android App Support has been updated to the Android 10 API level.
Jolla Store has received many new goodies in Kvarken 4.1.0. Offline location data packages are now available from the Jolla Store, greatly improving the speed of location fixes. With Audio Recorder app you can record voice memos and other audio clips, and Open Forti VPN plugin lets you connect to Fortinet VPNs. Also, Aptoide Android store has been updated to run on the new Android 10 (API level 29).
Other small, but handy features include desktop site mode and ability to install new search engines for Browser, and portrait support for the scientific mode in Calculator.
On the quality front many calendar and contacts sync issues have been squashed, and random reboot issues troubling Xperia 10 have now been sorted out. Further, fixes have been made to get contacts for the 3rd party Signal app working again.
Read more details from the release notes.
Released the Kvarken!
With 4.1.0, we have updated our naming theme for the upcoming Sailfish 4 software releases. We will introduce you to the amazing Unesco World Heritage sites of Finland! The first one, the unique Kvarken Archipelago is Finland’s only Natural World Heritage Site on the UNESCO World Heritage List. Together with Sweden’s High Coast, the Kvarken Archipelago is the best place in the world to experience and understand the land uplift phenomenon caused by the last Ice Age. The 5,600 islands of the Kvarken Archipelago feature unusual ridged washboard moraines, ‘De Geer moraines’, formed by the melting of the continental ice sheet, 10,000 to 24,000 years ago.
Sony Xperia 10 II (Mark Two)
Xperia 10 II is a true gem of a device and shines like one due to its OLED screen. Black pixels are not emitting any illumination whatsoever, thus an absence of backlight gives supreme image depth to the viewer. This brings great reminiscence to the legendary Nokia N9 times, which also had an OLED screen.
Other improvements over its predecessor (Xperia 10) bring a bigger battery, which is also better managed by a newer kernel and the AOSP 10 board support package (and even longer battery life optimisations are in the pipeline). It now also has 4 GB of RAM by default (Xperia 10 single SIM had only 3 GB).
Mark Two has one additional ultrawide camera lens. Jolla Camera app support for multiple lenses is still under development, but community’s Advanced Camera app already supports all three.
Get Sailfish X for Xperia 10 II from the Jolla Shop.
Deep dive into the makings of the 64-bit Sailfish OS
Next we’ll delve into the efforts that brought you Xperia 10 II running Sailfish OS on the 64-bit ARM architecture.
32-bit going on 64-bit
Community has been enquiring Jolla about going 64-bit since its early days. While we appreciated the push, there hasn’t been a pressing case to do the switch, and we kept on supporting a nicely working 32+64-bit architecture sandwich throughout our devices, even after the new CPUs, SoCs, and the Android itself had turned 64-bit.
The benefits that a 64-bit Sailfish OS would bring are not immediately tangible: the quickest gain is being able to install and run 64-bit APKs via our Android App Support. Websites such as ApkPure started offering 64-bit APKs by default, and that introduced an extra burden to the users of 32-bit Sailfish OS. 64-bit however makes us future-proof, where we’ll be able to address devices with larger RAM sizes, and support complex graphics (such as augmented reality and face ID). From the technical side, no longer being 32-bit eases our porting process to the 64-bit Android base, and automatically prevents issues that we otherwise had to work around in the past.
64-bit is no easy feat when your Linux stack is still 32-bit. And when the push came to shove, we turned our heads towards the Sailfish Core, which was the first to be converted. When we introduced our Intel-based device back in the day, we needed to bootstrap our OBS for the new Intel arch, make the necessary sb2 cross-compilers behave, and iron out dozens of RPM packages failing to build.
Achieving AArch64 (another name for ARM64) was no exception, and this time we too strived to align with the upstream RPM repositories (such as Fedora), cleaning up hacks and various custom patches, many of which were already accepted in their main projects and, most importantly, their latest versions would already have many if not all 64-bit issues resolved. This gave a nice opportunity to update quite a few of the core packages.
Once the aarch64 on OBS was all lit green, including the SDK, we took an internal device to pilot the 64-bit HW adaptation for it. The whole team jumped into fixing library paths e.g. (/usr/lib64) and associated issues, until even the hardware adaptation packages were happily churning away on the OBS on all architectures.
If a package builds, it still doesn’t mean it’ll do its job properly on the new architecture. Strangest of things from audio problems to browser crashes, all gotten ultimately resolved by our great teams and community.
Before too long, we had a working prototype to showcase the fully stacked 64-bit Sailfish OS, the Linux kernel, and the underlying Android HW adaptation:
Along came Sony Xperia 10 II and Android 10
We subsequently started to look into consumer devices running Android 10, a natural successor to Xperia 10 (which is based on AOSP 9 adaptation). We knew for certain to keep up with the times, trends, and technology, meaning this next Sailfish X device would have to be 100 % 64-bit ARM, running your favourite GNU/Linux-based mobile OS.
- A quick clarification of what an underlying Android version adaptation (or base) means: Sony’s Open Devices Program allows anyone to reflash a selection of phones with a plain Android Open Source Project (AOSP) build that you can compile yourself. AOSP follows the same version numbers as the official stock Android that comes when you buy a device. AOSP allows us to build Sailfish OS on top of the underlying bare minimum of Android HW adaptation. The important distinction (that often gets confused) is that our Android App Support version (or API level) is independent from the underlying AOSP base for any given device. So you can have your Xperia XA2 supporting Android 10 apps, whereas the HW layer of the device itself utilises Android 8 (=AOSP-8) Board Support Package.
Just like porting to any newer Android base, we’ve been confronted with many challenges never seen before. The first hurdle was getting the Android Linker Q (which still follows the alphabet notation) supported by libhybris. A wonderful person from the community played around with libhybris and contributed the first approach to the linker, which we then improved upon and completed the integration.
After the rest of HW adaptation packages were happy with Android 10, we booted Xperia 10 II to the Sailfish OS UI (which is the equivalent of reaching the orbit). At this point, we were confident with merging the libhybris PR and published the first instructions so the community could start building and helping out too. Sailfish porters team Xperia 1 and XZ2 quickly jumped aboard, and we thank them for doing it together. Fun fact: one community member (who is now a sailor) started looking into Android 10 way before we did!
We were facing strange issues on Xperia 10 II with the touchscreen sometimes not reacting during the early encryption unlock screen. A surprise solution was to introduce a Sailfish OS logo, which is shown beforehand because that initialises the HWC framebuffer, which in turn always ensures the touchscreen is responsive. What a reason to show a nice splash screen!
Another oddity was that the device played a tone across the increasing frequency range on every boot. The team has pinpointed it to the sound calibration routine and managed to reduce the noise to only the very first boot, whilst collaborating with Sony’s Open Device Program AOSP team. Fun fact: the first time I heard that sound, was during a video call with the team. This proves that porting a device can also happen whilst physically not having the device itself, and only using ssh tunnels when needed. Especially handy when remote work has been at its peak. Yet couple of months later, I too acquired a device and what a joy it was:
Some strangeness was haunting us in the audio routing department. Going from 9 to 10 (and 11), Android altered the way the wired headset paths travel, thus the team came up with a headphones workaround to fix many annoying issues, including but not limited to the delayed activation of accessories. It only goes to show, that porting new HW adaptations can be a truly hard problem!
Given the above challenges, I would like to mention that porting existing devices to the 64-bit world (and newer Androids) places us in the same position between a rock and a hard place as is updating the Xperia X (see the FAQ section at the bottom of the Jolla Shop page). Instead, we strive to bring new tech and devices to the scene (Android 10 | Xperia 10 II), as well as are considering how to support Sailfish OS community ports better in the future of Sailfish X program. We hope for your understanding on the matter.
With this, I wish everyone to enjoy the Xperia 10 II Sailfish OS 4.1.0 release, and happy hacking!