Yes it is possible, was suggested by @piero above.
There are some clues that the broken build has a broken recovery … so this might just work … but you did also read the other dubai thread for clues?
It will be what you do after the new recovery that is critical. You can hope to adb sideload the 3.2 ROM if required. Try to ensure that you maintain an understanding of the “repaired” slot.
Fastboot mode is “built in” so is only lost in an extreme failure (the phone is bricked). Just be sure to use appropriate fastboot commands.
Edit @Billysaurus on reflection, and this is purely my intuition, if the build did produce a “broken” recovery, then conceivably dtbo was broken ??
In your position I might start at the top of flashing addition partitions from the earlier working build. All three may be done together:
Sorry to interfere with your conversation, but I found this thread interesting also because it would be usefull for any one trying custom rom’s to understand how things work. Do you know any good and simple guides that explain the basics of fastboot, recovery, adb etc. where they lie and how they work?
Thanks for all your help
By now, a different error occured. I checked if the device is in fastboot mode, not fastbootd. I downloaded <recovery-3.2>.zip from the /e OS page, unpacked it, and checked 256sums of all files, i.e. dtbo, vendor_boot and recovery. Then I ran the 3 commands, but the last one, fastboot flash recovery </path/recovery-3.2>.img resulted in
”Warning: skip copying recovery image avb footer (recovery partition size: 0, recovery image size: 100663296).
Sending ‘recovery’ (98304 KB) OKAY [ 2.450s]
Writing ‘recovery’ (bootloader) Invalid partition name recovery
FAILED (remote: ‘’)
fastboot: error: Command failed”
I already looked for an easy solution, but found nothing similar, since
the device is already unlocked
fastboot version is 36.0.2
with fastboot getvar all I ensured that the active slot is slot a (at the very beginning of the problem slot b was displayed, so it contains the update, and therefore slot a the previous version which seems also to be corrupted)
Thank you very much! That worked. Now, if I understood it correctly, I need to switch the slot (to slot b, fastboot set_active other) and then run adb sideload <e-3.2>.zip, so it’s gonna be loaded to slot a, isn’t it?
Thank you
I carried on doing the following: In fastboot mode, I selected Boot to recovery on the device, it still displays slot a. Then I selected Enable adb, checked with adb devices if it worked. Now I ran adb sideload <e-3.2>.zip, the output is the same as at the beginning:
Error applying update: 7 […]
ERROR: recovery: Error in /sideload/package.zip (status 1)
Install completed with status 1
I know my proceeding and my questions seem to be a little dumb, but what did go wrong this time? Did I undo the command fastboot flash boot recoveryfilename.img by booting into recovery mode?
Not dumb at all. Your proposal to break the “Never go back” rule by fastboot was fine, but then I said have a go with sideload. It failed.
For more learning you might open the main ROM zip and try to find any readable file in the meta (usually) directory. While fastboot commands can potentially allow rollback adb will only follow the rules.
To avoid format data, you are back to fastboot install other partitions … this is quite advanced stuff you proposed in your OP
Unfortunately, even the update 3.5 failed. Following the rules, there should be no problem using adb sideload to update to 3.5, am I right? I tried the following, but the error message is still the same (error 7 and 1) as above:
flashing 3.2 version of dtbo, vendor_boot and recovery files via fastboot as described above on slot a, then using adb sideload with version 3.5
flashing 3.5 version of dtbo, vendor_boot and recovery files via fastboot as described above on slot b, then using adb sideload with version 3.5
I think a reset is the most appealing option by now, unless you have any other ideas? I still don’t feel competent enough to flash other partitions via fastboot…
And I still don’t know why adb refused also to load version 3.5, because the error message (also the complete one) was the same as with version 3.2
Agreed. Error 7 I would associate with “downdate”. I guess you did the checksums. Before factory reset I would be inclined to try adb sideload 3.5 one or two more times just in case I got lucky
Edit: now the error message switched to
“Logical partitions are mapped. Please reboot recovery before installing an OTA update.”
if I select on the phone “Mount/unmount system” just before using sideload.
The same problem is described here I guess. But if I select on the phone Advanced →reboot to Recovery, the procedure (Apply Update → Apply from ADB, error Logical partitions … occures) just keep on repeating again.
Is there a badge/kind of achievement like “extreme failure”? I think I earned it… /j
Yes I checked sha256sums. Repeating several times the sideload procedure with 3.5 on both slots (one with 3.5 recovery, one with 3.2 recovery) didn’t succeed.
Just in case this is of interest, I browsed the recovery log file. In order to understand a little bit of this:
if something is read-only (492.284132), maybe this is because I didn’t enable USB-debugging before starting the 3.4 update?
does the 3.4 update still “stuck” somewhere and can’t be erased? Maybe 492.295741 suggests that…
For now, I will do a reset and hopefully version 3.5 can be installed without problems. But still I’m interested in the questions above, just in case somebody wants to spend time on this
Thanks a lot for all your help!
[492.005549] […] 1439 1439 I update_engine_sideload: [INFO:action_processor.cc(116)] ActionProcessor: finished CleanupPreviousUpdateAction with code ErrorCode::kSuccess
[492.005596] […] 1439 1439 I update_engine_sideload: [INFO:action_processor.cc(143)] ActionProcessor: starting InstallPlanAction
[492.005651] […] 1439 1439 I update_engine_sideload: [INFO:action_processor.cc(116)] ActionProcessor: finished InstallPlanAction with code ErrorCode::kSuccess
[492.005692] […] 1439 1439 I update_engine_sideload: [INFO:action_processor.cc(143)] ActionProcessor: starting DownloadAction
[492.005807] […] 1439 1439 I update_engine_sideload: [INFO:install_plan.cc(79)] InstallPlan
[…]
type: new_update
version:
source_slot: A
target_slot: B
[…]
already_applied: false
[492.005922] […] 1439 1439 I update_engine_sideload: [INFO:download_action.cc(82)] Marking new slot as unbootable
first transfer
[…]
[ 492.261256] unknown fuse request opcode 2016
[…]
[492.266094] […] 1439 1439 I update_engine_sideload: [INFO:delta_performer.cc(1176)] abl does’t have version, skipping downgrade check.
[same line repeated with aop, bluetooth, cpucp, devcfg, dsp, dtbo, fsg, hyp, keymaster, logo, modem, prov, qupfw, shrm, storsec, uefisecapp, vbmeta, vbmeta_system, vendor_boot, xbl, xbl_config instead of abl]
[492.271769] […] 1439 1439 I update_engine_sideload: [INFO:fs_mgr.ccp(224)] [libfs_mgr] check_fs(): mount(/dev/block/by-name/metadata,/metadata,ext4)=0 Success
[…]
[492.284132] libc: Unable to set property “ro.boottime.init.fsck.metadata” to “13: PROP_ERROR_READ_ONLY_PROPERTY (0xb)
[492.284393] […] 1439 1439 I update_engine_sideload: [INFO:fs_mgr.ccp(339)] [libfs_mgr] superblock_s_max_mnt_count:65535,/dev/block/by-name/metadata
[…]
[492.285911] libc: Unable to set property “ro.boottime.init.mount.metadata” to “1: PROP_ERROR_READ_ONLY_PROPERTY (0xb)
[492.286090] […] 1439 1439 I update_engine_sideload: [INFO:dynamic_partition_control_android.cc(833)] Erasing AVB footer of system_other partition before update.
[492.286138] […] 1439 1439 E update_engine_sideload: [ERROR:fstab.ccp(739)] [libfstab] ReadFstabFromFileCommon(): failed to read file ‘system/etc/fstab.postinstall‘: No such file or directory
[492.286158] […] 1439 1439 W update_engine_sideload: [WARNING:fstab.ccp(705)] Cannot read fstab from /system/etc/fstab.postinstall: No such file or directory (2)
[page break]e_sideload: [INFO:dynamic_partition_control_android.cc(392)] Loaded metadata from slot A in /dev/block/bootdevice/by-name/super
[492.287378] […] 1439 1439 I update_engine_sideload: [INFO:snapshot.cpp(199)] Wait for merge (if any) before beginning a new update.
[492.287417] […] 1439 1439 I update_engine_sideload: [INFO:snapshot.cpp(1148)] CheckMergeState for snapshots returned: MergeCompleted
[492.295266] […] 1439 1439 I update_engine_sideload: [INFO:snapshot.cpp(1113)] ProcessUpdateState handling state: MergeCompleted
[492.295291] […] 1439 1439 I update_engine_sideload: [INFO:snapshot.cpp(201)] Merged with state = 5
[492.295741] […] 1439 1439 E update_engine_sideload: [ERROR:snapshot.cpp(219)] An update is already in progress, cannot begin a new update
[492.295792] […] 1439 1439 I update_engine_sideload: [INFO:dynamic_partition_control_android.cc(572)] PrepareSnapshotPartitionsForUpdate failed in recovery. Attempt to overwrite existing partitions if possible
[492.295844] […] 1439 1439 E update_engine_sideload: [ERROR:snapshot.cpp(231)] Cannot cancel update after it has completed or started merging
[492.295864] […] 1439 1439 E update_engine_sideload: [ERROR:dynamic_partition_control_android.cc(588)] snapshot_->CancelUpdate() failed.
[492.295881] […] 1439 1439 E update_engine_sideload: [ERROR:delta_performer.cc(921)] Unable to initialize partition metadata for slot B ErrorCode::kSuccess
[492.295903] […] 1439 1439 E update_engine_sideload: [ERROR:delta_performer.cc(459)] Failed to parse manifest
[492.295921] […] 1439 1439 E update_engine_sideload: [ERROR:download_action.cc(224)] Error ErrorCode::kInstallDeviceOpenError (7) in DeltaPerformer’s Write method when processing the received payload – Terminating processing
[…]
[493.141649] W:Failed to read /sys/class/thermal/thermal_zone0/temp: Invalid argument
[repeated multiple times]
Honestly, I don’t know the previous version, but probably it has been Android 14, yes. I always updated if there have been any notifications that a new update is available plus if I had the time, so I think I used the … GUI?
That’s the thing; there are no GUI Android Version Upgrades for community builds.
You can check the build history [1] … I have no idea how long you had the phone, but say it was in the order of 6 months you would have started on Android 14.
When I changed my Moto ocean from a14 to a15 I did actually back up, Format data and fresh install a15.
[1] On the downloads page /e/OS community dubai download a15 builds show by default; tap the Android 14 or Android 13 heading to see earlier builds.
Thanks again
So maybe all the trouble was caused by me trying to update /e OS 3.2 (Android 14) with /e OS 3.4 (Android 15) or 3.2/3.5 (Android 15)?
I’m not sure if it’s appropriate, but maybe it is an idea to add a note to the download page, so that users with very little concentration/attention are warned to backup files before updating their system and to check if also the Android version is consistent?