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

Got the same problem with my FP3 & the V16 update, I was hoping this would be solved by now but this is now the third update to fail. Anyone got any advice on how to update without wiping my app & user data?

At least not in general.
OTA updates work fine for me …

… but I’m on the dev channel. Easy Installer installations (and preinstalled phones bought from the e foundation) are on the stable channel … which should mostly get the same updates, though, only later.

Else … 0.15 or 0.16 doesn’t say anything about the Android version. Currently Android 9 and Android 10 are both supported with updates and could be 0.15 or 0.16.

So, for troubleshooting it would be helpful to know what you all have in Settings - About phone - Android version (tap on it) - /e/ version, as this contains all the important info about an /e/ version. (Yeah, it would be nice to have this consistently displayed everywhere, which is not the case right now, there’s always room for improvement.)

Example: I’m currently on 0.16-q-20210415110657-dev-FP3.

I got 0.15-q-20210317106531-stable-FP3. From 0.14 to 0.15 it worked smoothly.

1 Like

My OTA update worked coming from 0.15-q-20210316105636-dev-FP3, your stable build supposedly is from a day later, could be the same build then relabelled as stable.

Hi,
At the moment I have 0.15-q-20210317106351-stable-FP3 which I got via the easy-installer.

And the update I’m trying links to: https://ota.ecloud.global//builds/full/stable/FP3/e-0.16-q-20210422111920-stable-FP3.zip

Which fails at reboot.

Same here :slight_smile:

0.13-q-2020121490323-stable-FP3

This has never been updated, it was the version that was installed via the installer and stuck ever since.

Ok, so far all failing OTAs on the stable channel, all Android 10 (q).
It doesn’t seem to be a difference resulting from Android 9/10 then.

Would be concerning to have dev working and stable failing, in case of failure it is planned the other way around :slight_smile: .
It might be good to raise an issue at /e/'s GitLab to make /e/ developers aware …

Thanks!
I’ve created an issue here: https://gitlab.e.foundation/e/backlog/-/issues/3062

2 Likes

@jeos I don’t expect it started working for you? Looks like not many have this issue.

@mihi No luck as of yet unfortunately.

I have tried installing both with and without using the easy-installer as well, following these instructions (https://doc.e.foundation/devices/FP3/install) for both the stable and the dev build and the same problem persists.
It seems to install ok every time, and starts with slot a active. When I then use the system updater it updates fine and boots into slot b which also seems ok.

However if I repeat the process with the next version (i.e. with slot b is active) then the same “cant load android system” screen appears when it boots back to slot a.
If I hit “Factory reset” it seems to successfully install the update (just without any of my data).

I’m not sure what else I can try.

So you get 0.15-q with the Easy Installer?

The issue is marked with Easy Installer but I uesd it with 0.13-q since then OTA’s worked flawless.

Once you reach the working state before the failing update, perhaps it would be worth a shot to copy that state of the partitions over to the other slot before attempting the update.
LineageOS has a script that does this at https://wiki.lineageos.org/devices/FP3/install under “Pre-install instructions”.

1 Like

@mihi I initially tried with the easy-installer, but now I’ve been getting it from the stable builds linked on this page: https://doc.e.foundation/devices/FP3/install

Yeah that’s a good point, I think I’ll update the gitlab issue as the problem seems to be more linked to my device (or how I’m installing it) rather than the easy installer.

@AnotherElk Thanks for the advice, I really appreciate it.
I tried using that script to copy from one slot b to slot a, it run ok, but unfortunately it got stuck at the fairphone load screen when booting from slot a. (still booted ok from slot b)

Since then, I have just tried wiping and flashing again and it seems to be working ok this time. I flashed 0.13-q stable build following the usual instructions (as I did before) and updated to 0.14 then 0.15, 0.16 from the system updater and it switched slots each time as expected.

The only difference I can think that I made was running the command:
fastboot -w
when both slots were active, i.e.
fastboot --set-active=a
fastboot -w
fastboot --set-active=b
fastboot -w
before flashing system etc.
As far as I understand fastboot -w wipes userdata and cache so I’m not really sure how this affects the A/B slots as I thought they are separate partitions. (but bear in mind I don’t really know what I’m talking about :smiley:)

So I’m not 100% if this is what fixed the issue or if something else changed in the process. Whilst that’s not a particularly satisfying conclusion, the OTA updates appear to be working ok for now and will hopefully stay working, so thanks all for your help.

1 Like

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.