Sometimes installing an OS update may fail even though the download seemingly worked okay. The problem is usually caused by the device and Jolla Store being out of sync somehow.
Prepare using the command line
Let's download and install the OS update by initiating the process from the command line (Terminal app) instead of the menu page "Settings > Sailfish OS updates". In this way some checks are by-passed which may allow the update to work okay.
Please read this help article first and do as instructed in it. It explains how to enable and disable the Developer mode. Developer mode makes access deeper to Sailfish OS possible by allowing you to get the super-user rights ("root" rights). Also it installs the Terminal application to the device.
Start OS update from the command line
Once you have the Developer Mode enabled, do as follows:
- Connect your phone to battery charger.
- Open Terminal app. If the font is too small make it bigger using to Settings at the top right corner.
- Type and execute the following commands:
## type your SSH password here
ssu re 126.96.36.199 ## replace "188.8.131.52" with your target OS version if different
version --dup ## note the 2 dash characters in front of 'dup'!
version --dup will last long as it first downloads everything necessary and then installs them. You can see the progress in percentage all the time.
If this way of updating the OS worked, please jump to chapter "Final clean up" below.
If it keeps failing
Should the update still fail then let's try some more tricks:
Delete the remainders of earlier failing OS update attempts to make a clean update possible.
devel-su pkill store-client rm /home/.pk-zypp-dist-upgrade-cache/* ## Use this command for Sailfish OS 2.2.0 or earlier rm ./.cache/store-client/os-info ## Use this command for Sailfish OS 2.2.1 or later rm ./.cache/sailfish-osupdateservice/os-info
exit ssu re 184.108.40.206 ## replace "220.127.116.11" with your target OS version version --dup ## note the 2 dash characters in front of 'dup'! reboot
Final clean up
The OS update notification may persist in the device after updating the OS with the command line method.
The next commands may help in eliminating the notification:
devel-su pkill store-client ## Use this command for Sailfish OS 2.2.0 or earlier rm ./.cache/store-client/os-info ## Use this command for Sailfish OS 2.2.1 or later rm ./.cache/sailfish-osupdateservice/os-info
Visit menu "Settings > Sailfish OS updates" and seek for updates using the pull-down menu.
Your Sailfish OS device is updated and ready to use now.
version --dup" might fail in cases where the user has added some extra code repositories to his/her device.
In case of trouble, we would ask you to run the command below and send a picture (pictures) showing the complete printout. Then file a service request and attach the pictures to it.
The correct output should be something like in the picture below (an example from Jolla Phone):
Another example from Xperia XA2:
Section "Enabled repositories (user)" may contain some incorrect (extra) repositories which can be removed with the command
ssu rr <repository-name>
ssu ur # same as "ssu updaterepos"
where <repository-name> shall be replaced with the short names in the left most column of the printout of command "ssu lr" (compare to the picture above -- note that the picture above does not have any incorrect items, though).
If you want to keep your repositories for some reason then it is also possible to only disable them for the OS update:
ssu dr <repository-name>
Afterwards they can be enabled with
ssu er <repository-name>