I have a Moto Z3 Play with stock ROM and rooted it by Magisk. Phone is seamless updates and treble ready. Everything works fine. Yesterday system updater was trying to update to the newest version but it fails. I know, I changed boot partition so it can fail. I downloaded a full ROM zip file from Lenovo servers (PPWS29.131-27-1-15), unpack it and trying to flash the newest version by myself using fastboot.

The current slot was B, it contained PPWS29.131-27-1-11 version. So I changed to A and flashed all partitions from PPWS29.131-27-1-15 ZIP file on slot A.

Commands that I used to flash PPWS29.131-27-1-15:

fastboot getvar max-sparse-size
fastboot oem fb_mode_set
fastboot set_active a
fastboot flash partition gpt.bin
fastboot flash bootloader bootloader.img
fastboot flash modem NON-HLOS.bin
fastboot flash fsg fsg.mbn
fastboot erase modemst1
fastboot erase modemst2
fastboot flash bluetooth BTFM.bin
fastboot flash dsp dspso.bin
fastboot flash logo logo.bin
fastboot flash boot boot.img
fastboot flash system system.img_sparsechunk.0
fastboot flash system system.img_sparsechunk.1
fastboot flash system system.img_sparsechunk.2
fastboot flash system system.img_sparsechunk.3
fastboot flash system system.img_sparsechunk.4
fastboot flash system system.img_sparsechunk.5
fastboot flash vendor vendor.img_sparsechunk.0
fastboot flash vendor vendor.img_sparsechunk.1
fastboot flash oem oem.img
fastboot erase carrier
fastboot erase ddr
fastboot oem fb_mode_clear

Then I tried to boot from A slot but it fails. The phone got bootloop and lands in stock recovery. I assumed that something goes wrong so I rebooted to bootloader and changed slot to B to boot PPWS29.131-27-1-11 version which was working fine. And then comes mindf*ck - after system start from slot B, I noticed that system version is now PPWS29.131-27-1-15. But how? I flashed partitions on A slot, not B. Even fastboot logs showed that I was flashing A slot.

When I changed slot to A with fastboot command is it really flash A partitions? Or just change which partition should boot in the next reboot?

  • question updated
    – QkiZ
    Commented Dec 6, 2019 at 0:16
  • 1
    This seems kinda weird to me. The fastboot images for the A/B devices I've seen so far explicitly flashes system_a and/or system_b, not just system. Your behaviour is more akin to flashing zip-formatted ROMs from recovery, where the recovery will flash it to the inactive slot and activate it afterwards, so that A/B take turns on each flash and you always have a fallback. Perhaps you used the wrong commands (for older devices?), because I searched and found references on XDA where Z3 Play is shown to also use _a/_b.
    – Andy Yan
    Commented Dec 6, 2019 at 1:20
  • 2
    If you do not specify _a or _b suffix fastboot will flash on the active slot. You can check which slot is active by fastboot getvar all command. Changing active slot: fastboot set_active a. source.android.com/devices/tech/ota/ab/ab_implement. I'm starting suspect that in fastboot it can work like in TWRP, like you said. Active is B. I changed to A so fastboot start flashing on B, the other slot.
    – QkiZ
    Commented Dec 6, 2019 at 7:17


You must log in to answer this question.

Browse other questions tagged .