Redmi note 9 pro saftynet test result

Do you have redmi not 9 pro with /e/ os which passes saftyNet check although bootloader is unlocked?
Did anyone try to lock bootloader with /e/ os ?

Regain your privacy! Adopt /e/ the unGoogled mobile OS and online servicesphone

Yes, they do try this from time to time with an incompatible device like yours, please search the forum – it always ends in disaster.

The /e/ ROM is not compatible with relocking the bootloader in any devices where it is not mentioned in the install page.

Also see [LIST] Devices where bootloader can be relocked.

For a safetynet fix perhaps start from this page Xiaomi, faut-il rebloquer le bootloader.


This will be confirmed with version 1.15 final.

But for Gauguin (Xiaomi 10T Lite) the beta version passed the SafetyNet and RootBeer tests without needing the tip from my post mentioned by @aibd so banking app “ma banque” from credit-agricole run well.

In any folow up @LucasS please you give full device/build details as [HOWTO] Give complete /e/OS version info easily for support, answers, comparison etc.


e_miatoll-user 12 SQ3A.220705.004 eng.root.20230512.041213 dev-keys

Version is not important for what I have asked. Does any one have any /e/ version on redmi note 9 pro which is passing cts profile match ( without Magisk and root).As said Mi A1 did on /e/ os ,(any) S version .
Regarding lock , xiaomi can be relocked with proper signing in principle. Question is why saftyNet did not detect that bootloader is unlocked on Mia1 but detects on this phone.

Similar to you links I also posted

I dont have problem with root detection because I modifed build.props, but bootloader unlock detection.

I found difference, for both device bootloader sets verifiedBootState to Orange which means bootloader is unlocked + boot image not signed.
adb shell cat /proc/cmdline

androidboot.verifiedbootstate=orange androidboot.veritymode=eio

Redmi Note 9 Pro
adb shell cat /proc/cmdline


This cmd line is passed to Kernel which sets ro.boot.verifedBootState which is read only prop.
So on both devices should be orange.
Interesting when read this prop state on
Mi A1 it is green
[ro.boot.verifiedbootstate]: [green]
[ro.boot.veritymode]: [enforcing]
[ro.bootloader]: [MSM8953_TISSOT2.0_20200810200428]
[ro.bootmode]: [unknown]

while on redmi note 9 pro it is orange as given by bootloader.

So somehow, without Magisk this is modifed in MiA1, when given to kernel into green.
Amazing, but how ?
Where/how I can modify verfiedBootState ?
/proc/cmdline is built on each boot by bootloader so I can not modify it by adb root access.

Seems the only way to change verifiedBootState is to modify kernel and remove/change this parameter in kernel where cmd line is being parsed, than rebuild kernel and boot.img. I guess this must have been done for MiA1 ROM,but not Redmi note 9 Pro.
(BTW, Android 12 is using buildconfig instead cmdline but not devices upgraded to Android 12, at least not redmi Note 9 Pro.)
Seems big divergence in between devices. Like this should be “standardized” over different /e/ devices roms.
Similar to ro.debuggable parameter which set to 0 really boosts compatibility as adb root access is not detected any more by any app. For no cost as adb root still works.
Any idea how to modify verifiedBootState during runtime without full root (Magisk)?
Can you check in your devices what adb shell cat /proc/cmdline returns and what do you get by adb shell getprop ro.boot.verifiedbootstate