[Xiaomi Mi 8 Pro Guides, News, & Discussion] yo-less:
As so many others have pointed out, it is pretty hard to get any custom GSI ROMs running on the Mi 8 Pro / Explorer Edition (Equuleus). I was also absolutely oblivious to the fact that the Mi 8 Pro would require different ROMs than the Mi 8 when I bought my handset as I always check if there are custom ROMs available before I buy a new phone and there are some for the Mi 8. As far as I can tell there are no custom ROMs specifically adapted to run on our phones, but luckily enough, it is GSI-compatible or "treble-enabled". So as sad as it is that there are no real custom ROMs you can install, there is a major upside to our situation - theoretically any GSI ROM might run on it, which offers far more options than are available for the phones I have been using before I got my Mi 8 Pro. The big question is: How on earth do you get them to run on the Mi 8 Pro? If this is as puzzling for you as it was for me at first, you have come to the right place ;) - After days and days of trial and error and growing despair, I have found a way to get both Oreo and Pie ROMs to boot and function up to a level that I'm comfortable working with and as this site has helped me so much over the years, I thought I could at least share my findings, hoping that others would be able to benefit a bit as well.

Having said that, I'll start with a list of features that won't work, so if you need them, feel free to move on (or maybe even help me find a way to get them working?). I would love for other forum members to help us expand and refine this guide (especially when it comes to the list of working ROMs) as I plan to keep this thread updated for some time.

A big shout-out goes to nealed , whose post on GSI ROMs got me started and who was OK with me laying out my information in a separate post. :good:

Not working (as of now):

In-Screen fingerprint sensor

IR face unlock ("normal" face unlock works fine)

VoLTE

Many stock Xiaomi / Mi apps won't work - you will have to find modded apks if you want to use Xiaomi's stock apps (such as the Compass app, which I rather liked but haven't found a working version for yet)

Fixed in newer Pie ROMs:

Note that Pie GSI ROMs based on earlier Phh-Treble Vanilla (AOSP 9.0) versions come with a weird ambient display bug (at least on our device). If you decide to have your ambient display set to "always on" it will flicker on and off all the time (which is why I have disabled it, it's driving me crazy when the phone is just lying on my desk and constantly stealing my attention - what does work though are the options "New notifications" / "Show when charging", so that's what I ended up with.)

Another problem with Pie ROMs I ran into was that the Android phone service would simply crash whenever I tried to manually select my network provider. I could see all available cell phone companies in my area but as soon as I would try to switch to a different provider than the one automatically chosen, the Android phone service would immediately crash.]

If none of this is an issue for you, you can expect a smooth and stable Android on our extremely powerful handset. You will be working with a ROM that can be highly customized and will also probably refrain from sending all your data to Xiaomi (which is one of the major reasons I wanted to have a rooted custom ROM and decided to accept that that also means I can't have all the features the phone normally offers - such as the very flashy fingerprint sensor).

Step-by-step instructions on how to install a custom GSI ROM

As a matter of fact, you should be aware that

all data

that is currently stored on your phone is lost when following this guide, so make sure you have a backup and don't ask me what you can do if you didn't create one! (short answer: nothing)

This guide also assumes you have already waited long enough and successfully unlocked your bootloader using a working Mi Account. If not, have a look here.

Step 1: Flashing an official ROM

Flashing tool - MiFlash

The easiest way to flash an official ROM that doesn't come with loads of system hogs or other "features" you don't want to have, is using MiFlash 2017.4.25.

Official ROM

Next, you will need to download a flashable global MIUI ROM. A list of all available ROMS can be found here.

Depending on which Android version you are going to install later, you want to download

Android 8.1 / Oreo: V10.0.1.0.OECMIFH (fastboot link / .tgz-file)

Android 9.0 / Pie: Try this more recent version first: V11.0.5.0.PECMIXM (fastboot link / .tgz-file). Note, however, that most of the ROMs in the GSI list have been installed on top of V10.2.2.0.PECMIXM (fastboot link / .tgz-file), so give that a try if V11.0.5.0.PECMIXM isn't working out for you.

Android 10.0 / Q: So far, we haven't been able to get any Android Q GSI ROM running on the MI 8 Pro, but there is an official MIUI Android 10 ROM available if you want a stock Android Q device:V11.0.3.0.QECMIXM (fastboot link / .tgz-file). Any ideas on how to get Android 10 GSI ROMs running on the Mi 8 Pro are much appreciated.

Once you have downloaded your ROM, extract it into a directory - I found that MiFlash was having some troubles working with directories whose directory names contained spaces, so I'd recommend simply extracting everything that is contained in the .zip-file into a directory such as "C:\flash", this way I had no trouble flashing any ROMs.

When that is done, you can start MiFlash and select the directory that contains your ROM files.

The next step is important if you want to make sure your bootloader stays unlocked (which you do): you need to select "clean all" at the bottom right of MiFlash so that flash_all.bat is selected. The default option is "clean all and lock" which is not what we want. ;)

Should you have forgotten to change the option you simply have to unlock the phone again afterwards but as that requires a connection to the Xiaomi servers and a Mi Account that lets you do so, it's anything but ideal.

To make your phone talk to MiFlash, put your powered-off phone into bootloader mode by simultaneously pressing the power button and the volume down button and connecting it to your PC via a USB-C cable (preferably the one that came with the phone, but others should work too).

You're good to go - click on "flash" in the MiTool and watch it do its magic. It will take some time - just be patient - after 5 - 10 minutes the phone should automatically boot into MIUI and you're one step closer to installing the ROM you actually want to have on your phone.

Step 2: Installing TWRP recovery

Finding a working TWRP recovery for our phone (ideally in English) is like trying to find a miniature-size needle broken into three parts in a giant haystack. Unfortunately, our phone isn't officially supported by TWRP (yet?) so you won't find anything on their website.

What can be found, is a mixed bag, but after many many attempts of locating a proper source for TWRP image files, I finally came across this forum post.

To cut a long story short, for Android Oreo (Android 8) and Android Pie (Android 9) you want to download

TWRP 3.3.1-0607 (Firedance Edition)

as it is one of the very few versions for our device that are actually able to decrypt your data once you have set a PIN in your Android system. There seems to be a bug with some current TWRP versions that keep you from accessing your data once you have set a screen-lock PIN in your system (which is a requirement to use such features as face unlock).

So if you use a version that can't decrypt your phone (even when entering the correct PIN to enter TWRP) and you encounter a bootloop, you're out of luck: You can't access your system either from recovery or from within the system (If you have come across this post because you're in exactly this situation, you should be able to solve the problem by flashing TWRP 3.3.1-0607 on your phone to regain access).

For Android Q (Android 10) / MIUI 11, this version seems to be working:

TWRP-3.3.2B-0301 (Chinese Version)

Once you have downloaded the .img-file, the best thing is to put it into a directory that already has adb.exe and fastboot.exe in it. If you don't have such a directory, you can very easily create it by downloading and installing Minimal ADB and Fastboot.

Choose any install location you like, you will have to place your TWRP image file in your install location folder afterwards.

To prepare your phone, power it off and then put your powered-off phone into bootloader mode by simultaneously pressing the power button and the volume down button and connecting it to your PC via a USB-C cable.

Next, either start Minimal ADB and Fastboot or manually open a command prompt (cmd.exe) in the directory you have just created and enter the following two commands:

fastboot flash recovery equuleus-331-607.img

fastboot boot equuleus-331-607.img

Note that sometimes after flashing TWRP, the phone will boot into recovery twice - don't worry if you only see the TWRP screen and your phone starts rebooting straight afterwards. This is only an issue on first boot.

Congrats, you have now installed a working version of TWRP for the Mi 8 Pro. You can now also manually boot into TWRP by simultaneously pressing the power button and the volume up button on your powered-off phone.

Step 3: Installing a custom GSI ROM of your choice

Once you have a working TWRP recovery, you can install any GSI ROM that might run on our device (scroll down to my second post on this page for a list of working ROMs or click here to jump to it instead) - Prerequisite: Your ROM needs to be an ARM64 / A-Only ROM as this is the only kind of ROM our device can run.

Here's how to go about it:

Boot into TWRP, connect your phone to your PC via USB and transfer the ROM img.-file you want to install

Wipe > Factory Reset

Wipe > Advanced Wipe > System (This will prompt TWRP to ask you later if you really want to reboot - "No OS Installed! Are you sure you wish to reboot?" - which you can simply ignore, TWRP doesn't recognize that a new OS is installed after a system wipe)

Install > Install Image, select your chosen image, choose "System Image" as target partition and swipe right.

If you just want to test the image and not use any Google functionality, you can reboot now (Ignore "No OS installed") - However, this will mean that on most ROMs that don't already come with Google Apps included you won't have any Google functionality (i.e. no face unlock, no Play Store, ...) and you won't get it either if you try to install it after having already booted into your new system - so you probably want to move on to Step 4 before you reboot (unless your ROM already comes with Google Apps).

Step 4: Flashing Google Apps / Enabling Google functionality (Optional)

I'm assuming that since you're reading a guide on installing custom ROMs on an Android smartphone that it will be absolutely no news to you that instantly after installing a custom ROM and BEFORE booting into it for the first time you HAVE to install the Google functionality you want to have as there is no way of adding it afterwards. You simply have to do it right after flashing your ROM.

To flash Google Apps, you have to download them first on https://opengapps.org/.

Select the ARM64 option for the Android version you have just installed (either 9.0 (Pie) or 8.1 (Oreo)) and choose the package that best suits your need. I always go for the "Nano" package as it includes everything you can't install by yourself from the Play Store later on. This means you can also uninstall any Google App that isn't included in this package if you don't need it any longer. The bigger packages come with many more apps but if you install them now before you boot into your OS for the first time, they get turned into system apps and can't be easily uninstalled later.

Once you have downloaded the Google Apps package of your choice, you can transfer it to your phone via Windows Explorer if it's still connected via USB and in TWRP (which it should be in anyway :D). Now just go to Install, select the .zip-file you have just transferred to your phone and swipe right.

Problems you might run into when installing your Google Apps:

This message or similar messages might appear in TWRP when you try to install your Google Apps package, even though you are using the correct version for your ROM (Pie ROM and Pie Google Apps, for example):

If this happens, go to the Reboot Menu in TWRP and select Recovery to reboot into TWRP. Once you've done that, Google Apps should install without problems and recognize that you do indeed have the right Android version installed.

Many times, the System partition will also be too small to also accommodate the Google Apps package, so you will be greeted with the following message:

If this happens to you, here's the fix:

Go back to the main menu in TWRP

Wipe > Advanced Wipe

Select System

Tap on Repair or Change File System

Tap on Resize File System

Swipe to Resize

Go back to the main menu, installing Google Apps should work without problems now

Voilà. You have just successfully gapp'ed your phone :).

Step 5: Rooting your ROM (Optional)

Thanks to Magisk, rooting is incredibly easy these days. All you have to do is head over to the Magisk releases page on Github and download the latest .zip-file.

Once it's downloaded, install the .zip-file via TWRP and reboot into your OS.

For Magisk to work, you also need to have the latest Magisk Manager apk installed, which you also find on the above Github page, however I found that all GSI ROMs already have this included anyway (It appears to be included in Phh-Treble AOSP) - so all you need to do is really install Magisk in TWRP.

The preinstalled Magisk Manager will probably be outdated and ask you to update, which it can do itself. So most times, you won't even have to download the Magisk Manager apk yourself.

Step 6: Installing a working Xposed Framework (Optional)

As easy as it has become to root a phone these days, it is becoming increasingly harder to get Xposed to work as active development has been rather stalled lately. Luckily enough, someone was kind enough to unofficially get Xposed to work on Android Pie, however, this time it's a Magisk module.

Getting it to work on the Mi 8 Pro is a different matter. I have found that only certain versions do actually work and offer the Xposed functionality I have gotten so used to. If you install the specific versions I'm mentioning here, Xposed should work without problems (But as always, not all Xposed modules are still under active development and therefore won't work with Android Pie or this new unofficial version of Xposed).

To get Xposed up and running, you need to have Magisk installed already (see Step 5).

I'm currently running AOSP 9.0 (v123) and these more recent Riru package versions run fine (If you have trouble with these, check the links below) - I could only install them directly via Magisk but not in TWRP:

Riru - Core (19.7)

Riru - Ed Xposed 0.4.6.2.4529 (YAHFA)

You will also need this app installed to manage your Xposed framework and to activate Xposed modules:

The latest Ed Xposed Manager which you can download here.

For older custom Android Pie ROMs, these Riru packages were the only versions that I could successfully get working:

Riru - Core (17.1)

Riru - Ed Xposed 0.4.1.2_beta (YAHFA)

The older Riru packages can be installed directly via TWRP or in Magisk, but since you have to reboot afterwards if you install it from inside your OS, you might as well just install the two .zip-Files from TWRP directly after installing Magisk in TWRP.

The latest Ed Xposed Manager is simply an apk, so you will have to install it after booting into your system. Easy as Pie. Have fun EdXposing your system to new functionality :).

Step 7: Special fixes

As I've layed out before, custom ROMs are prone to come with certain functionality missing or malfunctioning. This is especially the case with GSI ROMs that weren't developed with our specific device in mind. Nevertheless most functions will work without bigger problems right away. Some problems might still arise, but luckily there are solutions.

Sending and receiving SMS messages

After I had installed my GSI ROMs, it took me a while to realize I wasn't getting any text messages (they're not that frequent any more anyway). This is because I had to change my preferred network setting (for whatever reason). If you set it like this, everything should work as expected:

Bluetooth Media Streaming

I also didn't realize right away that there was a Bluetooth problem. Calls were working fine, people could hear me talking, I could hear them talking. Things got a bit weirder, when I tried to listen to music streaming from my phone to my Bluetooth speaker - it simply wouldn't work. Nada - no matter what I tried. Luckily I came across a .zip-file that worked wonders. If you install the FixGsiBTSound.zip file in TWRP that I was able to find in this XDA thread, Bluetooth media is streaming without any problems and calls continue to work.

Unfortunately, I still have to change Bluetooth Audio Codec to AAC in the Developer options every time I connect my speaker if I want to listen to music and get driving instructions via Google Maps at the same time. It automatically reverts back to SBC but after I've made the change I can have several apps stream audio at the same time, which might be a problem with my speaker that only supports SBC but I didn't have this problem with my old phone.

By the way, none of the other fixes in the thread mentioned above (specifically the VoLTE fix) were working for our phone when I tried them.