Using Sailfish OS on the FP2 - Experiences and Issues

Tags: #<Tag:0x00007f57d71cd5f0>


Hi berta !
Even if the wiki advice to downgrade to FPOpenOS 16.06, it is not clear to me if this step is really mandatory. From my experience I installed SailfishOS on top of FPOpenOS 16.10 (it was current version at that time) and it worked flawlessly, without any issue/error message.


You don’t need to downgrade the base Android before installing Sailfish OS, it should work quite ok even with the new release as long as you install the the old firmware partition images (the ones in http://storage.googleapis.com/fairphone-updates/FP2-gms59-1.5.1-manual.zip just remove flashing of system, aboot, boot and rcovery from the installation script included in that zip). Sailfish cannot benefit from the proximity sensor calibration since we need to use the old firmware due to the battery drain issue if latest firmware is used. I’m going to release the Sailfish OS alpha3 soon, it’s now waiting for some testing by Fairphone before release, in my opinion it’s ready for release. It’s already possible to update to that using the instructions in wiki but there might be some issues with repos on the device after the upgrade, I’ll write instructions about that when the release is done.


What do you mean by very few applications available in Store? There used to be a bug that causes many apps to be missing but that was fixed a long time ago.


I checked up and… you are right, there are plenty apps in the store… My apologies !! :blush:

Actually I realize i didn’t look at this store since I upgraded to… Perhaps the bug you mention was still present in the version ? Or I just wasn’t waiting enough for the list to be populated ? In my memory only some apps developed by Jolla were displayed… Anyway now I have the whole list, thank you !!

By the way, I just noticed that in Settings / Account / Add Account there is a CalDAV and CardDAV support, that is awesome :slight_smile:
EDIT: I’ve an error with CalDAV, I managed to add CardDAV only.


Mal- stikes again!

alpha3 (Sailfish is avaiabale now


Works like a charm :-).
Many thanks to mal- … again …


Hey, thank you very much for your answer an your work!! It worked for me. :wink:
One of the greatest moments was, when I was asked if I would like to import contacts form my N900! :slight_smile:

I switch between FOSOS and SailfishOS by restoring different boot partitions. After I installed I noticed, that the camera in FOSOS was not working anymore (“Use by an other app”), in SailfishOS it worked. (The flashlight didn’t work, too.)

Yesterday I tried to update FOSOS and unfortunately a lot went wrong. :disappointed:
I started by flashing the firmeware images out of
After I compiled the source and flashed the new images I was not able to install or update any apps. So I tried to restore some old backups of boot,system and data several times and flashed again.
Now, I can install and update apps, but Bluetooth is not working (com.andoird,bluetooth crushes) and I also noticed that the Update of FOSOS didn’t work, although I did never receive any errors.

Obviously I messed it up all by myself, by doing things I don’t understand in every detail. But that’s learning.

It would be great, if anybody could give me an advise how I could solve all this problems :wink: without a factory reset.
Thank you very much!

Here are some errors I got with adb logcat, when I was unable to install apps. Maybe that helps.

E/System ( 6824): Uncaught exception thrown by finalizer
E/System ( 6824): java.lang.NullPointerException: Attempt to invoke virtual method ‘void dalvik.system.CloseGuard.close()’ on a null object reference
E/System ( 6824): at java.io.FileOutputStream.close(FileOutputStream.java:132)
E/System ( 6824): at android.os.ParcelFileDescriptor$AutoCloseOutputStream.close(ParcelFileDescriptor.java:835)
E/System ( 6824): at java.io.FileOutputStream.finalize(FileOutputStream.java:152)
E/System ( 6824): at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:191)
E/System ( 6824): at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:174)
E/System ( 6824): at java.lang.Thread.run(Thread.java:818)

What I’m still wondering about most is, that the update of the FOSOS (fastboot flashall -> reboot -> optimizing apps) doesn’t give any errors, but doesn’t take place anyway???


In the meantime I got bluetooth working again by flashing and falshing an applieng old backups. Unfortunately SailfishOS is gone as a result, too, but I’m looking forward to install it again!! :wink:


Switching between FP Open and Sailfish would not work.

Sailfish you flash on top of Fairphone Open replacing boot.img (kernel) and userdata.img (Sailfish Image)

The only possibility is:

Install Fairphone Open. Make a backup of all partitions with TWRP.

Install Sailfish on Top of Fairphone Open

Make a second bakup of Sailfish.

Now you can change by restoring the full backup of FP Open or Sailfish.
Thats not so cool, i think, but there is no other possibility.


So are you saying it won’t work with multiboot solutions in the future either?


Maybe some clever apps will provide Multiboot in the future, atm. this is not possible


If the creator of efidroid adds support, it will be possible. But he first aims to get Ubuntu Touch working afaik. Also don’t expect anything in a timespan less than 6 months.


There is some misunderstanding here, it’s completely possible to switch between FP Open and Sailfish OS by changing the boot.img. If you install Sailfish OS from recovery using the zip it does not overwrite userdata partition it just stores Sailfish OS in there in a special folder. Only thing you shouldn’t do is erase userdata partition, that will remove also Sailfish OS completely.


At least MultiROM can be made to work with Sailfish OS without problems. Not sure about other methods.


Thanks Mal, that was not clear for me. Thanks for figuring this out!


Hmm… i have 2 TWRP Backups:

One from Sailfish OS and one from FP Open 16.12

When i restore boot.img (Kernel) from the FP Open 16.12 Backup it didn’t boot at all. I stuck on Fairphone logo.
After i wipe the userdata with fastboot -w - it boots normal to the Fairphone Open 16.12

So i need to restore boot.img and userdata.img to be able to switch between Fairphone Open and Sailfish.
But there also can be something wrong with my userdata.


This is what I did and what worked for me with FP Open 16.11., till I tried to update to Fairphone Open 16.12. I think I switched between both OS about 8 times by just restoring different boot backups.

But the Update to FP Open 16.12 doesn’t work for me. I don’t know why.

@mal: Do you mind explaining what kind of special folder SailfishOS uses?


Found it by mysel. The Folder is: “/data/.stowaways/sailfishos”. Because of the “.” it’s hidden.
The updater-script copies hybris-boot.img to /dev/block/platform/msm_sdcc.1/by-name/boot,
sailfishos-rootfs.tar.bz2 is extracted form sailfishos-fp2-sibon-release- and copied to /data/sailfishos-rootfs.tar.bz2 an again extracted by updater-unpack.sh to the folder mentioned above.

As you can see there SailfishOS just uses one folder an changes the boot partition.


The OS itself runs fine and I really like it. But there is no email client and no xmpp client with gpg support. Ok, there is mutt, but I don’t want to use a console client on the phone. The lack of encrypted communications on SF makes me stay on FP open for now. I hope, there will be support for encryption in the near future. I will keep an eye on it. SF is definitive the better OS for me. But I need this features.

BTW: Must I update the underlying Android when a new SF version arrives, that needs (or recommends) a newer one than the installed? Or is it updated OTA with the new SF version?


The only problem I have with SFOS on FP2 is jolla camera not working :cry:
The camera screen is just black.

When I run in terminal I get:

[D] QGstreamerVideoWindow::QGstreamerVideoWindow:72 - No m_videoSink available!
[W] unknown:201 - file:///usr/lib/qt5/qml/Sailfish/Silica/TouchInteractionHint.qml:201:17: QML PauseAnimation: Cannot set a duration of < 0
[W] unknown:17 - file:///usr/share/jolla-camera/pages/capture/CaptureOverlay.qml:17:1: QML CaptureOverlay: Binding loop detected for property “_startTime”
[W] CameraBinSession::processBusMessage:1051 - CameraBin error: “Could not initialize supporting library.”

Anyone else experience this issue?