[UNOFFICIAL BUILD] Xiaomi Mi Mix 3 (perseus)

Good news, I was able to acquire a second-hand device :slight_smile:
So I will be able to test by myself and improve the build image.

After days and weeks of testing builds in the little free time I have, I can finally come back with a new 0.17 Q version, with a working camera! :smile_cat:

Next week I’ll switch from my good old Mi Mix 2 to conduct complete tests as a daily driver, you’re welcome to join !

Here is the link : https://www.androidfilehost.com/?fid=14943124697586360930

To “clean” flash over another ROM or Android version (you will lose your datas !) :

  • boot to TWRP
  • wipe cache + Dalvik + System
  • format Data
  • adb copy zip file to /sdcard
  • install with TWRP

For a “dirty” flash (from /e/ Q) you can only install then wipe cache + Dalvik.

Please be aware that the GPS can take a loooong time to acquire a decent location, and may not use BeiDou/Galileo. I’ll work on that later.

About the camera fix : @answer35 was totally right, thanks ! :slight_smile:
I’ll explain later this week how I applied it to /e/ building system (it is quite simple).

So far, so good : everything is working fine :slight_smile:

I’ll post the build method as soon as I’ve some free time …

How to build with camera fix (warning : time-consuming method !) :

  • start a normal Docker build as instructed in my first post
  • once successfully terminated, delete everything from “logs” and “zips” folder (you may want to try this build, be aware that the camera won’t work)
  • apply all changes from https://review.arrowos.net/q/topic:"perseus-hax"+(status:open%20OR%20status:merged) in your source tree (see below for hints)
  • start the Docker build again
  • enjoy :smile_cat:

Hints :

  • qva is in src/Q/device/qcom/sepolicy/
  • dynamic & vendor are in src/Q/device/lineage/sepolicy/
  • repo or git commands will not override your changes, nor synchronize other files anymore; thus I recommend to start over with a clean src tree for each new build

They are more efficient (in matter of time) ways to build this ROM, but I found the Docker way much more easier for others to reproduce :wink:

1 Like

Unfortunately, I won’t be able to enhance GPS :frowning:
/e/ is relying on LineageOS Xiaomi kernel, which is somehow behind latest Xiaomi releases.
It would be too much work for me to fork LOS tree and merge latest Xiaomi kernel :woozy_face:

I could confirm (hiking in France) that U.S. GPS is working fine, along with Radiocells.org location module instead of Mozilla’s one (because of the offline database :wink: ).

Today I got the 4th button (at left of screen) on duty :smile_cat:

Quite simple :

  • reboot to TWRP
  • mount System partition r/w (may have to play with TWRP settings if mounted r/o)
  • get key mapping file with adb pull /system/usr/keylayout/gpio-keys.kl
  • with a text editor (I used Notepad++), change Android key code for : key 689 VOICE_ASSIST (I’ve put key 689 APP_SWITCH for testing)
  • put back key mapping file with adb push gpio-keys.kl /system/usr/keylayout/
  • ensure (adb shell) that file is “-rw-r--r-- 1 root root”
  • unmount System partition
  • reboot system
  • enjoy :partying_face:

Android key code for APP_SWITCH : KeyEvent  |  Android Developers
AFAIK, every KEYCODE_*** in the list can be mapped to (remove the KEYCODE_ header), of course some won’t do anything on a phone :wink:
You may try, for example :

  • Music Player (MUSIC)
  • Call (CALL)
  • Contacts (CONTACTS)
  • Screenshot (SYSRQ)
  • Mute/Unmute Media Volume (VOLUME_MUTE)
  • Play/Pause Media (MEDIA_PLAY_PAUSE)
  • Next Media (MEDIA_NEXT)
  • Recent Apps (APP_SWITCH)
  • Open/Close Quick Settings (QPANEL_ON_OFF)
  • Internet Browser (EXPLORER)
  • Calendar (CALENDAR)
  • Calculator (CALCULATOR)

Thanks to original author and Mi MIX 3 community Telegram group !

Hi !

New /e/ 0.18 Q ROM available :smile_cat:

Download : AndroidFileHost, mirror
MD5 : 0dd5b3ec4f1f4a39e2a7a064725c496a

I dirty-flashed it yesterday over 0.17 Q, so far so good !
Camera still working :wink:

NB : if you applied the 4th button fix, you’ll have to apply it again.

To “clean” flash over another ROM or Android version (you will lose your datas !) :

  • boot to TWRP
  • wipe cache + Dalvik + System
  • format Data
  • adb copy zip file to /sdcard
  • install with TWRP

For a “dirty” flash (from /e/ Q) you can only install then wipe cache + Dalvik.

@Manoj : could I please edit the first post ? Link is outdated … Thanks :pray:

Hi @smu44 i have made the first post a wiki …you should be able to make the edits now. That way it would remain updated.

It’s working, thank you very much :smiley_cat:

Hi !

New /e/ 0.18.2 Q ROM available :smile_cat:

Download : here or here.
MD5 : 26f81112766ba3713c6bbe5a720ca0ac

NB : if you applied the 4th button fix, you’ll have to apply it again.

From a /e/ Q ROM you can only “dirty flash” then wipe cache + Dalvik.

To “clean” flash over another ROM or Android version (you will lose your datas !) :

  • boot to TWRP
  • wipe cache + Dalvik + System
  • format Data
  • adb push zip file to /sdcard
  • install with TWRP

Feedback welcome ! :hugs:

Hi !

New /e/ 0.19.5 Q ROM available :smile_cat:
(commits : Commits ¡ v0.19.5-q ¡ e / os / releases ¡ GitLab).

Download : here .
MD5 : 9e545c906c289fff0b35fae7cb152570

NB : if you applied the 4th button fix, you’ll have to apply it again.

From a /e/ Q ROM you can only “dirty flash” then wipe cache + Dalvik.

To “clean” flash over another ROM or Android version (you will lose your datas !) :

  • boot to TWRP
  • wipe cache + Dalvik + System
  • format Data
  • adb push zip file to /sdcard
  • install with TWRP

Feedback welcome !

NB : this ROM has LineageOS Trebuchet integrated (is was not my intent, guess it comes from LOS source tree …).
To launch it, in an ADB root shell : am start -n com.android.launcher3/.lineage.LineageLauncher

Enjoy :smiley_cat:

Thanks for that, it exists (hidden) in my official (I guess perhaps all), I had being wondering how to enable it. :slight_smile:

Having started it via adb, is it possible to set it as the default Launcher app?

Nope, intent has been removed in /e/ OS : https://gitlab.e.foundation/e/os/android_packages_apps_trebuchet/-/commit/b44075bc60a0a1493e988dbe6d55b710bfe9d028

However, I could add a Trebuchet launch icon in Bliss, using AppManager.
Trebuchet (1)
(made with scrcpy & ScreenToGif)

Great, so the code is still there taking up space in what is now a huge ROM, but can’t be used as intended (i.e. as default Launcher and Home screen). If it is not wanted, then remove it: if it is wanted then don’t disable it in the UI :frowning:

Is it a side product of importing quickstep module from Launcher3 package seemed to appear when horizontal scrolling recent apps returned?

Hi !

New /e/ 0.20.6 Q ROM available :smile_cat:
(commits : Commits ¡ v0.20.6-q ¡ e / os / releases ¡ GitLab).

Download : here .
MD5 : 6292473037931ac2e61f09c00549d3d2

NB : if you applied the 4th button fix, you’ll have to apply it again.

From a /e/ Q ROM you can only “dirty flash” then wipe cache + Dalvik.

To “clean” flash over another ROM or Android version (you will lose your data !) :

  • please verify that you have the latest firmware installed
  • (install +) boot to TWRP (tested OK with 3.5.2_9.0)
  • wipe cache + Dalvik + System
  • format Data
  • adb push zip file to /sdcard
  • install with TWRP

Feedback welcome !

I have raised this gitlab issue

At the moment users cannot use Trebuchet as their home app even though it is present in /e/OS

3 Likes

Thank you for this build smu44. Very grateful you ported /e/ to the mi mix 3.
The last build is great. Only small glitch is a white screen for several seconds when booting.
Otherwise all basic functions seems to work.
Do you plan to make it official someday?
Kudos and thank you

1 Like