Xiaomi Redmi 9C NFC (xiaomi-angelican)
This device has been tested with postmarketOS, but its device package has not yet been added to the postmarketOS repositories. This means that it cannot be selected in pmbootstrap. Status: In developement, but booting. |
![]() Redmi 9C NFC starting postmarketOS | |
Manufacturer | Xiaomi |
---|---|
Name | Redmi 9C NFC |
Codename | xiaomi-angelican |
Released | 2020 |
Type | handset |
Hardware | |
Chipset | MediaTek Helio G35 (MT6765G) |
CPU |
4 x 2.3 GHz Cortex-A53 4 x 1.8 GHz Cortex-A53 |
GPU | PowerVR GE8320 |
Display | IPS LCD, 720x1600 6.53", 20:9 ratio (~269 ppi density) |
Storage | 32/64/128 GB |
Memory | 2/3/4 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) 11 (MIUI 12) |
postmarketOS | |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
no |
pmOS kernel The kernel version that runs on the device's port. |
4.9.190 |
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
|
Battery Charging and battery level reporting works |
Untested
|
Screen Display works. Ideally with sleep mode and brightness control. |
Partial
|
Touchscreen |
Works
|
Multimedia | |
3D Acceleration |
Broken
|
Audio Audio playback, microphone, headset and buttons. |
Untested
|
Camera |
Untested
|
Camera Flash |
Untested
|
IR TX |
Untested
|
IR RX |
Untested
|
Connectivity | |
WiFi |
Untested
|
Bluetooth |
Untested
|
GPS |
Untested
|
NFC Near Field Communication |
Untested
|
Modem | |
Calls |
Untested
|
SMS |
Untested
|
Mobile data |
Untested
|
Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Untested
|
USB-A Full-sized USB-A port works (Usually applicable to SBCs and laptops). |
Untested
|
USB OTG USB On-The-Go or USB-C Role switching |
Untested
|
Sensors | |
Accelerometer Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile |
Untested
|
Magnetometer Sensor to measure magnetism |
Untested
|
Ambient Light |
Untested
|
Proximity |
Untested
|
Hall Effect Also known as flip cover sensor |
Untested
|
Haptics |
Untested
|
Barometer Sensor to measure air pressure |
Untested
|
Power Sensor Sensor to monitor current, voltage and power. Not fuel gauge! |
Untested
|
This device is based on the MediaTek Helio G35. See the SoC page for common tips, guides and troubleshooting steps |
Contributors
Users owning this device
How to enter flash mode
Bootloader Unlocking
MIUI way
Like other Xiaomi devices, the user will have to acquire the bootloader unlock key: https://en.miui.com/unlock
The device will not unlock if the device isn't 7 days old (from the time when your device connects to internet and powered on, and linked with Mi Account)
MTK way
If you don't want to wait a week, you can use the MTK unlock method
- Install mtkclient USB drivers - mtkclient#Install
- Clone mtkclient and redmi 9c binaries:
git clone https://github.com/bkerler/mtkclient cd mtkclient pip -r install requirements.txt git clone https://github.com/coloredmarble/redmi_blossom cp redmi_blossom/* .
- Run mtkclient:
python mtk.py da seccfg unlock --preload preloader_k62v1_64_bsp.bin --loader n.bin
- Turn the device off
- Hold and buttons at same time
- Connect the USB cable
Read more: Mtkclient#Bootloader_Unlocking
Recovery mode
- Turn the device off (or restart also works)
- Hold and button
- Once you feel vibration and phone turns on, release button
- Keep holding until you get to recovery.
Fastboot (Flashing, Download) mode
- Same as recovery, but this time hold the and keys.
FastbootD mode
- Enter normal fastboot mode
- Unplug the USB cable
- Run command: fastboot reboot fastboot
- Connect the USB on message: <waiting for any device>
- Wait for the FastbootD logo
Preparing
First of all, you need to flash the latest MIUI firmware (v12.0.16.0) with MiFlashTool
Disable vbmeta
Patch vbmeta yourself: https://github.com/libxzr/vbmeta-disable-verification
Or download prebuilt vbmeta image:
wget https://github.com/MeexReay/pmos-xiaomi-angelican/raw/refs/heads/main/vbmeta_disabled.img
Then flash it:
fastboot flash vbmeta vbmeta_disabled.img
fastboot flash vbmeta_system vbmeta_disabled.img
fastboot flash vbmeta_vendor vbmeta_disabled.img
Installation
Add the device to pmaports
This port is still in development, so it can only be added via this repository: https://github.com/MeexReay/pmos-xiaomi-angelican
Build images
pmbootstrap install
Flashing
Enter fastboot mode, then run these commands:
pmbootstrap flasher flash_kernel
fastboot reboot fastboot # to enter fastbootd mode
pmbootstrap flasher flash_rootfs
Known issues
- There are no GPU drivers (PowerVR Rogue GE8320), so I dont know how to run xorg/wayland without them. Disabling GLX extension makes the phone rebooting after loading any UI. Maybe its because of weak CPU (MT6765G) that cant even work with llvmpipe, or its just some downstream specific kernel panic. The only UI that loaded successfully was i3wm since it doesnt require any GLX by default and can actually work in modesetting or fbdev mode.
- Buffyboard acts really strange. It doesnt actually show you the terminal. Somehow I made it to show me clickable keyboard, but it couldnt show the terminal. Maybe it is a bug of the downstream kernel, or the buffyboard, but I can only say that the framebuffer itself actually works, you can check it with:
cat /dev/random > /dev/fd0
- pmbootstrap cant build bootable images on the stable branch (v24.11), only on edge.
Troubleshooting
- If your fastboot command got stuck, try just unplug usb and plug it on <waiting for any device> or enter fastbootd (fastboot reboot fastboot) where the issue doesn't appear.