Порою возникают проблемы при попытке обновить операционную систему Sailfish. Я тоже с этим столкнулся и надеюсь, что моё решение кому-нибудь поможет…
Итак, имеется устройство Sony Xperia 10 — Dual SIM с установленной Sailfish OS 4.5.0.18. При попытке обновиться до текущей на момент написания статьи системы версии 4.5.0.25 штатными средствами через меню System -> Sailfish OS updates возникает проблема: не скачивается обновление, просто постоянно висит сообщение «waiting for connection».
Ни VPN, ни перезагрузки не помогают. Пришлось рыться в сети и внимательно изучать следующие темы:
https://docs.sailfishos.org/Support/Help_Articles/Managing_Sailfish_OS/Updating_Sailfish_OS/
https://docs.sailfishos.org/Support/Releases/
https://forum.sailfishos.org/t/update-mess-need-help/14615/13
В результате сработало следующее:
- По ssh заходим в устройство (предварительно активировав в нём Developer tools): ssh defaultuser@192.168.0.156
- Переключаемся в root, введя пароль: devel-su
- Вводим команду с номером сборки, на которую хотим обновиться (у меня было обновление 4.5.0.25): ssu re 4.5.025
- Получаем ошибку типа этой: WARNING: DBus call failed, falling back to libssu: Message recipient disconnected from message bus without replying
terminate called after throwing an instance of ‘zypp::parser::ParseException’
what(): /etc/zypp/repos.d/ssu_store_release.repo: Section [store]: Line 6 contains garbage (no ‘=’ or ‘:/?|,\’ in key)
Aborted (core dumped) - Из этого лога видим, что ошибка происходит из-за ssu_store_release.repo. Поэтому копируем путь /etc/zypp/repos.d/ssu_store_release.repo
- Перемещаем этот репо в свою домашнюю директорию (у меня она под именем defaultuser): mv /etc/zypp/repos.d/ssu_store_release.repo /home/defaultuser
- Вводим команду и дожидаемся конца выполнения: version —dup
- Перезагружаемся: reboot
- После перезагрузки логинимся в устройство и штатными средствами пытаемся обновить. С первого раза может не получиться, повторить. Например, у меня с первого раза что-то написал и отказался скачивать обновление. Я повторил и закачка пошла.
Надеюсь, моя инструкция и ссылки выше кому-то помогут… Помните главное — обновление так называемых стоп-релизов пропускать нельзя, т.е. Вы можете пропускать промежуточные обновления, но не можете перепрыгивать через стоп-релизы:
NOTE: You must not skip any Stop Releases over. All of them, higher than the release of your phone now, must be traversed. Read more about stop releases in this chapter first.
Example: Your phone has the OS version 3.0.1.11 in it now (after a factory reset). To update the phone to 4.5.0.18, the update path via the stop releases is this:
3.0.1.11 -> 3.2.0.12 -> 3.4.0.24 -> 4.0.1.48 -> 4.1.0.24 -> 4.2.0.21 -> 4.3.0.15 -> 4.4.0.72 -> 4.5.0.18
Подробнее читайте ЗДЕСЬ.