FP4 is bricked after device-flasher unzip img fails
Summary
Installing to Fairphone 4 per directions fails due to un-handled extraction error.
Details
Using device-flasher.linux 1.0.8 with FP4-factory-23415000.zip on Fedora 38.
The flasher continues on to the next step and instructs the user to lock the bootloader after failed product.img extraction (out of disk space). I don't know just where flasher was trying to create the img, however there was plenty of free space on system fs (both root and /home) so the destination may have been RAM-bound, such as /tmp (this is the wrong place to create gigabyte-sized files).
The bugs appear to be:
- Inappropriate extraction destination
- Not checking available space
- Not aborting procedure due to a critical error (should have happened before the erase phase!)
- Not checking for correct result on phone before finalizing the procedure
- Additional user steps like extending /tmp size should not be necessary
Flasher excerpt:
archive does not contain 'boot_other.img'
extracting odm.img (1 MB) to disk... took 0.004s
archive does not contain 'odm.sig'
Resizing 'odm_a' OKAY [ 0.005s]
Sending 'odm_a' (1188 KB) OKAY [ 0.007s]
Writing 'odm_a' OKAY [ 0.045s]
archive does not contain 'odm_dlkm.img'
extracting product.img (1192 MB) to disk...ziparchive W 01-12 13:20:54 1414 1414] Zip: unable to allocate 1250832384 bytes at offset 0: No space left on device
fastboot: error:
failed to extract 'product.img': I/O error
Rebooting into bootloader OKAY [ 0.000s]
Finished. Total time: 0.050s
Locking FP4 -------- bootloader...
6. Please use the volume and power keys on the device to lock the bootloader
Status
Update: After extending the size of /tmp to 4GB I was able to run flasher successfully and the phone now boots into Calyx.
The FP4 is stuck in a boot loop: Selecting any of Start
, Restart
or Recovery mode
merely reboots to the FastBoot Mode screen. Device state says "locked", as I locked it per flasher step 6. Neither adb
nor fastboot
commands recognize the phone, although Linux can see it on the USB bus.
Notes
device-flasher.linux doesn't work at all on Debian 12; was necessary to switch to Fedora 38.