[HOWTO] Upgrade Q -> R (suzuran, z3c)

Note that this it is not currently possible to upgrade these devices, without losing at least some user data and/or access to some Android R functionality

‘/e/ OS Version Upgrade’ documentation for suzuran and z3c has recently been published. The published documents contain some errors and broken links, and I started digging into the correct way of upgrading, preferably without losing installed apps and user data. After an interesting few hours’ work :slight_smile: I have discovered the following:

  • There is no easy way of doing this for either device.
  • For z3c ‘dirty flashing’ does not work, neither does restoring Q data from a TWRP backup. If you try, then
    • with a lock screen, it reverts to the lock screen again after unlocking
    • without a lock screen, it keeps looping on the “Phone is starting” screen
  • For suzuran dirty flashing does seem to work, but you will not have access to the SeedVault backup functionality in Settings | System. It may be possible to initiate SeedVault from either adb or a shell on the phone as described in this post but I have not tested this.

More complex ways of upgrading while keeping your installed apps and user data might be

  1. Use the ‘Android Backup and Restore Tools’ project which uses shell scripts on a Linux PC to backup and restore apps and data. as decribed in the post below. Note that - in my experience - not all apps can be restored successfully, and some which are restored do not have their data restored
    [HOWTO] Backup and Restore Data on Android Devices - #52 by petefoth

  2. Use the ‘start SeedVault in Q from adb or shell’ hack, as described in this post. SeedVault should be enabled after a clean install of an R ROM, but that may not be the case for all devices, I have not experimented with this solution at all yet. I may do so in the coming days. From what I have seen, this is the closest to the ‘Restore/migrate aps and data’ provided by Google’s Android (which, in my expeience “Just Works (™)”
    [HOWTO] use Seedvault early to understand Android backup.

Note that I have not fully tested either of those solutions. If you really don’t want to lose your installed apps and user data, then I would advise you not to upgrade from Q → R at the moment

For the record the correct way to do a clean upgrade for these devices is as follows:


  1. TWRP installed on the phone
  2. adb installed on the connected computer, and debugging enabled on the device. (This is not necessary if you copy the new ROM from your connected computer in step 2 below, and install using TWRP | Install in step 5 rather than adb sideload)


  1. Download the R ROM from
  2. Get the R ROM onto an external SD Card on your device, formatted as Portable storage (because, if anything goes wrong, you may need to format the data partitions, when anything in internal storage will be lost). If you don’t have an external SD card, then you can install the R ROM from connected computer using adb sideload as described below
    1. Using adb push
      • for z3c adb push e-0.21-r-20220125158734-dev-z3c.zip sdcard1/
      • for suzuran adb push e-0.21-r-20220125158734-dev-suzuran.zip external_sd/
    2. Copying from a Windows, Linux or Mac computer. To copy from a Mac, you will need a third-party program such as OpenMTP
  3. Boot the device into TWRP - power off, then press the volume down and power keys together until the phone vibrates
  4. Wipe data partition - choose Wipe, and tick ‘Dalvik / ART Cache’, ‘Cache’ and ‘Data’. No need to wipe system - flashing the ROM will wipe the system partition. You could also choose to Format data, but that will delete everything in internal storage (i.e. the internal ‘SD Card’)
  5. Flash the new R ROM either
  • Choose ‘Install’ and select the new ROM from the SD card
  • When the install is complete, select ‘Wipe cache / Dalvik’ before rebooting. This shoudn’t be necessary but … :slight_smile:
  • using adb sideload
    • In TWRP, choose ‘Advanced | ADB Sideload’
    • on the connected computer
      • for z3c adb sideload e-0.21-r-20220125158734-dev-z3c.zip
      • for suzuran adb sideload e-0.21-r-20220125158734-dev-suzuran.zip external_sd/
      • on the computer you will see the following message: this is normal, and means the flashing is complete: serving: 'e-0.20-q-20211216151800-dev-pioneer.zip' (~47%) adb: failed to read command: Success
      • When the install is complete, Wipe cache and Dalvik on the device then reboot (either in TWRP, or with adb reboot)
1 Like

I wish upgrading to newer android version would be this easy on my Oneplus 8. Just sideload, not the stockrom hassle dassle. Did upgrade two suzuran phones just by sideloading, thank you for this guide and assistant!!

1 Like