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 |
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 |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | no |
Flashing |
Works |
---|---|
USB Networking |
Partial |
Internal storage |
No data |
SD card |
No data |
Battery |
Broken |
Screen |
Works |
Touchscreen |
Partial |
Multimedia | |
3D Acceleration |
Broken |
Audio |
Broken |
Camera |
Broken |
Camera Flash |
Broken |
Connectivity | |
WiFi |
Broken |
Bluetooth |
Broken |
GPS |
Broken |
NFC |
Broken |
Modem | |
Calls |
Broken |
SMS |
Broken |
Mobile data |
Broken |
Miscellaneous | |
FDE |
Broken |
USB OTG |
Works |
Sensors | |
Accelerometer |
Broken |
Ambient Light |
Broken |
Proximity |
Broken |
Haptics |
Broken |
Xiaomi Redmi 12 is a MediaTek Helio G88 (MT6769H) device released by Xiaomi in 2023.
Contributors
- Buildingat90degreesC (Currently running LineageOS 21 GSI on it)
Users owning this device
- Buildingat90degreesC (Notes: Running LineageOS 21 GSI)
- Eralp Celebi (Notes: Main Device.)
Installation
Preparation
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, but this method isn't recommended overall, so do this on your own risk.
Entering the flash mode
When the phone is powered off, hold the Power
and Volume Down
button to enter into fastboot (bootloader) mode, or run adb reboot bootloader
from Android.
To boot into recovery, hold the Power
and Volume Up
buttons, or
adb reboot recovery
from Android.
To enter into fastbootD, enter into fastboot mode and type
fastboot reboot fastboot
or adb reboot fastboot
from Android.
You need the fastboot (bootloader) mode to flash postmarketOS.
Flashing postmarketOS
Boot the phone in fastboot mode, connect it to a computer with a USB cable.
Use lsusb
to verify that the device is detected by the computer.
Type pmbootstrap init
and choose the following in the wizard:
Release channel: edge Vendor: xiaomi Device codename: fire User interface: xfce4
xfce4
, MATE
and LXQt
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
Now type the following commands to flash pmOS to your device.
$ pmbootstrap flasher flash_kernel
$ pmbootstrap flasher flash_rootfs
type "fastboot reboot" to exit fastboot.
That's it, if you get a boot splash and then the xfce desktop you successfully installed postmarketOS to your Redmi 12.
Installing Android after postmarketOS
Download the stock fastboot ROM, unpack it, then flash the stock super.img and boot.img using the following commands:
fastboot flash super super.img
to flash the super
and fastboot flash boot boot.img
to flash the boot image.
Touchscreen
Touchscreen doesn't work currently, and I've tried evtest and it didn't output anything.
fts_ts seems to search for a firmware file called "focaltech_ts_fw_.bin" somewhere, but I haven't figured it out yet. I created an issue for it on pmaports.
https://gitlab.com/postmarketOS/pmaports/-/issues/2608
UPDATE: Touchscreen works in MATE after waiting for screen to completely turn off.
Graphical Interfaces
Interface | Info | Working | |
---|---|---|---|
none | Doesn't work. But gets stuck at the loading splash. | N | |
GNOME 3 | Unknown - Not tested | ||
i3wm | Unknown - Not tested | ||
MATE | works fine, do not open power statistics or anything power management related or the device will shutdown. | ||
[1]Phosh | Unknown - Not tested. | ||
Plasma-Desktop | Unknown - Not tested | ||
[2]Plasma Mobile | Unknown - Not tested. | ||
Shelli | Unknown / Not tested. | ||
Sxmo | Unknown - Not Tested. | ||
[3]Sway | Wayland doesn't work on this device. | N | |
[4]Weston | Unknown / Not tested | ||
[5]Xfce4 | Works like expected, except it shows the battery as 1% and then shuts down afterwards if not plugged in. | Y | |
[6]LXQt | Works. |
Miscellaneous
Partition layout
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
See also
pmaports!4827 Initial merge request