Xiaomi Redmi A2 (xiaomi-water)
| This device has been tested with Nura, but its device package has not yet been added to the Nura repositories. This means that it cannot be selected in pmbootstrap. Status: boots with uniLoader. SimpleFB works and boots to Linux 7.1 with initramfs. USB networking works, but in my side it didnt really work because i didnt setup telnet. |
|
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 |
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
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