TWRP installable stock firmware packages for Fairphone 3

Setting active both slot didn’t work either and I also cannot boot into the old twrp. I don’t get any specific error, I only always end up in the “Your device is corrupt”-message.

You need to press the power button, when this message comes up, as I’ve said previously.

1 Like

Thanks, the new TWRP works.
My failed try was with the IMG file already, but I think fastboot boot didn’t work momentarily (saw this mentioned here now, too).

“OOPS! no mirrors found.”@Martin_Mattausch-Wie mentioned this, too. Is this a temporary thing with Android File Host? The file has 0 downloads so far. Hmmm …

Doesn’t work, still freezes at “Fairphone”.
I formatted data and wiped system and tried again, same result.

I also flashed the A.0110 and have the same problem with freezing at “Fairphone”.
I also wiped system/cache with no effect.

@k4y0z: Is there an A.0110 dump available for fastboot?

I’m really having trouble now getting back to a booting A.0105.

I got this working yesterday, even if not straightforward.
I had to randomly throw fastboot flashing the A.0105 partition dump, TWRP-installing the A.0105 ZIP file, recovering my A.0105 backup and factory resetting from the stock recovery at the phone, and somehow a combination of this worked in the end.
There was no reproducible, clear path for me to get back, because nothing of this all worked on the first try.

Today … no such luck.

As it stands …

  • I unlocked the bootloader … got a boot message, no big deal.
  • I used TWRP from January 24 … this apparently breaks OTA updates.
    Not nice, but no big deal, I’m an early adopter, this should somehow work out over time.
  • I installed Magisk and rooted, and uninstalled Magisk again … which works like intended, but I take it this doesn’t help matters when I want to revert back to clean stock somewhen.
  • I tried to TWRP January 24-install the A.0110 ZIP … got the additional “Your device is corrupt” message.
    Kind of annoying, but ok, just one more press of a button when booting. I somehow got back to A.0105.
  • I used TWRP from January 31 … which didn’t result in a booting A.0110, too, and now everything I try to get back to A.0105 fails.
    (Which could be coincidence and not the new TWRP’s fault, but I don’t know how to determine that.)

I’m stuck, and a little worried by now because I seem to descent into unworkable step by step.
I could use a reproducible, fail-safe way to install any version of the stock OS.

To get rid of the corrupt message you can do this :

But probably, before that, you’ll have to flash back to the A.0105 stock ROM.

In order to do so, you should download the full stock dump here and follow the instructions to flash it here. Do not forget to flash both slots and to:

If you are working in a shell environment (*nix or Windows) you can run all the instructions as a bash script like this (don’t forget to change the active slot when necessary: current is “a”):

1 Like

Not sure what’s up with that, I tried yesterday and it showed me mirrors.
I’ll see if I can reupload the file.

Did you try booting the stock recovery and doing a factory reset from there?
I’ll recheck the file, though I am sure I uploaded the correct version :confused:

You can use the full-stock dump to revert back to 105 stock using fastboot.
You will have to replace the dsp.img with the one @corvuscorax uploaded here:

@corvuscorax Could you maybe do me the favor and double check the 110 file, that all the partitions it contains are indeed correct?

1 Like

Ok, that’s the file I used.

Ok, I used these instructions.

Ok, I did that, as instructed.

Works fine with copy and paste (with a sanitizing copy and paste detour via Notepad :slight_smile: ). I checked that every command was executed, and without error messages.

I did exactly that.
Thanks for pointing to that post, I had downloaded the dsp.img, but I somehow didn’t find the post again where it was from, so I feared it got retracted and I shouldn’t use it :slight_smile: .

Good question. I’ll retry.
Edit: Same result, still freezes at “Fairphone”.

Thanks for these two posts already, all these files and instructions spreaded over various topics, I always think I missed something … I feel a bit better now :slight_smile: .

I tried to flash the stock image via fastboot as @lost_geographer suggested. However, I got errors before flashing the vendor and the system images:

Sending 'mdtp' (32768 KB)                          OKAY [  1.814s]
Writing 'mdtp'                                     OKAY [  0.163s]
Finished. Total time: 2.008s
Invalid sparse file format at header magic
Sending sparse 'vendor' 1/2 (519509 KB)            OKAY [ 17.564s]
Writing 'vendor'                                   OKAY [ 33.889s]
Sending sparse 'vendor' 2/2 (16364 KB)             OKAY [  0.485s]
Writing 'vendor'                                   OKAY [  0.112s]
Finished. Total time: 52.584s
Invalid sparse file format at header magic
Sending sparse 'system' 1/5 (522235 KB)            OKAY [ 16.643s]
Writing 'system'                                   OKAY [  4.859s]
Sending sparse 'system' 2/5 (512754 KB)            OKAY [ 17.763s]
Writing 'system'                                   OKAY [  2.498s]
Sending sparse 'system' 3/5 (514480 KB)            OKAY [ 15.394s]
Writing 'system'                                   OKAY [  2.401s]
Sending sparse 'system' 4/5 (505663 KB)            OKAY [ 15.370s]
Writing 'system'                                   OKAY [  3.772s]
Sending sparse 'system' 5/5 (445921 KB)            OKAY [ 13.504s]
Writing 'system'                                   OKAY [ 39.322s]
Finished. Total time: 169.187s

Does that matter?
It still doesn’t boot, when I try it boots into stock recovery and says “Can’t load Android system. Your data may be corrupted”.

It offers me to do a factory data reset, but I didn’t dare to do that.

These errors are fine, you need to flash the dsp.img uploaded by @corvuscorax if you want to be able to OTA afterwards.
If it offers factory-reset, do it.

About the 110 ZIP linked above.
I think I have found what was causing the issue.
I have used the truncated files instead of the zero-padded files in the ZIP.
This may have resulted in the checksums not matching.
I’ll reupload the file with the full partitions

4 Likes

on it… will update this post with results…

Results:
the zip is currently not downloadable (the mirror it had been uploaded currently seems to be offline and it apparently didn’t propagate to other mirrors)
but from the one I downloaded yesterday, the images are identical except for missing zero bytes at the end of the smaller images - as you wrote below :slight_smile: i get an exact match if i fill with zero bytes up to the partition size. this might cause a checksum mismatch if a larger image was flashed into the same partition previously.

2 Likes

Thanks I think I identified the issue.
I was using the truncated images instead of the zero-padded ones.
Reuploading now.

1 Like

I have reuploaded 110, please test:
Fairphone_FP3_8901.2.A.0110.20200109_01092024_user_release-keys.zip
(428bdfe207aab70fad51fe4da33e8d6c)

1 Like

Installed Fairphone_FP3_8901.2.A.0110.20200109_01092024_user_release-key.zip with twrp-3.3.1-0_k4y0z-20200131-01-fp3.img.

Same result, installs fine but still freezes at “Fairphone” when booting.

Rebooted into stock recovery and did “Wipe data/factory reset”.
Wanted to “Reboot to System” from the recovery … got Fastboot Mode instead, and:

fastboot getvar current-slot
current-slot: INVALID
Finished. Total time: 0.007s

That’s when fastboot booting TWRP doesn’t work anymore, which even makes sense to me …

fastboot boot twrp-3.3.1-0_k4y0z-20200131-01-fp3.img
Sending 'boot.img' (28570 KB)                      OKAY [  0.771s]
Booting                                            FAILED (remote: 'unknown reason')
fastboot: error: Command failed

At which point I’m wondering … How can I determine afterwards to which slot I installed the ZIP?

Edit:
I had a look beforehand now and installed to slot a.
I rebooted into Fastboot Mode and

fastboot getvar current-slot
current-slot: a
Finished. Total time: 0.001s

So it seems it’s not the installing that makes the slot invalid.
Tried to boot the OS … freezes at “Fairphone”.
Rebooted into Fastboot Mode … slot is still a.

Is there anything I could check with fastboot or TWRP now?

Thank you, @k4y0z that worked!
But now when I try to flash a gsi again with fastboot flash system <system-image> I get the following error:

Invalid sparse file format at header magic error: write_sparse_skip_chunk: don't care size 183539441 is not a multiple of the block size 4096 fastboot: core/libsparse/sparse.cpp:131: int write_all_blocks(struct sparse_file *, struct output_file *): Assertionpad >= 0’ failed.`

Can you confirm you used the new file I uploaded today?
md5sum: 428bdfe207aab70fad51fe4da33e8d6c

In my opinion that doesn’t make sense at all, fastboot boot should work regardless of the current slot being bootable or not.

However the workaround for this is to set the slot active using fastboot, which will reset the retry-counts:
fastboot -set_active=<slot>

The ZIP will be installed to the current slot.
You can see in the TWRP reboot page which slot is currently active (and switch slots)

I am unsure, what could now be the issue.
Please make sure you used the new upload from today.
Also @corvuscorax If you could also double-check again, that the new version has the correct images?

I have also reuploaded the 105, because it wasn’t finding mirrors:

1 Like

Yes. I checked the MD5 … and the new file is *key.zip instead of *keys.zip.

Yes, but that doesn’t help much afterwards, or does it? Couldn’t the phone have changed slots because booting didn’t work out? (I noticed an automatic rapid reboot or two yesterday from the “Fairphone” screen when stuff didn’t work.) (Edit: Ok, such a reboot doesn’t seem to change the slot. At least not now when I had one and checked the slot.)

That’s why I made sure I knew the active slot with the second try.

Thanks, I will try that one, too.

I installed the new Fairphone_FP3_8901.2.A.0105.20191217_12171325_user_release-keys.zip (checked the MD5) with twrp-3.3.1-0_k4y0z-20200131-01-fp3.img on slot a.

The phone shows the “Fairphone” screen and then reboots … shows the “Fairphone” screen again, and then reboots into the recovery with the “Can’t load Android system. Your data may be corrupt. […] Try again / Factory data reset” screen.
The active slot is still a.

Once I “Factory data reset” there, the phone reboots straight into Fastboot Mode, and the slot is invalid.

By the way … that the TWRP script supposedly should install all the partitions, but only ever mentions system, vendor and product is ok?

1 Like

That’s strange, when it showed that “Try again” message, Factory reset has always worked in my tests to bring it back.

The other partitions are flashed in a different format, and there is just no output in the script.
You can check META-INF/com/google/android/updater-script in the ZIP-file.

I’m not sure what is going on at this point, maybe @corvuscorax has an idea.
It should restore all the partitions to the original ones and boot without issues.

EDIT:
OK, I have another idea what might be going on, can you please go into adb shell in TWRP and do
ls -l /dev/block/bootdevice/by-name

send me the output please?

1 Like