UBports "quick" and "simple" install on Xiaomi Mi A2
-
Sorry for starting a new thread, but I struggled a lot finding the right steps, so this might help someone (or at least the future me).
Preparations
I was using MacOS something (should not matter).
I already had some old-ish version ofplatform-tools
(adb
,fastboot
& co), the version should not matter, as long as it is from this decade. (See the note later aboutmke2fs
on MacOS.)Stuff downloaded:
vendor.img
(https://github.com/ubports-xiaomi-sdm660/artifacts/releases/download/v0.1/vendor.img; a newer one gave me checksum error)- TWRP (https://eu.dl.twrp.me/jasmine_sprout/twrp-3.5.2_9-0-jasmine_sprout.img.html; I tried different versions, but this one worked fine; also tried the stock recovery, but it was complaining about the new build being older)
- Android 9 stock image (https://github.com/ubports-xiaomi-sdm660/artifacts/releases/download/v0.1/jasmine_sprout_stock_android9.zip; as I was starting from 10)
- installer (https://devices.ubuntu-touch.io/installer/dmg)
Steps
Unlocked bootloader by becoming "a developer", enabled USB debug and OEM unlock, then booted in Fastboot, then
./fastboot flashing unlock ./fastboot flashing unlock_critical
If if gets locked again (it dod for me somehow), just check status with
./fastboot oem device-info
and unlock what is locked...Booted in TWRP from Fastboot
./fastboot boot ~/Downloads/twrp-3.5.2_9-0-jasmine_sprout.img
TWRP asks about mounting stuff read-only, I just went with "no".
Not sure about wiping any cache/data, as my phone was empty, I just wiped everything if I got stuck, might not be necessary.
The phone has 2 "slots" (A & B). I had to install Android 9 on both. (You can check the active slot with./fastboot getvar current-slot
, and select a slot with./fastboot --set-active=<a|b>
, but as TWRP installs the new image on the passive slot and makes it active after, I just repeated the steps again to install Android 9 on the other slot.)
Then in the TWRP menu I went with "Advanced">"ADB Sideload", then./adb sideload ./jasmine_sprout_stock_android9.zip
Wait.
Reboot into Fastboot, then TWRP.
Repeat.
Thanks to Apple's "security" at this point I had to do a./fastboot -w
to runmke2fs
and get it blocked by MacOS, then allow it from "System Preferences">"Security and Privacy", otherwise the UBports installer might fail.Finally on stock Android 9, I started the UBports installer, followed the steps exactly, and got UBports installed.
Misc notes
- Neither "Mi Unlock Tool", nor "rooting" was necessary.
- For some reason after a point the device was detected as
jasmine
, I did not care, just selected "Xiaomi Mi A2" from the list. - I tried to use
vendor.img
from the latest stable artifacts (https://github.com/ubports-xiaomi-sdm660/artifacts/releases/tag/20211023), it gave me a checksum error, but as I was retrying a few times after using thevendor.img
the installer says, idk if it would work or not. - If the phone bootloops/etc. don't panic, just go back to Fastboot and repeat.
- At one point my PC did not detect the phone in Fastboot, but doing a random combination of "phone restart", "USB unplug/plug" and factory reset using the stock recovery fixed it, idk...
- Getting into the menu of the stock recovery is tricky, I do not have any good advice. My technique is to press power+vol up/down furiously until the menu appears
-
Experience (after a half day)
- Much better than the Plasma Phone version I tried some time ago.
- Speed is ok.
- Fingerprint reader is working, surprisingly accurate and fast.
- Camera is not working for me, I was able to open the app once, but after trying to take a photo it froze and I cannot even open it anymore (not even after reboot). (Edit: it seems to be an AppArmor permission issue:
****** ****** kernel: [ ******] audit: type=1400 audit(******): apparmor="DENIED" operation="open" profile="com.ubuntu.camera_camera_3.2.3" name="/proc/******/mountinfo" pid=****** comm="camera-app" requested_mask="r" denied_mask="r" fsuid=****** ouid=******
) - Setting up a Libertine container takes forever (idk how long, it is still installing). (Edit: eventually it was done, but all the few apps I tried to launch in it are not working.)
- Anbox: no luck yet (
***** anbox: Failed to mount "/home/phablet/anbox-data/rootfs": No such device
)
-
@scream314 Libertine last time I tried took about 10 -15 mins. Make sure your screen is set to not sleep during the install. System Settings, Battery, Sleep when idle-Never or something like that.
-
@scream314 Hi there an congartulations to the install!
It is interesting that the fingerprint reader works for you - is that offered as an option in the settings to lock/unlock the phone?
On my Mi A2 this option is grayed out, and I'm on dev channel... -
@messayisto
What I did to get it working:- System Settings>Security & Privacy>Fingerprint ID
- recorded my fingerprint(s, actually 2, both working)
- System Settings>Security & Privacy>Lock security>choose "Fingerprint"
I'm using the "stable" channel,
OTA-19
, UBports20210910-30030
, Device image20210910-14383
, Device buildlineage_halium_arm64-userdebug 9 PQ3A.190801.002 278 test-keys
. -
@scream314 Thank you, I gonna give this a try the next days...
-
@scream314 said in UBports "quick" and "simple" install on Xiaomi Mi A2:
- Camera is not working for me, I was able to open the app once, but after trying to take a photo it froze and I cannot even open it anymore (not even after reboot). (Edit: it seems to be an AppArmor permission issue:
****** ****** kernel: [ ******] audit: type=1400 audit(******): apparmor="DENIED" operation="open" profile="com.ubuntu.camera_camera_3.2.3" name="/proc/******/mountinfo" pid=****** comm="camera-app" requested_mask="r" denied_mask="r" fsuid=****** ouid=******
)
I listened to my instincts, after uninstalling, then reinstalling the app I can take pictures with both cameras.
Video is still not working, if I start the recording the timer starts to count, but the screen is frozen. After hitting stop, the timer stops, but nothing happens, the whole app freezes, and the video si not saved. - Camera is not working for me, I was able to open the app once, but after trying to take a photo it froze and I cannot even open it anymore (not even after reboot). (Edit: it seems to be an AppArmor permission issue:
-
@scream314 the BLUETOOTH work fine for you?
I have problem with it -
@danilo748
Did not test it excessively, but works fine with my Xiaomi Mi Basic 2 BT earbuds and the range is surprisingly good, it was playing music without any glitch 2 rooms away (~10 meters and 2 walls) from the phone.
I have an Android head unit in my car, the phone was able to connect to it, but did not try anything else yet. -
@scream314 Thanks
-
Hi @scream314 ,
the links to download vendor.img and Android 9 stock image do not work, "404 page not found".
Are they no longer active?Thanks
-
-
@danilo748
Try opening it from here: https://github.com/ubports-xiaomi-sdm660/artifacts/releases/tag/v0.1
(Note: download was extremely slow for me.) -
-
-
This guide worked well for me.
Unfortunately I could not install Ubuntu at the end ( installer was getting <waiting for device> error due to fastboot crashing after downgrade to Andreoid 9). On some other articles people were suggesting it could be USB Port issue, that may be true actually. As I had no other idea I installed "installer" on other laptop (switched from Ubuntu to Mac) and there it worked.. -
-
-
After booting TWRP :
./fastboot boot ~/Downloads/twrp-3.5.2_9-0-jasmine_sprout.imgI have a black screen. I tried also with the 3.6.0 version and I still have the same issue
Tested all the 9 available images and I always have a black screen
-
I reinstalled Android 10 from a Xiaomi image and now I can boot TWRP.
-
@scream314 Thank you very much ! No more google's tracking device on my smartphone !
I will donate money to Ubports !
-
UBports is the foundation, Ubuntu touch is the operating system.
Regards... -
@scream314 In reply to the starting post, I confirm the initial steps, i.e. becoming "a developer", enabled USB debug and OEM unlock from the Android interface and the two fastboot commands from the PC cmd prompt, being straight forward. Contrary to other resources no further complications or tools were required.
For the downgrade and occasional reversal of the same, I downloaded TWRP 3.6.0 img from the same location and each latest Android 9 and 10 zip and tgz file from https://xiaomifirmwareupdater.com/archive/miui/jasmine/.
However, no matter whether I changed the active slot with fastboot or TWRP, rebooted to the active slot prior to installation, verified again the active slot with fastboot or TWRP and contrary to the TWRP output, indicating the installation to the inactive slot, I had the impression from multiple reboots to either slot, that the installation always ended up in slot B.
Therefore I unzipped and untared the tgz file and simply installed with flash_all.bat. Since booting slot B then went into a bootloop before defaulting back to and booting slot A, I changed flash_all.bat to also install system.img instead of system_other.img to slot B and the downgrade was finally successful.
For the UT installation on W7 pro 64bit I downloaded the ADB driver from https://flashxiaomi.com/xiaomi-mi-a2-usb-driver/ respectively https://dl-ssl.google.com/android/repository/latest_usb_driver_windows.zip and appended in android_winusb.inf file to Google.NTamd64 section the following lines (the end justifies the means?):
;Xiaomi Mi A2
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0000
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0000&MI_01 -
@scream314 In reply to the video recording freezing, I initially observed the exactly same issue. After flipping to and recording with the front camera, I can now also record with the back camera. The nice thing, unlike with my previous Nexus 5, where I had to use the video player app, the play back can be launched from the gallery with the standard media player.
-
First of all thanks for this beautiful post. I followed all the instructions mentioned here and managed to install Ubuntu Touch OS (stable) almost effortlessly on my Xiaomi Mi A2. Here are a few things I need to put here for any to whom this would be helpful.
Error while flashing TWRP recovery:
./fastboot boot twrp-3.5.2_9-0-jasmine_sprout.img
FAILED (command write failed (No error)) finished. total time: 0.029s
After this, you will be asked(in the top left corner or somewhere in small letters) on your phone to press any button to shut down, which will simply reboot your phone.
I faced this error while I was trying to flash the TWRP recovery on my Laptop. I have a laptop that has an AMD Ryzen processor which for some reason is known to have similar issues. Although I must add that it is not uncommon to have the same error on Intel-based laptops.
SOLUTION
- Try different USB ports and preferably USB 2.0
- If you are on windows try updating your drivers. I use Linux but updating the driver has known to solve the issue.
- Use a different PC or laptop. This is the one which is you should try without wasting any more time on finding the fix for that. You will be wasting your time and will get frustrated over the issue over which have no control. I faced the same issue and lots of ways to make it work eventually I tried on a different Linux PC and it was a breeze thereafter.
I tried on a windows PC as well but it was not recognizing my device in fast boot. I tried installing a few drivers but eventually, it was way too much hassle for simple stuff
BONUS TIP:
This is a tip that might work or might not like it worked partially for me. If a similar error like the above occurs while looking for fast boot devices or even during TWRP recovery, try the following.- Put your phone in fastboot but do not connect via USB right now.
- On your PC/Laptop write the command which you would have done while the phone was connected. The command will say, Waiting for any device
- Now plug your phone via USB and "hopefully" it will work. If this doesn't work, go for the tested method above.
Finally thanks again for this post and I didn't need to follow any other sources to flash the Ubuntu Touch.