Xperia 10 SFOS 3.4 update failed and now the screen flashes white twice on boot and then stays blank

REPRODUCIBILITY (% or how often): 100%
BUILD ID = OS VERSION (Settings > About product): ssu -re reports 3.4.0.24, but might be some limbo state between 3.3 and 3.4
HARDWARE (Jolla1, Tablet, XA2,…): Xperia 10
UI LANGUAGE: FI
REGRESSION: (compared to previous public release: Yes, No, ?): Yes

DESCRIPTION:

I was encouraged by the trouble free update of my old JP-1301 and took the leap of faith with my daily driver Xperia 10 (had some small issues on the SFOS 3.3 update, but managed to fix them via Terminal). While updating the OS the phone gave message Sailfish OS could not be updated. Please try again later. and option to Reboot. After rebooting (and all startups after that) leads to the regular warnings of the bootloader and Sony logo and then after normal length wait the screen flashes white twice and then stays black (with backlight on) when it should ask for PIN or anything else.

PRECONDITIONS:

Before updating I read the warnings about AlienDalvik-Control, but was stupid enough to though just making sure it is the newest version was enough instead of removing it completely before updating the OS. Turns out I had it installed in two different versions for some reason?

STEPS TO REPRODUCE:

  1. Have both aliendalvik-control-9.3.0-1.armv7hl and aliendalvik-control-9.3.1-1.armv7hl installed on your phone
  2. Apply SFOS 3.4 update via GUI
  3. ???
  4. No profit

EXPECTED RESULT:

No problems.

ACTUAL RESULT:

Phone with no working UI

ADDITIONAL INFORMATION:

(Please ALWAYS attach relevant data such as logs, screenshots, etc…)

I don’t use or never have used any patches or the Phonehook app so those can’t be issue here.

I have WLAN turned off on the phone so can’t SSH into it (neither would I remember the password so the USB Remote Access -method is also out of the question unless there is some way to change these settings in the Recovery Mode).

I have managed to use the Recovery Mode Shell to remove AlienDalvik-Control and to be safe remove all the remaining related directories under /usr/share/, but the UI still don’t show up in the boot and if I try to use pkcon refresh or pkcon update I get error message Failed to contact PackageKit: Could not connect: Connection refused which might be due to the borked dist-upgrade or Recovery Mode not having connection to the Internet?

I don’t know how to (if even possilbe) to get the Recovery Mode use my computer as waygate to use Internet to try to check if there is still some packages needing to be updated to complete the 3.4 update.

The first try to fix the system:

/ # chroot /rootfs/
bash-3.2# rpm -e --noscripts aliendalvik-control
error: "aliendalvik-control" specifies multiple packages:
  aliendalvik-control-9.3.0-1.armv7hl
  aliendalvik-control-9.3.1-1.armv7hl
bash-3.2# rpm -e --noscripts aliendalvik-control-9.3.0-1.armv7hl
bash-3.2# rpm -e --noscripts aliendalvik-control-9.3.0-2.armv7hl
error: package aliendalvik-control-9.3.0-2.armv7hl is not installed
bash-3.2# rpm -e --noscripts aliendalvik-control
bash-3.2# pkcon update
Failed to contact PackageKit: Could not connect: Connection refused
bash-3.2# ssu re
Device release is currently: 3.4.0.24
bash-3.2# version --dup
REFRESHING CACHE AND DOWNLOADING PACKAGES

and I assume because no connection, the phone waits here until all eternity or until I break the process.

I have also pulled the systemupdate.log and zypp/history out of the phone, and I’m not on expert reading those, but seems like there isn’t anything out of the ordinary except AlienDalvik-Control related stuff:

Oct 14 20:03:43 Xperia10-DualSIM [RPM][10938]: scriptlet %preun(aliendalvik-control-9.3.0-1.armv7hl) failure: 2
Oct 14 20:03:43 Xperia10-DualSIM [RPM][10938]: erase aliendalvik-control-9.3.0-1.armv7hl: failure
Oct 14 20:03:43 Xperia10-DualSIM [RPM][10938]: 1 elements failed, 1 scripts failed
Oct 14 20:03:43 Xperia10-DualSIM sailfish-upgrade-ui[4427]: Distribution upgrade error: Subprocess failed. Error: RPM failed: Warning in file "/usr/share/applications/android-open-url-selector.desktop": usage of MIME type "x-maemo-urischeme/http" is discouraged (the use of "x-maemo-urischeme" as media type is strongly discouraged in favor of a subtype of the "application" media type)
                                                            Warning in file "/usr/share/applications/android-open-url-selector.desktop": usage of MIME type "x-maemo-urischeme/https" is discouraged (the use of "x-maemo-urischeme" as media type is strongly discouraged in favor of a subtype of the "application" media type)
                                                            Warning in file "/usr/share/applications/android-open-url.desktop": usage of MIME type "x-maemo-urischeme/http" is discouraged (the use of "x-maemo-urischeme" as media type is strongly discouraged in favor of a subtype of the "application" media type)
                                                            Warning in file "/usr/share/applications/android-open-url.desktop": usage of MIME type "x-maemo-urischeme/https" is discouraged (the use of "x-maemo-urischeme" as media type is strongly discouraged in favor of a subtype of the "application" media type)
                                                            method return time=1602695022.611688 sender=:1.50 -> destination=:1.49 serial=22 reply_serial=2
                                                               boolean true
                                                            Failed to stop aliendalvik-sd-mount.service: Unit aliendalvik-sd-mount.service not loaded.
                                                            /var/tmp/rpm-tmp.m1IGAi: line 32: syntax error near unexpected token `fi'
                                                            /var/tmp/rpm-tmp.m1IGAi: line 32: `fi'
                                                            error: %preun(aliendalvik-control-9.3.0-1.armv7hl) scriptlet failed, exit status 2
                                                            error: aliendalvik-control-9.3.0-1.armv7hl: erase failed

It would be super nice if I could get this sorted without needing to reflash since I have some pretty important stuff saved in the application data (both native and Android) that I have slacked on backing up lately and really need it.

1 Like

i have the same problem with my xperia xa2 ultra. this log-extract looks like the aliendalvik uninstall proecedure is broken …

I have been reading few other topics on failed SFOS upgrades on Xperia X and XA2 and Zendesk articles, it came to my mind there might be some uninstalled packages in the /home/.pk-zypp-dist-upgrade-cache/ that could fix the system, but I can’t get to them (If I could get to the home partition, I would have straight away copies all important data and done factory reset in the first place even before posting here).

And why I can’t get to them? When I first setup my phone I skipped the setting of lock code (yeah, I’m that smart…), but the phone still encrypted the home partition and I don’t have a slightest idea what is my passphrase/keyphrase I need to unlock the LUKS container with cryptsetup open. When the phone was in working state, it just booted up normally without asking for any codes to unlock the encryption, it just did it automatically without any human inputs.

Is there any known proper “empty”/default entry I should use since just pressing Enter when the cryptsetup asks for the phrase doesn’t work, but earlier the phone could decrypt itself with no problems or is this easily bruteforceable with no lock code in the system?

Baby steps, but I managed to unlock the encryption of the /home/ (thanks hashcat) and there indeed were packages in the /home/.pk-zypp-dist-upgrade-cache/. Next I installed zypper, but I must have done something wrong since all I get is following error for any call:

sh-3.2# zypper lr
zypper: symbol lookup error: zypper: undefined symbol: _ZN4zypp5CpeId11NoThrowType13lastMalformedE, version ZYPP_plain

I then tried installing the packages with pkcon install-local -command, but got the good old Failed to contact PackageKit: Could not connect: Connection refused so I reverted into installing the packages with rpm -v -i -f -command, but for most of them I got only messages about conflicts or packages still seeing the old versions of their depensies even if I just tried to install the new version.

All things considered, at least I got my backups off the /home/, but the phone still flashes white twice when booting, so nothing new on that front. Any ideas how to continue from here from people smarter than me?

1 Like

Good news everyone, I got the phone working again!

Turns out I was using old version of zypper (zypper-1.14.6+git4-1.4.1.jolla.armv7hl and augeas-libs-1.6.0+git1-1.2.9.jolla.armv7hl) because I had those files alreayd laying around. As soon as I downloaded and installed new version (zypper-1.14.6+git4-1.5.1.jolla.armv7hl and augeas-libs-1.12.0+git2-1.5.1.jolla.armv7hl) zypper started working.

Next I took few steps from TJC-thread at https://together.jolla.com/question/224620/xperia-x-rokua-update-failed-stuck-in-airplane-mode-after-reboot-selfanswered/?answer=224659#post-id-224659 on how to link the .pk-zypp-dist-upgrade-cache somewhere where zypper can find them and did the dist-upgrade (you probably don’t need the zypper up -command):

mv /var/cache/zypp /var/cache/zypp-old
ln -s /home/.pk-zypp-dist-upgrade-cache /var/cache/zypp
su
zypper up
zypper dup

and after crossing my ringers and knocking on the wood (literally for both), I rebooted the phone and it started normally to my relief.

Of course my first actions were to turn on WLAN and remote access for developer mode :wink: Then I went to Terminal and and checked the pkcon worked with pkcon refresh and pkcon update and final check of version --dup before finally entering my SIM card from my old JP-1301 (which I had been using for the past 3 days, still works just fine btw.) and rebooted the phone to make sure it still works.

I haven’t noticed anything unusual so far, and I hope this experience reminds me to make my backups in time and make sure I have WLAN and remote access for developer mode enabled before doing next update…

2 Likes

I am sure this (how-to) would be of interest to others.

Sure, it wasn’t actually that hard in the end. I made it as a separate topic so the title is more describing when people see/search for it and people can comment on that subject without needing to read through how I saved my phone step by step:

2 Likes