FP3 StockOS Reboots after blue dots-screen and last ambitious OTA update

Dear Forum,

I have an old FP3, which has just worked on the stock FP3 Android 10. It was used actively until about end of 2021. Today, I powered it up and connected it to the web. It obviously notified me about an official FP3’s OS update (dated Jan 2025 / approx. 1.50 GB). The exact version of this update might be seen in fastbootd variables below. This might be a part of the root cause.

The fastbootd variables might indicate that the FP3 directly downloaded an image for Android 13 revision… I suspect that this is about to fail.

The installation process was smooth but the subsequent reboot is not going to stop. After about 90 seconds in the four-blue-dot screen, it reboots automatically. It does not reach the main screen :roll_eyes:

However, I would still like to save some unsaved data.

[expand] Bootloader variables seen from fastbootd in the userspace are as follows:
$ fastboot getvar all
(bootloader) cpu-abi:arm64-v8a
(bootloader) super-partition-name:system_b
(bootloader) is-logical:vendor_a:no
(bootloader) is-logical:mdtp_b:no
(bootloader) is-logical:dsp_b:no
(bootloader) is-logical:aboot_a:no
(bootloader) is-logical:keymaster_b:no
(bootloader) is-logical:sbl1_b:no
(bootloader) is-logical:cmnlib64_b:no
(bootloader) is-logical:vendor_b:yes
(bootloader) is-logical:rpm_b:no
(bootloader) is-logical:product_a:no
(bootloader) is-logical:modem_a:no
(bootloader) is-logical:lksecapp_b:no
(bootloader) is-logical:cmnlib64_a:no
(bootloader) is-logical:dsp_a:no
(bootloader) is-logical:rpm_a:no
(bootloader) is-logical:keymaster_a:no
(bootloader) is-logical:cmnlib_a:no
(bootloader) is-logical:mdtp_a:no
(bootloader) is-logical:boot_a:no
(bootloader) is-logical:product_b:yes
(bootloader) is-logical:userdata:no
(bootloader) is-logical:tz_a:no
(bootloader) is-logical:tz_b:no
(bootloader) is-logical:devcfg_a:no
(bootloader) is-logical:sbl1_a:no
(bootloader) is-logical:dtbo_a:no
(bootloader) is-logical:system_a:no
(bootloader) is-logical:vbmeta_a:no
(bootloader) is-logical:cmnlib_b:no
(bootloader) is-logical:misc:no
(bootloader) is-logical:devcfg_b:no
(bootloader) is-logical:lksecapp_a:no
(bootloader) is-logical:modem_b:no
(bootloader) is-logical:aboot_b:no
(bootloader) is-logical:mmcblk0:no
(bootloader) is-logical:dtbo_b:no
(bootloader) is-logical:vbmeta_b:no
(bootloader) is-logical:boot_b:no
(bootloader) is-logical:system_b:yes
(bootloader) is-logical:odm_b:yes
(bootloader) is-logical:system_ext_b:yes
(bootloader) battery-voltage:4165
(bootloader) treble-enabled:true
(bootloader) is-userspace:yes
(bootloader) partition-size:vendor_a:0x40000000
(bootloader) partition-size:mdtp_b:0x2000000
(bootloader) partition-size:dsp_b:0x1000000
(bootloader) partition-size:aboot_a:0x300000
(bootloader) partition-size:keymaster_b:0x100000
(bootloader) partition-size:sbl1_b:0x80000
(bootloader) partition-size:cmnlib64_b:0x100000
(bootloader) partition-size:vendor_b:0x21C6C000
(bootloader) partition-size:rpm_b:0x80000
(bootloader) partition-size:product_a:0x8000000
(bootloader) partition-size:modem_a:0x5800000
(bootloader) partition-size:lksecapp_b:0x20000
(bootloader) partition-size:cmnlib64_a:0x100000
(bootloader) partition-size:dsp_a:0x1000000
(bootloader) partition-size:rpm_a:0x80000
(bootloader) partition-size:keymaster_a:0x100000
(bootloader) partition-size:cmnlib_a:0x100000
(bootloader) partition-size:mdtp_a:0x2000000
(bootloader) partition-size:boot_a:0x4000000
(bootloader) partition-size:product_b:0x7BD02000
(bootloader) partition-size:userdata:0xC2F6F9E00
(bootloader) partition-size:tz_a:0x200000
(bootloader) partition-size:tz_b:0x200000
(bootloader) partition-size:devcfg_a:0x40000
(bootloader) partition-size:sbl1_a:0x80000
(bootloader) partition-size:dtbo_a:0x800000
(bootloader) partition-size:system_a:0xC0000000
(bootloader) partition-size:vbmeta_a:0x10000
(bootloader) partition-size:cmnlib_b:0x100000
(bootloader) partition-size:misc:0x100000
(bootloader) partition-size:devcfg_b:0x40000
(bootloader) partition-size:lksecapp_a:0x20000
(bootloader) partition-size:modem_b:0x5800000
(bootloader) partition-size:aboot_b:0x300000
(bootloader) partition-size:mmcblk0:0xE8F800000
(bootloader) partition-size:dtbo_b:0x800000
(bootloader) partition-size:vbmeta_b:0x10000
(bootloader) partition-size:boot_b:0x4000000
(bootloader) partition-size:system_b:0x3E769000
(bootloader) partition-size:odm_b:0x112000
(bootloader) partition-size:system_ext_b:0x157F9000
(bootloader) version-vndk:33
(bootloader) partition-type:vendor_a:raw
(bootloader) partition-type:mdtp_b:raw
(bootloader) partition-type:dsp_b:raw
(bootloader) partition-type:aboot_a:raw
(bootloader) partition-type:keymaster_b:raw
(bootloader) partition-type:sbl1_b:raw
(bootloader) partition-type:cmnlib64_b:raw
(bootloader) partition-type:vendor_b:raw
(bootloader) partition-type:rpm_b:raw
(bootloader) partition-type:product_a:raw
(bootloader) partition-type:modem_a:raw
(bootloader) partition-type:lksecapp_b:raw
(bootloader) partition-type:cmnlib64_a:raw
(bootloader) partition-type:dsp_a:raw
(bootloader) partition-type:rpm_a:raw
(bootloader) partition-type:keymaster_a:raw
(bootloader) partition-type:cmnlib_a:raw
(bootloader) partition-type:mdtp_a:raw
(bootloader) partition-type:boot_a:raw
(bootloader) partition-type:product_b:raw
(bootloader) partition-type:userdata:raw
(bootloader) partition-type:tz_a:raw
(bootloader) partition-type:tz_b:raw
(bootloader) partition-type:devcfg_a:raw
(bootloader) partition-type:sbl1_a:raw
(bootloader) partition-type:dtbo_a:raw
(bootloader) partition-type:system_a:raw
(bootloader) partition-type:vbmeta_a:raw
(bootloader) partition-type:cmnlib_b:raw
(bootloader) partition-type:misc:raw
(bootloader) partition-type:devcfg_b:raw
(bootloader) partition-type:lksecapp_a:raw
(bootloader) partition-type:modem_b:raw
(bootloader) partition-type:aboot_b:raw
(bootloader) partition-type:mmcblk0:raw
(bootloader) partition-type:dtbo_b:raw
(bootloader) partition-type:vbmeta_b:raw
(bootloader) partition-type:boot_b:raw
(bootloader) partition-type:system_b:raw
(bootloader) partition-type:odm_b:raw
(bootloader) partition-type:system_ext_b:raw
(bootloader) has-slot:vendor:yes
(bootloader) has-slot:mdtp:yes
(bootloader) has-slot:dsp:yes
(bootloader) has-slot:aboot:yes
(bootloader) has-slot:keymaster:yes
(bootloader) has-slot:sbl1:yes
(bootloader) has-slot:cmnlib64:yes
(bootloader) has-slot:rpm:yes
(bootloader) has-slot:product:yes
(bootloader) has-slot:modem:yes
(bootloader) has-slot:lksecapp:yes
(bootloader) has-slot:cmnlib:yes
(bootloader) has-slot:boot:yes
(bootloader) has-slot:ssd:no
(bootloader) has-slot:userdata:no
(bootloader) has-slot:tz:yes
(bootloader) has-slot:devcfg:yes
(bootloader) has-slot:dtbo:yes
(bootloader) has-slot:system:yes
(bootloader) has-slot:vbmeta:yes
(bootloader) has-slot:misc:no
(bootloader) has-slot:mmcblk0:no
(bootloader) has-slot:odm:yes
(bootloader) has-slot:system_ext:yes
(bootloader) security-patch-level:2025-01-05
(bootloader) vendor-fingerprint:Fairphone/FP3/FP3:13/6.A.031.7/gms-f31c7748:user/release-keys
(bootloader) hw-revision:0
(bootloader) current-slot:b
(bootloader) serialno:REMOVEDREMOVED
(bootloader) product:FP3
(bootloader) version-os:13
(bootloader) first-api-level:28
(bootloader) slot-count:2
(bootloader) max-download-size:0x10000000
(bootloader) version:0.4
(bootloader) version-baseband:
(bootloader) secure:yes
(bootloader) dynamic-partition:true
(bootloader) system-fingerprint:Fairphone/FP3/FP3:13/6.A.031.7/gms-f31c7748:user/release-keys
(bootloader) version-bootloader:unknown
(bootloader) unlocked:no
all: 
Finished. Total time: 0.675s

$ fastboot --set-active=a
Setting current slot to 'a'                        FAILED (remote: 'set_active command is not allowed on locked devices')
fastboot: error: Command failed

This already indicates in system-fingerprint that the software revision downloaded automatically through the official FairPhone OTA Update feature was probably 8901.3.A.0136, which is used for Android 13!.

I suspect that the **auto-**update from Android 10 directly to 13 was way too fast. :angry:

Current Phone State

Bootloader and OEM are locked as the phone is still in original stock and unmodified. Fastboot, recovery mode and fastbootd (userspace) can be accessed.

The Safe mode (pressing Volume down on the blue-dot screen) will give the same reboot after 90 seconds but it ends up in the FASTBOOT Mode. It shows Secure Boot – disabled but Device state – locked. Fastbootd through the recovery mode indicates “Secure boot – yes” in fact.

At the moment I cannot access the stored data. And I cannot boot the phone.

Ambition to save user data

I read that the userdata can still be in tact although it might be FBE encrypted from the bootloader – as far as I remember no encryption was activated manually.

Being at this stage with a stock Fairphone is slightly disappointing. Although it was unused for the last four years. The stock revision should should have avoided such a problem in my opinion.

Ever since, I have just been using official updates from SettingsSystemSystem update feature. It seems that OTA sideload would not wipe data.

  • What do you recommend next?

  • Can you please help me to avoid a factory reset? :slight_smile:

6.A.031.7 is the latest Android 13 release according to https://support.fairphone.com/hc/en-us/articles/18896094650513-Install-Fairphone-OS-manually

Yes, it should have, and it usually does, but here we are.

Correct.

Did you already try to turn off the device (real shutdown, no reboot, it’s an option in the recovery, or you could remove the battery), wait a few seconds and turn it on again? Sometimes this can make a difference compared to a reboot.

Else I would OTA sideload the same OS version in the hope it fixes whatever is wrong now.
I see that Fairphone OS OTA files are only offered as incremental updates from a prior version not too far off, which might be a problem. (I’m not using Fairphone OS and don’t know.)

For now don’t unlock the bootloader (which forces a factory reset) and don’t consent to a factory reset when perhaps Android prompts you for it during booting (the alternative at this prompt is “Try again”).

1 Like

Thank you for the quick reply.

Yes, I am still surprised that the stock OTA update tried to perform such a big jump in the OS version. I would have rather expected that it updates within the Android 10 to apply latest published fixes.

Manually, it seems not to be offered to update OTA from A10 to A13. In particular not in one step.

Yes, I just did it again. It still reboots after 90 sec in the blue animation screen. Now, for the fivth time.

The latest OTA sideload package is from Build 0031.5 → 0031.7 (A13) with just about 180 MB in size.

FP3-6.A.031.7-gms-f31c7748-user-ota-from-6.A.031.5-manual-sideload.zip

I am uncertain if applying an “arbitrary” OTA sideload update via adb is a non-critical trial to do next. Therefore, I struggle to do this for now. Further, Build 0031.5 does not match the installed OS version.

  • Should this OTA sideload update not be simply refused due to the older build version?

It is certainly distinct to the one that the stock OS update has used recently. My phone downloaded about 1.5 GB at once for the last stock update. It had indicated this value somewhere.

  • Can you determine, which OTA update package it applied from Android 10 to 13?

Maybe this messed up the phone’s file system completely.

I will not try to unlock the bootloader for now – I am still looking forward to alternative options.

It appears however that all userdata is stored FBE-encrypted in Android even with a simple pattern lock. This might mean that without a fix of the installation or another trick, the data is inaccessible…

  • Could it be possible that the very last stock OS update can be reverted?

Such a fail-safe would make sense to me for such a big possible impact in the FP’s stock OS update architecture. Factory reset for OTA stock updates is what should be avoidable in my opinion.