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: Mainlining in progress |
![]() 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 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
|
Battery Whether charging and battery level reporting work. |
Untested
|
Screen Whether the 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 Whether the full-sized USB-A port works. |
Untested
|
USB OTG USB On-The-Go or USB-C Role switching. |
Untested
|
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
|
Hall Effect Measures magnetic fields; usually used as a 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 (or usign ./flash_all.sh script)
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
git clone https://github.com/MeexReay/pmos-xiaomi-angelican.git
cd pmos-xiaomi-angelican
export PMAPORTS=$(pmbootstrap config | sed -n 's/^aports = //p')
ln -s $PWD/linux-xiaomi-angelican $PMAPORTS/device/testing
ln -s $PWD/device-xiaomi-angelican $PMAPORTS/device/testing
ln -s $PWD/firmware-xiaomi-angelican $PMAPORTS/device/testing
Don't enable systemd on `pmbootstrap init`!
Build images
pmbootstrap install
Flashing
Enter fastboot mode, then run these commands:
pmbootstrap flasher flash_vbmeta
pmbootstrap flasher flash_kernel
pmbootstrap flasher flash_rootfs
fastboot reboot
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.
Mainlining
The mainlining workflow for this device is the following:
- Patch kernel
python mtk.py e expdb --preload preloader_k62v1_64_bsp.bin --loader n.bin
pmbootstrap export
python mtk.py w boot /tmp/postmarketOS-export/boot.img --preload preloader_k62v1_64_bsp.bin --loader n.bin
- Boot device twice
- Hold volume buttons
python mtk.py r expdb expdb.img --preload preloader_k62v1_64_bsp.bin --loader n.bin
- Read logs from expdb.img as a Text File (or with this tool)