SailfishOS on the Pro1: Installation guide

So you want to run SailfishOS? Alright.

You can probably just flash the latest image! The following guide is outdated, but is perhaps useful to some.

For more up-to-date info (and for the Pro1-X) it's probably best to check out threads on https://community.fxtec.com/ or to ask in the #sailfishos channel on the unofficial F(x)tec discord

(Feel free to put in a pull request to update this guide, *nudge nudge*)

Previously, flashing the latest release wouldn't work, and you had to go from Stock > 3.3 > 3.4 > 4.0 > 4.1 > 4.2 > 4.3 > ....

Content

Flash to Stock (Pie)
Install Sailfish OS 3.3 (Rokua)
Upgrade from Sailfish 3.3 to 3.4 (Pallas-Yllästunturi)
Upgrade from Sailfish 3.4 to 4.0 (Koli)
Upgrade from Sailfish OS 4.0 to 4.1 (Kvarken)
Upgrade from Sailfish OS 4.1 to 4.2 (Verla)
Upgrade from Sailfish OS 4.2 to 4.3 (Suomenlinna)
Upgrade from Sailfish OS 4.3 to 4.4 (Vanha Rauma)
Upgrade from Sailfish OS 4.4 to 4.5 (Struven Ketju)
Post-installation stuff
Maintenance stuff

Flash to Stock (Pie)

Reference: https://community.fxtec.com/topic/2466-guide-restore-to-stock-firmware-using-fastboot-method/

Now you are in the fastboot bootloader menu. Run the following commands or create a script from them as described below:

fastboot flash boot_a boot.img
fastboot flash boot_b boot.img
fastboot flash dtbo_a dtbo.img
fastboot flash dtbo_b dtbo.img
fastboot flash system_a system.img
fastboot flash system_b system.img
fastboot flash vendor_a vendor.img
fastboot flash vendor_b vendor.img
fastboot flash vbmeta_a vbmeta.img
fastboot flash vbmeta_b vbmeta.img
fastboot flash userdata userdata.img
fastboot flash abl_a abl.elf
fastboot flash abl_b abl.elf
fastboot flash persist persist.img
fastboot flash mdtp_a mdtp.img
fastboot flash mdtp_b mdtp.img
fastboot flash splash splash.img
fastboot flash xbl_a xbl.elf
fastboot flash xbl_b xbl.elf
fastboot flash rpm_a rpm.mbn
fastboot flash rpm_b rpm.mbn
fastboot flash tz_a tz.mbn
fastboot flash tz_b tz.mbn
fastboot flash hyp_a hyp.mbn
fastboot flash hyp_b hyp.mbn
fastboot flash pmic_a pmic.elf
fastboot flash pmic_b pmic.elf
fastboot flash modem_a NON-HLOS.bin
fastboot flash modem_b NON-HLOS.bin
fastboot flash keymaster_a km4.mbn
fastboot flash keymaster_b km4.mbn
fastboot flash cmnlib_a cmnlib.mbn
fastboot flash cmnlib_b cmnlib.mbn
fastboot flash cmnlib64_a cmnlib64.mbn
fastboot flash cmnlib64_b cmnlib64.mbn
fastboot flash bluetooth_a BTFM.bin
fastboot flash bluetooth_b BTFM.bin
fastboot flash dsp_a adspso.bin
fastboot flash dsp_b adspso.bin
fastboot flash devcfg_a devcfg.mbn
fastboot flash devcfg_b devcfg.mbn
fastboot flash mdtpsecapp_a mdtpsecapp.mbn
fastboot flash mdtpsecapp_b mdtpsecapp.mbn
fastboot flash storsec storsec.mbn

Suggestion: copy the commands and save as a bash script, then just run the script instead of running each command individually.

To do so, copy and paste above fastboot commands into a script, e.g. nano flash-stock.sh. Add #!/bin/bash as first line. Save what you pasted into nano using ctrl+o. Exit nano with ctrl+x and make the script executable using chmod +x flash-stock.sh.
Now you are ready to start the script and thus execute all commands sequentially by executing ./flash-stock.sh.

Next run fastboot reboot

Your Pro1 is now flashed back to stock.

At this point, I went through the Android 9.0 setup and enabled developer mode and USB debugging again. Might be possible to skip this last step...

Install Sailfish OS 3.3 (Rokua)

Reference: https://community.fxtec.com/topic/2467-community-build33016updated-18th-aug-sailfish-os-for-fxtec-pro1/

Requirements

Process

You now have SailfishOS! Great choice btw.

Upgrade from Sailfish 3.3 to 3.4 (Pallas-Yllästunturi)

Reference: https://community.fxtec.com/topic/2467-community-build33016updated-18th-aug-sailfish-os-for-fxtec-pro1/page/8/?tab=comments#comment-54413

Requirements

Process

You should now have a SailfishOS 3.4 install!

Upgrade from Sailfish 3.4 to 4.0 (Koli)

devel-su
ssu re 4.0.1.48
ssu ur
zypper ref
zypper dup

My Pro1 crashed at this point, but after a powercycle I had a perfectly functional 4.0 install. Complete with the ugly lighthouse ambiance.

You should reboot, in any case.

Optional note:
The CPU gets downclocked when the Pro1 goes into sleep mode.
Consider setting the screen timeout to 10 minutes to make things run faster!

Upgrade from 4.0 to 4.1 (Kvarken)

Same thing as the 3.4 to 4.0 install, just change the number when running ssu re.

devel-su
ssu re 4.1.0.24
ssu ur
zypper ref
zypper dup

Reboot when you're done.

Upgrade from Sailfish OS 4.1 to 4.2 (Verla)

Same thing again, just change the number.

devel-su
ssu re 4.2.0.21
ssu ur
zypper ref
zypper dup

Reboot when you're done.

Upgrade from Sailfish OS 4.2 to 4.3 (Suomenlinna)

Same thing yet again, just change the number.

devel-su
ssu re 4.3.0.12
ssu ur
zypper ref
zypper dup

Reboot when you're done.

Upgrade from Sailfish OS 4.3 to 4.4 (Vanha Rauma)

This time, it is advised to update the 4.3 install again before actually updating to 4.4. Especially when updating an old 4.3 install.

devel-su
zypper ref
zypper dup
ssu re 4.4.0.58
ssu ur
zypper ref
zypper dup

Reboot when you're done.

In case you are left with no network connection for all Sailjail apps, there are two possible culprits.

Dnsmasq might have wrongly been activated by the systemd update. Disable it with:

systemctl disable dnsmasq

Another quirk could be the resolv.conf not being visible from inside the Sailjail. Check if your /etc/resolv.conf symlink still points to /var/run/connman/resolv.conf. Change it to /run/connman/resolv.conf and restart the browser booster.

ls -l /etc/resolv.conf
rm -f /etc/resolv.conf
ln -s /run/connman/resolv.conf /etc/resolv.conf
systemctl --user restart booster-browser@sailfish-browser.service

Upgrade from Sailfish OS 4.4 to 4.5 (Struven Ketju)

devel-su
ssu re 4.5.0.19
ssu ur
zypper ref
zypper dup
zypper rm gmp-droid

Reboot when you're done.

Do check the zypper output, and make sure nothing crazy is being removed...

Post-installation stuff

Homescreen rotation fix

sed -e "s/return allowed/return Orientation.All/" -i /usr/lib/qt5/qml/Sailfish/Silica/Page.qml

Reboot or restart lipstick as root/devel-su with systemctl --user restart lipstick to apply changes

Choose hardware keyboard layout

dconf write /desktop/lipstick-jolla-home/model \"fxtecpro1\"
dconf write /desktop/lipstick-jolla-home/layout \"LAYOUT\"

Replace LAYOUT with a country code from /usr/share/X11/xkb/symbols/fxtec_vndr/pro1

For US English layout use "us"

My camera doesn't work! (fix only applies to 4.3.0.12)

Reference: https://forum.sailfishos.org/t/4-3-0-12-jolla-camera-also-torch-does-not-start-at-all-as-well-as-videos-do-not-play/9000/62

devel-su
ssu rr adaptation-common
rm -r /var/cache/ssu/
ssu ur
pkcon refresh
version --dup
reboot

If your camera works, you don't need to do this.

Maintenance stuff

Fixing touch guestures after display change

After a change of the display it might be necessary to update the firmware of the display controller if the display doesn't react to touch gestures on the curved part.

Requirements

Process

Publication date: 2022-01-08
Updated: 2023-03-23
Version: v0.4.1