Xiaomi Redmi 12 (xiaomi-fire)
Manufacturer | Xiaomi |
---|---|
Name | Redmi 12 |
Codename | xiaomi-fire |
Released | 2023 |
Type | handset |
Hardware | |
Chipset | MediaTek Helio G88 (MT6769H) |
CPU | 2x 2.0 GHz ARM Cortex-A75 & 6x 1.8 GHz ARM Cortex-A55 |
GPU | Mali-G52 MC2 |
Display | 1080 x 2460 IPS LCD, 90 Hz |
Storage | 128/256 GB |
Memory | 4/8 GB |
Architecture | aarch64 |
Software | |
Original software | Android |
Original version | 13 with Linux 4.19.191 |
Extended version | 14 with the same kernel version |
FOSS bootloader | no |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | no |
postmarketOS kernel | 4.19.191 |
Flashing |
Works |
---|---|
USB Networking |
Broken |
Internal storage |
Works |
SD card |
Works |
Battery |
Partial |
Screen |
Works |
Touchscreen |
Partial |
Multimedia | |
3D Acceleration |
Broken |
Audio |
Partial |
Camera | |
Camera Flash | |
IR TX | |
Connectivity | |
WiFi |
Broken |
Bluetooth | |
GPS | |
NFC | |
Modem | |
Calls | |
SMS | |
Mobile data | |
Miscellaneous | |
FDE | |
USB OTG |
Works |
Sensors | |
Accelerometer | |
Magnetometer | |
Ambient Light | |
Proximity | |
Haptics | |
This device is based on the Helio G88. See the SoC page for common tips, guides and troubleshooting steps |
Installation
Unlocking the bootloader
Unlock the bootloader using the official method with Mi Unlock Tool https://en.miui.com/unlock
You'll need to link your device with your Mi Account and wait 7 days to unlock the device.
Alternatively, you can also unlock the phone's bootloader using MTKClient.
Flashing postmarketOS
Type pmbootstrap init
and choose the following in the wizard:
Release channel: edge Vendor: xiaomi Device codename: fire
xfce4
, MATE
, LXQt
and i3wm
are tested and work out of the box. Other UIs are not guaranteed to work.
After choosing an user interface and the rest, type the below command to begin downloading and preparing postmarketOS for installation
$ pmbootstrap install
Then, turn off the device, hold Power
and Volume Down
buttons, connect it to the computer with a USB cable.
After doing this, type the following commands to flash postmarketOS to your device.
$ pmbootstrap flasher flash_kernel
$ pmbootstrap flasher flash_rootfs
After the commands finished, finally type
$ fastboot reboot
to exit fastboot.
Installing Android after postmarketOS
You have to flash stock super.img
and boot.img
with the following commands.
$ fastboot flash super super.img
$ fastboot flash boot boot.img
Working UIs
Hardware status
Touchscreen
Our device comes with 3 different touchscreens - Focaltech FT8720, Focaltech FT8725, and Novatek NT36xxx.
Currently, only the Novatek touchscreen works.
In case with FT8720, fts_ts seems to search for a firmware file called "focaltech_ts_fw_.bin" somewhere, even though it is in /lib/firmware/postmarketos and the cmdline has "firmware_class.path=/lib/firmware/postmarketos" parameter. It seems like the "/vendor/firmware" path is hardcoded in the driver.
UPDATE: Touchscreen works in MATE after waiting for screen to completely turn off.
Battery
UPower detects if the battery is charging or not, but the battery percentage is always at 0%. In case with LXQt, if you power on the device while it is on battery, it will boot the LXQt, but after a few seconds the device will just shut down. But if you power on the device while it is plugged in, and unplug it only after booting postmarketOS, it works on battery as usual.
Audio
Needs "aw87xxx_acf.bin" firmware file. Switching the volume level with volume buttons seems to work.
Miscellaneous
Partition layout
This device uses A/B partitions and dynamic partitions, the recovery is inside boot. All files in /dev/block/by-name are just links to actual partitions in /dev/block.
ls -lrt /dev/block/by-name mmcblk0 -> /dev/block/mmcblk0 vbmeta_system_a -> /dev/block/mmcblk0p7 super -> /dev/block/mmcblk0p57 md_udc -> /dev/block/mmcblk0p12 boot_a -> /dev/block/mmcblk0p27 vbmeta_vendor_a -> /dev/block/mmcblk0p8 vbmeta_a -> /dev/block/mmcblk0p6 otp -> /dev/block/mmcblk0p59 protect2 -> /dev/block/mmcblk0p19 opcust -> /dev/block/mmcblk0p50 sspm_b -> /dev/block/mmcblk0p40 vbmeta_b -> /dev/block/mmcblk0p9 spmfw_a -> /dev/block/mmcblk0p22 flashinfo -> /dev/block/mmcblk0p60 tee_a -> /dev/block/mmcblk0p30 scp_b -> /dev/block/mmcblk0p39 dtbo_b -> /dev/block/mmcblk0p45 vbmeta_system_b -> /dev/block/mmcblk0p10 seccfg -> /dev/block/mmcblk0p20 scp_a -> /dev/block/mmcblk0p23 dtbo_a -> /dev/block/mmcblk0p29 frp -> /dev/block/mmcblk0p5 rescue -> /dev/block/mmcblk0p49 persistbak -> /dev/block/mmcblk0p17 proinfo -> /dev/block/mmcblk0p33 mmcblk0boot0 -> /dev/block/mmcblk0boot0 mem -> /dev/block/mmcblk0p55 logo_b -> /dev/block/mmcblk0p47 ffu -> /dev/block/mmcblk0p53 protect1 -> /dev/block/mmcblk0p18 para -> /dev/block/mmcblk0p3 nvdata -> /dev/block/mmcblk0p15 boot_para -> /dev/block/mmcblk0p35 md1img_b -> /dev/block/mmcblk0p37 gz_b -> /dev/block/mmcblk0p41 efuse -> /dev/block/mmcblk0p34 boot_b -> /dev/block/mmcblk0p43 vbmeta_vendor_b -> /dev/block/mmcblk0p11 metadata -> /dev/block/mmcblk0p13 mmcblk0boot1 -> /dev/block/mmcblk0boot1 misc -> /dev/block/mmcblk0p1 vendor_boot_b -> /dev/block/mmcblk0p44 md1img_a -> /dev/block/mmcblk0p21 logo_a -> /dev/block/mmcblk0p31 gz_a -> /dev/block/mmcblk0p25 vendor_boot_a -> /dev/block/mmcblk0p28 userdata -> /dev/block/mmcblk0p58 spmfw_b -> /dev/block/mmcblk0p38 oops -> /dev/block/mmcblk0p56 expdb -> /dev/block/mmcblk0p4 opconfig -> /dev/block/mmcblk0p51 lk_a -> /dev/block/mmcblk0p26 tee_b -> /dev/block/mmcblk0p46 persist -> /dev/block/mmcblk0p16 nvcfg -> /dev/block/mmcblk0p14 gsort -> /dev/block/mmcblk0p52 devinfo -> /dev/block/mmcblk0p54 cust -> /dev/block/mmcblk0p48 sspm_a -> /dev/block/mmcblk0p24 sec1 -> /dev/block/mmcblk0p32 nvram -> /dev/block/mmcblk0p36 lk_b -> /dev/block/mmcblk0p42 countrycode -> /dev/block/mmcblk0p2 preloader_a -> /dev/block/mmcblk0boot0 preloader_b -> /dev/block/mmcblk0boot1
Community info
Contributors
- Buildingat90degreesC (Currently running LineageOS 21 GSI on it)
- Neokitty
Users owning this device
- Buildingat90degreesC (Notes: Running LineageOS 21 GSI)
- Eralp Celebi (Notes: Main Device.)
See also
- pmaports!4827 Initial merge request