FP3 auto-update 0.15 "Cant load Android system..."

Oh, they have stable builds for download now. Thanks for the pointer.

I need some input what my next approach should be. OTA 0.16-q on my Fairphone 3 doesn’t boot correctly because the boot slot isn’t updated with it?

I could fix that manually with Sideloade(ing) the OTA and using the script-snippet to copy boot partitions, right?

Is waiting to maybe beeing fixed with 0.17-q also possible?

@AnotherElk Could you clear some things up for me in relation to boot-partition. In alot of other community post I found bits an pieces with alot of advices from you but not sure if I see the big picture.

Developers can’t reproduce the issue with ‘Can’t load…’, its even an issue in the offical release of FP3. I would like to try to update manually and setting the boot-partition. So my approach would be to create a backup of data.

From fastboot getvar all I get this:
(bootloader) version:0.5
(bootloader) battery-soc-ok:yes
(bootloader) battery-voltage:4152580
(bootloader) variant:MTP eMMC
(bootloader) unlocked:no
(bootloader) secure:no
(bootloader) version-baseband:
(bootloader) version-bootloader:
(bootloader) logical-block-size:0x200
(bootloader) erase-block-size:0x200
(bootloader) display-panel:
(bootloader) off-mode-charge:1
(bootloader) adb-enabled:0
(bootloader) charger-screen-enabled:1
(bootloader) max-download-size: 0x1fdffc00
(bootloader) slot-count:2
(bootloader) current-slot:b
(bootloader) slot-retry-count:b:5
(bootloader) slot-success:b:Yes
(bootloader) slot-active:b:Yes
(bootloader) slot-unbootable:b:No
(bootloader) slot-retry-count:a:0
(bootloader) slot-success:a:No
(bootloader) slot-active:a:No
(bootloader) slot-unbootable:a:Yes
(bootloader) has-slot:userdata: No
(bootloader) has-slot:product: Yes
(bootloader) has-slot:frp: No
(bootloader) has-slot:logdump: No
(bootloader) has-slot:dpo: No
(bootloader) has-slot:msadp: No
(bootloader) has-slot:apdp: No
(bootloader) has-slot:keymaster: Yes
(bootloader) has-slot:cmnlib64: Yes
(bootloader) has-slot:cmnlib: Yes
(bootloader) has-slot:lksecapp: Yes
(bootloader) has-slot:mcfg: No
(bootloader) has-slot:syscfg: No
(bootloader) has-slot:mdtp: Yes
(bootloader) has-slot:dip: No
(bootloader) has-slot:mota: No
(bootloader) has-slot:limits: No
(bootloader) has-slot:oem: No
(bootloader) has-slot:config: No
(bootloader) has-slot:prodinfo: No
(bootloader) has-slot:keystore: No
(bootloader) has-slot:misc: No
(bootloader) has-slot:persist: No
(bootloader) has-slot:vendor: Yes
(bootloader) has-slot:system: Yes
(bootloader) has-slot:devinfo: No
(bootloader) has-slot:boot: Yes
(bootloader) has-slot:vbmeta: Yes
(bootloader) has-slot:dtbo: Yes
(bootloader) has-slot:aboot: Yes
(bootloader) has-slot:splash: No
(bootloader) has-slot:sec: No
(bootloader) has-slot:fsg: No
(bootloader) has-slot:DDR: No
(bootloader) has-slot:modemst2: No
(bootloader) has-slot:modemst1: No
(bootloader) has-slot:dsp: Yes
(bootloader) has-slot:devcfg: Yes
(bootloader) has-slot:tz: Yes
(bootloader) has-slot:rpm: Yes
(bootloader) has-slot:sbl1: Yes
(bootloader) has-slot:ssd: No
(bootloader) has-slot:fsc: No
(bootloader) has-slot:modem: Yes
(bootloader) partition-type:userdata:ext4
(bootloader) partition-size:userdata: 0xc2f6f9e00
(bootloader) partition-type:product_b:raw
(bootloader) partition-size:product_b: 0x8000000
(bootloader) partition-type:product_a:raw
(bootloader) partition-size:product_a: 0x8000000
(bootloader) partition-type:frp:raw
(bootloader) partition-size:frp: 0x80000
(bootloader) partition-type:logdump:raw
(bootloader) partition-size:logdump: 0x4000000
(bootloader) partition-type:dpo:raw
(bootloader) partition-size:dpo: 0x2000
(bootloader) partition-type:msadp:raw
(bootloader) partition-size:msadp: 0x40000
(bootloader) partition-type:apdp:raw
(bootloader) partition-size:apdp: 0x40000
(bootloader) partition-type:keymaster_b:raw
(bootloader) partition-size:keymaster_b: 0x100000
(bootloader) partition-type:keymaster_a:raw
(bootloader) partition-size:keymaster_a: 0x100000
(bootloader) partition-type:cmnlib64_b:raw
(bootloader) partition-size:cmnlib64_b: 0x100000
(bootloader) partition-type:cmnlib64_a:raw
(bootloader) partition-size:cmnlib64_a: 0x100000
(bootloader) partition-type:cmnlib_b:raw
(bootloader) partition-size:cmnlib_b: 0x100000
(bootloader) partition-type:cmnlib_a:raw
(bootloader) partition-size:cmnlib_a: 0x100000
(bootloader) partition-type:lksecapp_b:raw
(bootloader) partition-size:lksecapp_b: 0x20000
(bootloader) partition-type:lksecapp_a:raw
(bootloader) partition-size:lksecapp_a: 0x20000
(bootloader) partition-type:mcfg:raw
(bootloader) partition-size:mcfg: 0x400000
(bootloader) partition-type:syscfg:raw
(bootloader) partition-size:syscfg: 0x80000
(bootloader) partition-type:mdtp_b:raw
(bootloader) partition-size:mdtp_b: 0x2000000
(bootloader) partition-type:mdtp_a:raw
(bootloader) partition-size:mdtp_a: 0x2000000
(bootloader) partition-type:dip:raw
(bootloader) partition-size:dip: 0x100000
(bootloader) partition-type:mota:raw
(bootloader) partition-size:mota: 0x80000
(bootloader) partition-type:limits:raw
(bootloader) partition-size:limits: 0x8000
(bootloader) partition-type:oem:raw
(bootloader) partition-size:oem: 0x10000000
(bootloader) partition-type:config:raw
(bootloader) partition-size:config: 0x8000
(bootloader) partition-type:prodinfo:raw
(bootloader) partition-size:prodinfo: 0x200000
(bootloader) partition-type:keystore:raw
(bootloader) partition-size:keystore: 0x80000
(bootloader) partition-type:misc:raw
(bootloader) partition-size:misc: 0x100000
(bootloader) partition-type:persist:raw
(bootloader) partition-size:persist: 0x2000000
(bootloader) partition-type:vendor_b:raw
(bootloader) partition-size:vendor_b: 0x40000000
(bootloader) partition-type:vendor_a:raw
(bootloader) partition-size:vendor_a: 0x40000000
(bootloader) partition-type:system_b:raw
(bootloader) partition-size:system_b: 0xc0000000
(bootloader) partition-type:system_a:raw
(bootloader) partition-size:system_a: 0xc0000000
(bootloader) partition-type:devinfo:raw
(bootloader) partition-size:devinfo: 0x100000
(bootloader) partition-type:boot_b:raw
(bootloader) partition-size:boot_b: 0x4000000
(bootloader) partition-type:boot_a:raw
(bootloader) partition-size:boot_a: 0x4000000
(bootloader) partition-type:vbmeta_b:raw
(bootloader) partition-size:vbmeta_b: 0x10000
(bootloader) partition-type:vbmeta_a:raw
(bootloader) partition-size:vbmeta_a: 0x10000
(bootloader) partition-type:dtbo_b:raw
(bootloader) partition-size:dtbo_b: 0x800000
(bootloader) partition-type:dtbo_a:raw
(bootloader) partition-size:dtbo_a: 0x800000
(bootloader) partition-type:aboot_b:raw
(bootloader) partition-size:aboot_b: 0x300000
(bootloader) partition-type:aboot_a:raw
(bootloader) partition-size:aboot_a: 0x300000
(bootloader) partition-type:splash:raw
(bootloader) partition-size:splash: 0xb00000
(bootloader) partition-type:sec:raw
(bootloader) partition-size:sec: 0x4000
(bootloader) partition-type:fsg:raw
(bootloader) partition-size:fsg: 0x180000
(bootloader) partition-type:DDR:raw
(bootloader) partition-size:DDR: 0x8000
(bootloader) partition-type:modemst2:raw
(bootloader) partition-size:modemst2: 0x180000
(bootloader) partition-type:modemst1:raw
(bootloader) partition-size:modemst1: 0x180000
(bootloader) partition-type:dsp_b:raw
(bootloader) partition-size:dsp_b: 0x1000000
(bootloader) partition-type:dsp_a:raw
(bootloader) partition-size:dsp_a: 0x1000000
(bootloader) partition-type:devcfg_b:raw
(bootloader) partition-size:devcfg_b: 0x40000
(bootloader) partition-type:devcfg_a:raw
(bootloader) partition-size:devcfg_a: 0x40000
(bootloader) partition-type:tz_b:raw
(bootloader) partition-size:tz_b: 0x200000
(bootloader) partition-type:tz_a:raw
(bootloader) partition-size:tz_a: 0x200000
(bootloader) partition-type:rpm_b:raw
(bootloader) partition-size:rpm_b: 0x80000
(bootloader) partition-type:rpm_a:raw
(bootloader) partition-size:rpm_a: 0x80000
(bootloader) partition-type:sbl1_b:raw
(bootloader) partition-size:sbl1_b: 0x80000
(bootloader) partition-type:sbl1_a:raw
(bootloader) partition-size:sbl1_a: 0x80000
(bootloader) partition-type:ssd:raw
(bootloader) partition-size:ssd: 0x2000
(bootloader) partition-type:fsc:raw
(bootloader) partition-size:fsc: 0x400
(bootloader) partition-type:modem_b:raw
(bootloader) partition-size:modem_b: 0x5800000
(bootloader) partition-type:modem_a:raw
(bootloader) partition-size:modem_a: 0x5800000

I see that b is the active one and that a is unbootable, is that a bad thing?

As the next step I would install the OTA with:
fastboot --set-active=a
fastboot flash system_a nameofOTA0.17.img

Would this work without losing userdata?

Danke dir im voraus

Not really, as long as you have a bootable OS on slot b.

As long as you don’t wipe or flash userdata with fastboot or do a factory reset, I don’t see how userdata would be affected.

Just make sure you match the partition images to the partitions you flash them to :wink: .

For reference … stable releases are at https://images.ecloud.global/stable/FP3/, how to flash is given in the install instructions at https://doc.e.foundation/devices/FP3/install in section “Installing /e/ from the bootloader”, just don’t do the wiping (fastboot -w), the flashing to slot b in your case and the locking at the end (your bootloader is locked already, and otherwise locking it would force a factory reset).

I checked out the the documentation including fastboot errors. Then I tried.

fastboot flash system_a system.img -S 522239K
Sending sparse 'system_a' 1/4 (515836 KB) OKAY [ 14.993s]
Writing 'system_a' FAILED (remote: 'Partition flashing is not allowed')
fastboot: error: Command failed

Then I set a to be active

fastboot --set-active=a
Setting current slot to 'a' OKAY [ 0.023s]
Finished. Total time: 0.030s

But behavior is the same. Set back to b and restarted phone. Does it need to be unlocked? As you said I would have factroy reset phone then and I rather wouldnt.

If you can’t flash the OS this is to be expected.

Hmmm … sounds like it, and thinking more about this it actually makes sense, the lock should prevent something like this for security’s sake.
I’m running an unlocked bootloader anyway, so I don’t always have this on my radar, sorry.

Locking as well as unlocking the bootloader will force a factory reset for security reasons.
If the OTA updater of the OS doesn’t manage to get the new OS version onto the other slot, there’s not much else to do on your end, I’m afraid.