Redmi Note 7 Pro (violet), couldn't flash the ROM: Zip Treble compatibility error

Hi all,

I would like to flash e-foundation ROM to newly purchased Xiaomi Redmi Note 7 Pro (violet), however having difficulties doing it. I am following the official guidelines for the device, but I am stuck at the last step. To be particular, when I sideload the zip file, I am getting an error, which can be seen in the below screenshot:

The device details if it helps:

  • Model: M1901F7S
  • MIUI version: MIUI Global 11.0.6 | Stable 11.0.6.0(PFHINXM)
  • Android version: 9 PKQ1.181203.001

So here is the steps I did, first rebooted to fastboot mode, and:

fastboot erase userdata
fastboot flash recovery twrp-3.3.1-0-violet.img
fastboot reboot

Then immediately reboot to recovery mode to activate TWRP. In TWRP:

Wipe -> Format Data
Advanced Wipe -> Cache and System partitions -> Swipe to Wipe
Advanced -> ADB Sideload -> Swipe

Then from command line:

adb sideload e-0.7-p-2020030744075-dev-violet.zip

What I have tried so far:

  • Pushed the ROM to device, and install directly (without sideloading), same error
  • Removed compatibility.zip file from zip archive, as suggested here, however got another error (This package requires miui firmware 9.5.14 or newer)

I’d be grateful if more experienced people could suggest possible ways to overcome the issue. Thanks in advance.

About your last error, this is an extract from the install script :
assert(xiaomi.verify_baseband("4.3.c2-00018-SM6150_GEN_PACK-2","4.3.c2-00021-SM6150_GEN_PACK-1","4.3.c2-00022-SM6150_GEN_PACK-1") == "1" || abort("ERROR: This package requires firmware from MIUI 9.5.14 or newer. Please upgrade firmware and retry!"););

The “baseband” is somewhat related to country (flavor) and firmware level.
For this device, there are China and India/Global (India has been sold as Global …).
It can be checked in Miui, Settings/About.
I couldn’t find any cross-reference between baseband and Miui version :frowning:
Some people trying to flash a custom ROM, as you are, simply delete the line from the install script.
Interesting link to keep if something goes wrong : https://romfirmware.com/stock-rom/xiaomi/xiaomi-redmi-note-7-pro-violet-qualcomm-firmware-for-flashtool-fastboot-tgz/

I’ve removed compatibility.zip from zip, and the baseband assertion line from META-INF/com/google/android/updater-script, and viola, it worked. Thanks very much, @smu44. :pray:

I was happily using /e/ for a while, then I got system notification saying a new update is available via OTA. I downloaded, restarted, and then I stuck in bootlooping. I can go to fastboot, however not to recovery mode. I tried both flashing and booting TWRP via fastboot, it says it was successful, however I still cannot go to recovery. I am not sure if

fastboot erase userdata

would help as it did on initial installation, however I want to see if it can be done without. Any suggestions on how to solve the problem, or at least to open recovery mode?

Hello,

first thanks for the tip with the “compatibility.zip” and remove the line. So I was able to install /e/ Android on the Redmi Note 7 pro.
But twrp showed after the adb sideload that no system was installed, was it the same for you?
I restarted the phone, /e/ Android was installed. Why does twrp not recognize this?
I have installed the first 0.9 version.
Could you now install a new version via twrp?

Greeting :slight_smile:

Sorry for the delay :frowning:
Try to re-install TWRP, but reboot using hardware keys instead command.

“No system installed” is common for Xiaomi (and others ?), you can ignore it.
To install a new version if you have to modifed .zip at first install, do exactly the same :

  • download to PC, edit .zip
  • copy .zip to phone, anywhere visible in Files app
  • boot recovery TWRP
  • install (TWRP button), choose .zip (/sdcard or /data/sdcard), wipe Cache/Dalvik
  • note : be sure to have TWRP ignore .zip signature

Thanks for your answer.

So do I have to do it this way with every new version now?
Download the new version to my PC, unzip it, delete the “compatibility.zip” and the one line from the “updater-script”, then transfer it to my mobile by sideload?
Is it enough if I only delete the Dalvik Cache? That’s how I always do it with my Pocophone.

As long as /e/ builds will include these checks, unfortunately yes :frowning:
I don’t know if this comes from Android, LineageOS, or /e/ , so you might want to ask directly the /e/ devs : https://doc.e.foundation/how-tos/report-an-issue

It is recommended to wipe both Dalvik & Cache partitions.
Install TWRP screen may include a button for that purpose, if it doesn’t :

Ah, but when I delete the cache, the data is not deleted, I got that mixed up :slight_smile:

I didn’t want to reinstall everything again and again after an update.

Ok, I understand.

Thanks for the help

You’re welcome :slight_smile:

Your datas are in Data, Internal Storage, Micro SD Card.

I had the same problem for months for my chiron, it was a firmware level problem.
Using 7Zip on Windows you can avoid un-re-packing .zip, so the entire operation goes quite fast :wink:

About wiping when installing : as my memory is not as good as it was, I installed a new build on my santoni to show you this :


(of course, you have to unselect both “zip verification” & “reboot” in the previous screen)

So you should have a Wipe button to use before reboot :slight_smile:

(please ignore red messages)

2 posts were split to a new topic: Installation issue- Xiaomi Chiron

Hello,

is it possible that the offered firmware for the Redmi Note 7 pro is for the version without LTE? So NOT the Global Redmit Note 7 pro version?
Yesterday I got another grade 7 pro (Global) and tested it with the Xiaomi firmware, so I got 4G or LTE. Nevertheless I had to change the firmware, like the last time, so I could install it.
Would be interesting to know.
Thank you :slight_smile:

First of all thanks for this post which allowed me to install /e/ :wink:
Indeed, I had to remove compatibilty.zip and the line in updater-script.

I had a third error:

/cahe/recovery/xxxxxxxxx -> no such files or directory 

Sorry, I don’t remember the exact message.
I had to create manually the folder using adb shell:

mkdir /cache/recovery/xxxxxxx

Maybe it’s from a bad twrp installation ??
I’m pointing that out here, perhaps it will be of use to someone else.

More than useful fore me :slight_smile:
I have a similar issue on Xiaomi MI 8
Thanks a lot for your help Jul, I was stuck and you bring me back a smile on my face.

This process works.

Just tested on a Redmi Note 7 Pro violet which was on Android 10 latest stock build with july security patch.

  • Downloaded the TWRP image from here ver I used was 3.3.1-2 (this was as some of our users have been complaining about issues with the latest TWRP versions)
  • Flashed the TWRP image first and then went on to the below steps …
  • Note after fastboot reboot you have to manually press the volume up and power key to get into TWRP menu
  • Downloaded the latest official Pie build for violet

  • On the PC opened the zip file and deleted the following file

    • compatibility.zip
  • Removed this assert line completely from META-INF/com/google/android/updater-script
  • On my Ubuntu 20.04 I am asked to update the zip at this point…which I did
  • Flashing the rom at this point gave me an error
/cache/recovery/xxx -> no such file or directory

as a solution to this ran the adb command on the PC

and using mkdir created a recovery folder inside /cache

violet:/cache # mkdir recovery
  • Came out of adb shell and ran the install from TWRP menu again
  • Now the installation ran smoothly and completed without any issues
  • Rebooting to system and a few minutes later …it is /e/ pie on the phone previously running stock andorid 10 :slight_smile:

  • Yet to test out all the features and functions work as expected

Thanks @smu44 , @Jul for the tips

BTW the objective behind this exercise was to test if we can safely downgrade an Android 10 stock phone to /e/ Pie…that seems to be successful :crossed_fingers:

1 Like

Very nice job ! :clap:

About TZ (assert line in updater-script), some intel here : https://gitlab.e.foundation/e/backlog/-/issues/476#note_27505