Xiaomi POCO X3 Pro (xiaomi-vayu)
|
Xiaomi POCO X3 Pro running Phosh. | |
| Manufacturer | Xiaomi |
|---|---|
| Name | POCO X3 Pro |
| Codename | xiaomi-vayu |
| Model | M2102J20SG |
| Released | 2021 |
| Type | handset |
| Hardware | |
| Chipset | Qualcomm Snapdragon 860 (SM8150-AC) |
| Display | 1080x2400 (IPS LCD, 120 Hz) |
| Storage | 128/256 GB (UFS 3.1) |
| Memory | 6/8 GB (LPDDR4X) |
| Architecture | aarch64 |
| Software | |
Original software The software and version the device was shipped with. |
Android 11 (MIUI 12) |
Extended version The most recent supported version from the manufacturer. |
Android 13 (MIUI 14) |
| Category | testing |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
yes |
| Device package |
|
| Kernel package |
|
| Firmware package |
|
Flashing Whether it is possible to flash the device with pmbootstrap flasher. |
Works
|
|---|---|
USB Networking After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system). |
Works
|
Internal storage eMMC, SD cards, UFS... |
Untested
|
SD card Also includes other external storage cards. |
Untested
|
Battery Whether charging and battery level reporting work. |
Works
|
Screen Whether the display works; ideally with sleep mode and brightness control. |
Works
|
Touchscreen |
Works
|
| Multimedia | |
3D Acceleration |
Works
|
Audio Audio playback, microphone, headset and buttons. |
Partial
|
Camera |
Untested
|
Camera Flash |
Works
|
IR TX |
Untested
|
| Connectivity | |
WiFi |
Works
|
Bluetooth |
Works
|
GPS |
Untested
|
NFC Near Field Communication |
Untested
|
| Modem | |
Calls |
Untested
|
SMS |
Untested
|
Mobile data |
Untested
|
| Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Works
|
USB OTG USB On-The-Go or USB-C Role switching. |
Works
|
Fingerprint Fingerprint reader. |
Broken
|
| Sensors | |
Accelerometer Handles automatic screen rotation in many interfaces. |
Untested
|
Magnetometer Sensor to measure the Earth's magnetism |
Untested
|
Ambient Light Measures the light level; used for automatic screen dimming in many interfaces. |
Untested
|
Proximity |
Untested
|
Haptics |
Untested
|
Power Sensor Sensor to monitor current, voltage and power. Not fuel gauge! |
Untested
|
Maintainers
Users owning this device
- AAT596 (Notes: Device in daily use (LineageOS))
- Adomerle (Notes: x3 with CPU DIED)
- Anasrullayev (Notes: Mainlining)
- ArminRetro (Notes: Device in daily use, miui)
- ChickATilo
- Coldarchie
- Daniel6745 (Notes: Old daily driver, unlocked)
- David (Notes: Testing with Droidian)
- Dferrg (Notes: Android, daily driver)
- Halal-beef (Notes: Huaxing 8/256, daily-driver)
- Hiprivsid (Notes: 8/256, tiamna)
- Ilya114
- Marineboy1 (Notes: Need reboll SoC)
- MelvinSGjr (Notes: My main phone. Running Gentoo with Halium and some drivers on top.)
- Tfuxu (Notes: Daily driver)
- Tiarei111 (Notes: Main device 8/256 runs droidian as daily driver, secondary device 6/128 used for testing as mobo is dying)
- Vincele (Notes: LOS 22.2, unlocked)
How to enter flash mode
Recovery mode
- Shutdown the device completely.
- Hold the and button simultaneously. When Xiaomi logo appears, release and keep pressed until recovery screen shows up.
Fastboot
- Shutdown the device completely.
- Hold the and button simultaneously, until the "FASTBOOT" text appears.
Know your display panel
There are two variants of the Xiaomi POCO X3 Pro with different panels:
| Panel | Codename |
|---|---|
| Huaxing/CSOT | dsi_j20s_42_02_0b_video_display
|
| Tianma | dsi_j20s_36_02_0a_video_display
|
To know your panel variant, get into a terminal with root access (you can use TWRP recovery's terminal as it has root access or rooted android ROM)
1. Run su to make sure you have root access
2. Run cat /proc/cmdline. Output would be similar to:
earlycon console=ttyMSM0,115200 quiet splash plymouth.ignore-serial-consoles pmos_boot_uuid=3b6ba5e8-181c-4ec7-9a7f-41e1c3783436 pmos_root_uuid=a777f556-b70e-4027-aad1-9fcbe3240dfd pmos_rootfsopts=defaults androidboot.verifiedbootstate=orange androidboot.keymaster=1 androidboot.bootdevice=1d84000.ufshc androidboot.fstab_suffix=default androidboot.boot_devices=soc/1d84000.ufshc androidboot.serialno=xxxxxxxx androidboot.ramdump=disable androidboot.secureboot=1 androidboot.hwversion=6.19.0 androidboot.cpuid=0x76cae6a9 androidboot.hwc=GLOBAL androidboot.hwlevel=MP androidboot.product.hardware.sku=vayu androidboot.baseband=msm msm_drm.dsi_display0=dsi_j20s_36_02_0a_video_display: androidboot.ufsid=0x1CE androidboot.dp=0x0 androidboot.dtb_idx=-1347440721 androidboot.profile_vendor_id=0B
4. Note the value of msm_drm.dsi_display0. In the example above, it's dsi_j20s_36_02_0a_video_display, i.e Tianma panel variant. For Huaxing/CSOT panel variant, it would be dsi_j20s_42_02_0b_video_display
During pmbootstrap init, select the kernel variant by choosing either tianma or huaxing based on the output from above.
Installation
There is a work-in-progress fork of sm8150 kernel, along with installation instructions at https://gitlab.postmarketos.org/soc/qualcomm-sm8150/linux/-/merge_requests/17. Currently, the device is suitable for use as a server. However, if it will remain connected to the charger continuously, it is recommended to reduce the battery’s maximum charge voltage to extend battery life and prevent issues related to battery. Please refer this guide for more info: Battery Voltage Reduction.
Extra information
Partition layout
Partition layout:
lrwxrwxrwx 1 root root 16 1970-10-09 06:13 abl -> /dev/block/sde36 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 ablbak -> /dev/block/sde37 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 aop -> /dev/block/sde16 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 aopbak -> /dev/block/sde17 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 apdp -> /dev/block/sde8 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk01 -> /dev/block/sda4 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk02 -> /dev/block/sda5 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk03 -> /dev/block/sda6 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk04 -> /dev/block/sda7 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 bk06 -> /dev/block/sda13 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 bk08 -> /dev/block/sda20 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 bk09 -> /dev/block/sda22 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk31 -> /dev/block/sdd1 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk32 -> /dev/block/sdd3 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk33 -> /dev/block/sdd5 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk41 -> /dev/block/sde5 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 bk43 -> /dev/block/sde24 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 bk44 -> /dev/block/sde30 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 bk45 -> /dev/block/sde40 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 bk47 -> /dev/block/sde50 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk51 -> /dev/block/sdf3 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 bk52 -> /dev/block/sdf4 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 bluetooth -> /dev/block/sde27 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 boot -> /dev/block/sde49 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 cache -> /dev/block/sda29 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 catecontentfv -> /dev/block/sde29 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 catefv -> /dev/block/sde19 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 cateloader -> /dev/block/sde32 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 cdt -> /dev/block/sdd2 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 cmnlib -> /dev/block/sde20 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 cmnlib64 -> /dev/block/sde22 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 cmnlib64bak -> /dev/block/sde23 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 cmnlibbak -> /dev/block/sde21 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 core_nhlos -> /dev/block/sde51 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 countrycode -> /dev/block/sda10 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 cust -> /dev/block/sda31 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 dbg -> /dev/block/sda3 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 ddr -> /dev/block/sdd4 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 devcfg -> /dev/block/sde14 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 devcfgbak -> /dev/block/sde15 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 devinfo -> /dev/block/sda17 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 dip -> /dev/block/sde28 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 dsp -> /dev/block/sde48 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 dtbo -> /dev/block/sde45 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 exaid -> /dev/block/sda30 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 ffu -> /dev/block/sda15 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 frp -> /dev/block/sda9 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 fsc -> /dev/block/sdf2 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 fsg -> /dev/block/sdf1 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 gsort -> /dev/block/sde44 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 hyp -> /dev/block/sde42 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 hypbak -> /dev/block/sde43 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 ifaa -> /dev/block/sde46 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 imagefv -> /dev/block/sda27 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 keymaster -> /dev/block/sde25 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 keymasterbak -> /dev/block/sde26 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 keystore -> /dev/block/sda8 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 limits -> /dev/block/sde4 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 logdump -> /dev/block/sda24 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 logfs -> /dev/block/sda14 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 logo -> /dev/block/sde47 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 metadata -> /dev/block/sda19 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 minidump -> /dev/block/sda25 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 misc -> /dev/block/sda11 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 modem -> /dev/block/sde52 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 modemst1 -> /dev/block/sdf5 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 modemst2 -> /dev/block/sdf6 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 msadp -> /dev/block/sde9 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 multiimgoem -> /dev/block/sde1 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 multiimgqti -> /dev/block/sde2 lrwxrwxrwx 1 root root 15 2022-07-19 20:09 odm -> /dev/block/dm-3 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 oem_misc1 -> /dev/block/sda18 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 oops -> /dev/block/sda16 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 persist -> /dev/block/sdf7 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 persistbak -> /dev/block/sdf8 lrwxrwxrwx 1 root root 15 2022-07-19 20:09 product -> /dev/block/dm-2 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 qupfw -> /dev/block/sde6 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 qupfwbak -> /dev/block/sde7 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 rawdump -> /dev/block/sda26 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 recovery -> /dev/block/sda28 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 secdata -> /dev/block/sde3 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 splash -> /dev/block/sda21 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 spunvm -> /dev/block/sde41 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 ssd -> /dev/block/sda2 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 storsec -> /dev/block/sde11 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 super -> /dev/block/sda23 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 switch -> /dev/block/sda1 lrwxrwxrwx 1 root root 15 2022-07-19 20:09 system -> /dev/block/dm-0 lrwxrwxrwx 1 root root 15 2022-07-19 20:09 system_ext -> /dev/block/dm-4 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 toolsfv -> /dev/block/sde35 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 tz -> /dev/block/sde38 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 tzbak -> /dev/block/sde39 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 uefisecapp -> /dev/block/sde33 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 uefisecappbak -> /dev/block/sde34 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 uefivarstore -> /dev/block/sde18 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 userdata -> /dev/block/sda32 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 vbmeta -> /dev/block/sde10 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 vbmeta_system -> /dev/block/sde12 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 vbmeta_vendor -> /dev/block/sde13 lrwxrwxrwx 1 root root 15 2022-07-19 20:09 vendor -> /dev/block/dm-1 lrwxrwxrwx 1 root root 16 1970-10-09 06:13 vm-data -> /dev/block/sda12 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 xbl -> /dev/block/sdb2 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 xbl_config -> /dev/block/sdb1 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 xbl_configbak -> /dev/block/sdc1 lrwxrwxrwx 1 root root 15 1970-10-09 06:13 xblbak -> /dev/block/sdc2