TWRP for Fairphone 3

english is not my nativ language

gramatics is not my nativ anything :stuck_out_tongue:

they could at least give us a terminal and sudo as standard

A/B partitioning is actually a safety feature, as it will update the inactive slot when doing OTA and verify it first before switching to it.
Also it allows to install OTAs in the background and reboot to the updated system without any waiting time.
When flashing via fastboot or TWRP it will flash to the currently active slot unless you specify the slot or switch slots first.

This i understand. So, my slot was a in the first place. ok. then anyone wo try this should check the active slot and then flash to the other.

but isnt this what this does?

it flashes both slots.

1 Like

I wondered about this too - but I think there is a reboot in between, isn’t it?

not to system, only to fastboot.

Right, but this is the important part, according to k4y0z:

1 Like

btw i did this a few times with the stockrom over the last days trying and failing
get that 0110 update to work. I even put the two segments into bashscripts so i dont have to copypase them every time something went wrong. I execute the one for a
and then b.

worked every time.

yes thats why pigpig had the reboot to fastboot at the last line of part a

fastboot --set-active=a
fastboot flash product product.img -S 522239K || exit 1
fastboot flash keymaster keymaster.img -S 522239K || exit 1
fastboot flash cmnlib64 cmnlib64.img -S 522239K || exit 1
fastboot flash cmnlib cmnlib.img -S 522239K || exit 1
fastboot flash lksecapp lksecapp.img -S 522239K || exit 1
fastboot flash mdtp mdtp.img -S 522239K || exit 1
fastboot flash vendor vendor.img -S 522239K || exit 1
fastboot flash system system.img -S 522239K || exit 1
fastboot flash boot boot.img -S 522239K || exit 1
fastboot flash vbmeta vbmeta.img -S 522239K || exit 1
fastboot flash dtbo dtbo.img -S 522239K || exit 1
fastboot flash dsp dsp.img -S 522239K || exit 1
fastboot flash devcfg devcfg.img -S 522239K || exit 1
fastboot flash tz tz.img -S 522239K || exit 1
fastboot flash rpm rpm.img -S 522239K || exit 1
fastboot flash sbl1 sbl1.img -S 522239K || exit 1
fastboot flash modem modem.img -S 522239K || exit 1
fastboot flash aboot aboot.img -S 522239K || exit 1
fastboot reboot bootloader

It works fine, until it doesn’t…
Also it would be better to flash to the inactive slot first, test, then flash to the active one.
Not start always with a.
If a was your only working slot to begin with you may brick it that way if you borked a during flashing.

1 Like

yes that is true. But so far so good. :smiley:

btw. You sayd that fastboot comes from the aboot partition
when its loaded and i do getvar all, how can it get active slot INVALID, like its not knowing where it has the fastboot from?!??!

At least, add this line after the reboot bootloader : fastboot getvar current-slot 2>&1 | grep "current-slot: a" || exit 2

1 Like

after part a or at the start of part b? i use 2 scripts seperately

After part a. If after a reboot you’re on the bootloader of the slot you just flashed, then you’ll still have a bootloader if something go wrong with the next slot.

ok i put it in my scipt. thx

Also, if it is the last cmd, add something like echo "Flashed" at the end. If you don’t see it, then it went wrong. Or check the exit value after the script echo $?

That still isn’t good.
You need to check which slot is active BEFORE flashing anything and then flash to the other slot.
If you don’t and the other slot has no working fastboot, you may just overwrite your only working fastboot.

2 Likes

You’re right :smile:

Then add, at the beginning :

fastboot --set-active=a
fastboot reboot bootloader
fastboot getvar current-slot 2>&1 | grep "current-slot: a" || exit 2
fastboot --set-active=b
fastboot reboot bootloader
fastboot getvar current-slot 2>&1 | grep "current-slot: b" || exit 2
echo "Bootloader works on both slots"
2 Likes