Jump to content

Xiaomi POCO X3 Pro (xiaomi-vayu)

From postmarketOS Wiki
Xiaomi POCO X3 Pro
Xiaomi POCO X3 Pro running Phosh.
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 device-xiaomi-vayu
Kernel package linux-postmarketos-qcom-sm8150
Firmware package firmware-xiaomi-vayu
Features
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

How to enter flash mode

Recovery mode

  • Shutdown the device completely.
  • Hold the Volume Up and Power button simultaneously. When Xiaomi logo appears, release Power and keep pressed Volume Up until recovery screen shows up.

Fastboot

  • Shutdown the device completely.
  • Hold the Volume Down and Power button simultaneously, until the "FASTBOOT" text appears.

Know your display panel

There are two variants of the Xiaomi POCO X3 Pro with different panels:

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

See also