Jump to content

Xiaomi Redmi A2 (xiaomi-water)

From Nura Wiki
Xiaomi POCO C51
Redmi A2
Redmi A2+
Redmi A2 in Linux 7.1 with fastfetch
Redmi A2 in Linux 7.1 with fastfetch
Manufacturer Xiaomi
Name POCO C51
Redmi A2
Redmi A2+
Codename xiaomi-water
Released 2023
Type handset
Hardware
Chipset MediaTek Helio G36 (MT6765X)
Display 720x1600 (IPS LCD)
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 12
Extended version
The most recent supported version from the manufacturer.
Android 13
FOSS bootloader yes
Nura
Category testing
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.
7.1
Features
Flashing
Whether it is possible to flash the device with pmbootstrap flasher.
Untested
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...
Broken
SD card
Also includes other external storage cards.
Broken
Battery
Whether charging and battery level reporting work.
Broken
Screen
Whether the display works; ideally with sleep mode and brightness control.
Partial
Touchscreen
Broken
Multimedia
3D Acceleration
Broken
Audio
Audio playback, microphone, headset and buttons.
Broken
Camera
Broken
Camera Flash
Broken
Connectivity
WiFi
Broken
Bluetooth
Broken
GPS
Broken
Modem
Calls
Broken
SMS
Broken
Mobile data
Broken
Miscellaneous
FDE
Full disk encryption and unlocking with unl0kr.
Untested
USB OTG
USB On-The-Go or USB-C Role switching.
Broken
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Broken
Haptics
Broken

Contributors

Users owning this device

  • Jdkjkjj (Notes: working on mainline linux)
  • NBon (Notes: Untested yet)

how to boot

first you have to unlock the bootloader. there is one weird indian tutorial how to do this on redmi a2, but you have to use mtkclient. (see helpful links where it says youtube) i promise you wont get a virus (im serious)

then you will need to flash empty vbmeta to vbmeta partition.

in fastboot mode (not fastbootd) run:

fastboot flash vbmeta_a empty_vbmeta.img
fastboot flash vbmeta_b empty_vbmeta.img

build linux, add Image, dtb and ramdisk (you have to make ramdisk yourself) to /blob then build uniloader

uniLoader.gz should be your Image

now to retrieve your boot.img, you have to use mtkclient.

in linux:

$ python3 mtk.py r boot_a boot_a.img

this should be your boot.img.

now extract it using libmagiskboot.so (from Magisk.apk renamed to magisk.zip)

you should get kernel, dtb and ramdisk

keep ramdisk and dtb, drag n drop your uniLoader.gz image in your dir where boot.img is then run:

$ mkbootimg --header_version 2 --os_version 12.0.0 --os_patch_level 2024-12 --kernel uniLoader.gz --ramdisk ramdisk.cpio --dtb dtb --pagesize 0x00000800 --base 0x00000000 --kernel_offset 0x40080000 --ramdisk_offset 0x51b00000 --second_offset 0x00000000 --tags_offset 0x47880000 --dtb_offset 0x0000000047880000 --board '' --cmdline 'bootopt=64S3,32N2,64N2 buildvariant=user' -o boot-uniloader-whatever-name-it-is.img

now go back to fastboot mode then run:

$ fastboot flash boot_a boot-uniloader-whatever-name-it-is.img
$ fastboot flash boot_b boot-uniloader-whatever-name-it-is.img

then reboot, you should see uniLoader booting and "Booting kernel..." then get flooding text (linux) and ramdisk executed.

See also

https://www.youtube.com/watch?v=Z1jKPjvLFe4

https://github.com/jdkjkjj/uniLoader

https://github.com/jdkjkjj/linux-mt6765