Xiaomi POCO X3 NFC (xiaomi-surya)
This device is supported as part of a generic port. Refer to Generic SM7150 (qcom-sm7150) for installation instructions and more information. |
![]() Xiaomi POCO X3 NFC | |
Manufacturer | Xiaomi |
---|---|
Name | POCO X3 NFC |
Codename | xiaomi-surya |
Model |
|
Released | 2020 |
Type | handset |
Hardware | |
Chipset | Qualcomm Snapdragon 732G (SM7150-AC) |
CPU |
Octa-core (2x 2.3 GHz Kryo 470 Gold 6x 1.8 GHz Kryo 470 Silver) |
GPU | Adreno 618 |
Display | 1080 x 2400 (120Hz 6.67" IPS LCD) |
Storage | 64/128 GB |
Memory | 6 GB |
Architecture | aarch64 |
Software | |
Original software The software and version the device was shipped with. |
Android (MIUI) 10 (MIUI 12) |
Extended version The most recent supported version from the manufacturer. |
Android (MIUI) 12 (MIUI 14) |
FOSS bootloader | partial |
postmarketOS | |
Category | community |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
yes |
pmOS kernel The kernel version that runs on the device's port. |
Mainline 6.13.7 |
Generic port | Generic SM7150 (qcom-sm7150) |
Device package |
![]() |
Kernel package |
![]() |
Flashing 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, ... |
Works
|
SD card Also includes other external storage cards |
Works
|
Battery Charging and battery level reporting works |
Partial
|
Screen 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 |
Broken
|
Camera Flash |
Works
|
IR TX |
Broken
|
Connectivity | |
WiFi |
Works
|
Bluetooth |
Works
|
GPS |
Broken
|
NFC Near Field Communication |
Works
|
Modem | |
Calls |
Works
|
SMS |
Works
|
Mobile data |
Works
|
Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Works
|
USB OTG USB On-The-Go or USB-C Role switching |
Works
|
Sensors | |
Accelerometer Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile |
Works
|
Magnetometer Sensor to measure magnetism |
Works
|
Ambient Light |
Works
|
Proximity |
Works
|
Haptics |
Works
|
Secondary Bootloader It is possible to chainload U-Boot from stock bootloader. |
Works
|
---|---|
Mainline Latest versions of U-Boot are not broken and it is possible to use them. |
Works
|
Internal Storage It is possible to boot from internal storage (e.g. eMMC or UFS). |
Works
|
SD card It is possible to boot from SD card. |
Works
|
USB Host It is possible to boot from a USB storage or connect a keyboard. |
Partial
|
USB Peripheral It is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode. |
Works
|
Display |
Works
|
Buttons It is possible to navigate in boot menu or grub with volume and power buttons. |
Works
|
This device is based on the Snapdragon 732G. See the SoC page for common tips, guides and troubleshooting steps |
Maintainer(s)
Users owning this device
- Adrian (Notes: Mainline shenanigans, huaxing)
- Cxt (Notes: Main phone)
- Danfigasystems (Notes: 6/128 model)
- Divanchuk (Notes: Main; running Android 11 (DotOS 5.2.1)
- DomHeadroom (Notes: 6/64GB. Lineageos 22, Daily driver)
- Filip2cz
- JIaxyga (Notes: 6/128 Currently unavailable)
- MuseCat (Notes: Main)
- PotatoProton (Notes: LineageOS, daily driving, pmOS is slow)
- Rainbyte (Notes: Daily driver ; OS: Android 12 (ArrowOS))
- Soupborsh (Notes: Lindroid with LineageOS)
- Ungeskriptet (Notes: Main device for pmOS)
- Wizzdom (Notes: Daily driver, running LineageOS 18.1)
- Zerkalo (Notes: not tested yet)
How to enter flash mode
- Bootloader: Power on the device with both and buttons.
- Recovery: Power on the device with both and buttons.
- Fastbootd: Reboot into bootloader mode first and then run
fastboot reboot fastboot
from a computer.
Know your display panel
To determine whether your display is Huaxing or Tianma, enable USB debugging in Android and run the following command on your computer:
$ adb wait-for-device && adb reboot && adb logcat | grep "panel name is"
Mainline
The work in progress mainline kernel is being developed here.
Mainline status
Feature table for SM7150
Device feature table:
Component | Model | Status | Notes |
---|---|---|---|
Display | Huaxing FHD DSC panel with NT36672C controller | Y | Works from here |
Touchscreen | NovaTek NT36672C | Y | Connected via SPI, needs firmware |
Charging | qcom,qpnp-smb5 (downstream) | N | |
Texas Instruments BQ25968 | N | ||
Fuel gauge | qcom,pm6150-qg | P | |
Accelerometer and gyroscope | Bosh bmi220 | Y | Managed by SSC |
Ambient light and proximity sensor | Sensortek stk3a5x | Y | |
Magnetometer | AKM ak09918c | Y | |
Haptics/Vibrator | Awinic aw8624 | Y | |
Speakers | Texas Instruments tas2562 (Bottom Speaker) | Y | |
Texas Instruments tas2564 (Top Speaker) | N | ||
Camera regulator | OmniVision wl2866d | N | Called longcheer,wl2866d downstream
|
Camera | Sony IMX682 | N | Main camera |
Samsung S5K3T2 | N | Front camera | |
Hynix Hi-1337 | N | Ultrawide camera | |
Hynix Hi-259 | N | Macro camers | |
OmniVision ov02b1b | N | Depth camera | |
NFC | NQX NCI NXP55303 (PN553 type) | Y |
U-Boot
U-Boot has been successfully ported to SM7150 in this branch. This already includes dts for Xiaomi POCO X3 NFC.
The display and buttons work great. UFS and USB (in peripheral mode) also work, but we rely on the first stage bootloader setting the regulators. Therefore it is marked as Partial.
Casey is doing an excellent job developing U-Boot for QCOM SoCs. This means that soon the features table will be completely “green” for us too.
Unless the signing keys leak or we crack them, ABL will always remain the first stage bootloader. Therefore we can only use U-Boot only as a second stage bootloader. However, we will do everything possible so that U-Boot relies as little as possible on the first stage bootloader and is ready to configure everything necessary on its own.
Serial debugging (UART)
Xiaomi POCO X3 NFC uses 1.8 voltage for UART. So make sure that the logic one of your TTL adapter starts at a voltage below 1.8v.
The RX pin should be pulled-up to 1.8v to obtain the log. In Linux and U-Boot we pulled-up this pin software, but if you want to receive the log the rest of the time too, then you need to pull-up this pin hardware. It is enough to solder the TX pin of the adapter to the RX pin on the device, but make sure that your TTL adapter has a voltage of 1.8v (If this is not the case, then use a voltage divider schematic or buy an adapter with a voltage of 1.8v).
See also: Serial debugging
Gallery
-
Xiaomi POCO X3 NFC with Plasma Mobile
-
U-Boot on Xiaomi POCO X3 NFC