Development [ROM][13][UNOFFICIAL] LineageOS 20 for Xiaomi 12

Search This thread

NeoArian

Recognized Developer
Nov 25, 2017
1,325
3,089
Sony Xperia Z2
Sony Xperia Z3 Compact
2okPze5.png


Code:
#include <std_disclaimer.h>
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/

Introduction
LineageOS, an open-source Android distribution, is available for several devices,
with more being continuously added thanks to the biggest, yet ever growing, Android open-source community.
Join us and breathe new life in your device, be it old or new.
To find out more about LineageOS visit the official Website.

All the source code for LineageOS is available in the LineageOS Github organization. And if you would like to contribute to LineageOS, please visit out Gerrit Code Review.

Installation
Warning:
These instructions only work if you follow every section and step precisely.
Do not continue after something fails!

Basic requirements

  1. Read through the instructions at least once before actually following them, so as to avoid any problems due to any missed steps!
  2. Make sure your computer has adb and fastboot. Setup instructions can be found here.
  3. Enable USB debugging on your device.
  4. LineageOS is provided as-is with no warranty. While we attempt to verify everything works you are installing this at your own risk!
Warning: Before following these instructions please ensure that the device is currently using Android 13 firmware.
If the vendor provided multiple updates for that version, e.g. security updates, make sure you are on the latest!
If your current installation is newer or older than Android 13, please upgrade or downgrade to the required version before proceeding (guides can be found on the internet!).


Unlocking the bootloader

Note: The steps below only need to be run once per device. They require a machine running Windows 7 or newer.
Warning: Unlocking the bootloader will erase all data on your device! Before proceeding, ensure the data you would like to retain is backed up to your PC and/or your Google account, or equivalent. Please note that OEM backup solutions like Samsung and Motorola backup may not be accessible from LineageOS once installed.
Tip: It is highly recommended to have the latest official MIUI stable package installed on the device, before proceeding with unlock.
  1. Create a Mi account on Xiaomi’s website. Beware that one account is only allowed to unlock one unique device every 30 days.
  2. Add a phone number to your Mi account.
  3. Insert a SIM into your phone.
  4. Enable developer options in Settings > About Phone by repeatedly tapping MIUI Version.
  5. Link the device to your Mi account in Settings > Additional settings > Developer options > Mi Unlock status.
  6. Download the Mi Unlock app (Windows is required to run the app).
  7. Run the Mi Unlock app and follow the instructions provided by the app. It may tell you that you have to wait up to 30 days. If it does so, please wait the quoted amount of time before continuing to the next step!
  8. After device and Mi account are successfully verified, the bootloader should be unlocked.
  9. Since the device resets completely, you will need to re-enable USB debugging to continue.

Flashing additional partitions

Warning: This platform requires additional partitions to be flashed for recovery to work properly, the process to do so is described below.
  1. Download the following files from here.
    • boot.img
    • dtbo.img
    • vendor_boot.img
  2. Power off the device, and boot it into bootloader mode:
    • With the device powered off, hold Volume Down + Power. Keep holding both buttons until the word “FASTBOOT” appears on the screen, then release.
  3. Flash the downloaded image files to your device by typing (replace <...> with the actual filenames!):
    fastboot flash boot <boot>.img fastboot flash dtbo <dtbo>.img fastboot flash vendor_boot <vendor_boot>.img

Booting a custom recovery using fastboot

  1. Download Lineage Recovery. Simply download the latest recovery file, named recovery.img.
    Important: Other recoveries may not work for installation or updates. We strongly recommend to use the one linked above!
  2. Connect your device to your PC via USB if it isn’t already.
  3. If your device isn’t already in fastboot mode, on the computer, open a command prompt (on Windows) or terminal (on Linux or macOS) window, and type:
    adb reboot bootloader
    You can also boot into fastboot mode via a key combination:
    • With the device powered off, hold Volume Down + Power. Keep holding both buttons until the word “FASTBOOT” appears on the screen, then release.
  4. Once the device is in fastboot mode, verify your PC finds it by typing:
    fastboot devices

    If you don’t get any output or an error:
    • on Windows: make sure the device appears in the device manager without a triangle. Try other drivers until the command above works!
    • on Linux or macOS: If you see no permissions fastboot try running fastboot as root. When the output is empty, check your USB cable (preferably use a USB Type-A 2.0 one or a USB hub) and port!
    • Tip: Some devices have buggy USB support while in bootloader mode, if you see fastboot hanging with no output when using commands such as fastboot getvar ..., fastboot boot ..., fastboot flash ... you may want to try a different USB port (preferably a USB Type-A 2.0 one) or a USB hub.
  5. Flash a recovery on your device by typing (replace <recovery_filename> with the actual filename!):
    fastboot flash recovery <recovery_filename>.img
    Note: Outdated fastboot releases dropped legacy A/B support, so it might attempt to flash to recovery__a /recovery__b rather than recovery_a / recovery_b if you try to flash recovery. In this case, you must update fastboot to a release newer than or equal to 31.0.2. Alternatively, you can manually specify which slot to flash to based on what slot fastboot failed to flash to. For example, if fastboot fails to flash to recovery__a, you must flash to recovery_a.
  6. Now reboot into recovery to verify the installation.
    • With the device powered off, hold Volume Up + Power. Keep holding both buttons until the “MI” logo appears on the screen, then release.
    • Note: If your recovery does not show the LineageOS logo, you accidentally booted into the wrong recovery. Please start at the top of this section!

Installing LineageOS from recovery

  1. Download the LineageOS installation package that you would like to install or build the package yourself.
    • (Optionally): If you want to install an application package add-on such as Google Apps (use the arm64 architecture), please read and follow the instructions on Google Apps page
  2. If you are not in recovery, reboot into recovery:
    • With the device powered off, hold Volume Up + Power. Keep holding both buttons until the “MI” logo appears on the screen, then release.
  3. Now tap Factory Reset, then Format data / factory reset and continue with the formatting process. This will remove encryption and delete all files stored in the internal storage.
  4. Return to the main menu.
  5. Sideload the LineageOS .zip package but do not reboot before you read/followed the rest of the instructions!
    • On the device, select “Apply Update”, then “Apply from ADB” to begin sideload.
    • On the host machine, sideload the package using: adb sideload filename.zip.
      Tip: Normally, adb will report Total xfer: 1.00x, but in some cases, even if the process succeeds the output will stop at 47% and report adb: failed to read command: Success. In some cases it will report adb: failed to read command: No error or adb: failed to read command: Undefined error: 0 which is also fine.

All set!

Once you have installed everything successfully, you can now reboot your device into the OS for the first time!
  • Click the back arrow in the top left of the screen, then “Reboot system now”.
Note: The first boot usually takes no longer than 15 minutes, depending on the device. If it takes longer, you may have missed a step, otherwise feel free to get assistance.

Download link:
Builds are released here: Releases on GitHub
Warning: These releases include builds for other devices i own, make sure to download files from a release for Xiaomi 12, for example: "LineageOS 20.0 for Xiaomi 2201123G (cupid)"
Note: There are two variants which are not necessarily released at the same time. Vanilla builds are pure LineageOS without additional apps and GMS builds include Google services. The GMS builds are too big for github releases, so they will be uploaded to this shared folder on Google Drive instead

Source Code
Please read this thread about the OSS kernel on Xiaomi 12.
All kernel related source code can be found here.
Device trees for LineageOS can be found here.

Donate to support development:
Donate via PayPal to ArianK16a
Donate via PayPal to LineageOS
 
Last edited:

NeoArian

Recognized Developer
Nov 25, 2017
1,325
3,089
Sony Xperia Z2
Sony Xperia Z3 Compact
For "new" users you could also give a step by step instruction how to update. Because format data is not always necessary.
I will add that soon 👍
i get " low resource device detected" error when trying to install Gapps
That's because the system partitions use erofs, a read only file system without reserved space. You can use the GMS variants if you want to use Google services or install Google apps that use overlay over the partitions.
I aim to get this official one day in future, but this is not really close yet because of a different builds process due to GKI compliance which isn't supported officially in lineage.
 

Jadson note12 4g

New member
May 28, 2023
2
1
funciona no redmi note 12 4g?

Mod translation: it works not redmi note 12 4g?
 
Last edited by a moderator:

Badger50

Senior Moderator / Moderator Committee
Staff member
Mod translation: it works not redmi note 12 4g?

Greetings, and welcome to XDA. As a friendly reminder, we ask all members to please post in English as stipulated by XDA Rule #4:

4. Use the English language.

We understand that with all the different nationalities, not everyone speaks English well, but please try. If you're really unable to post in English, use an online translator. You're free to include your original message in your own language, below the English translation. (This rule covers your posts, profile entries and signature). You could try :- https://translate.google.com/ or https://www.babelfish.com/ or use one of your choice.

Thank you for your cooperation, and have a pleasant day.

-Regards: Badger50
 

McFlypants

Senior Member
Mar 22, 2013
423
158
Xiaomi 12
Volte und voWifi calls sometimes show a strange number format.

Sometimes it's the caller number and my own number after each other, sometimes it's both numbers with a & or a + inbetween.

Even if the contact is known, the number in wrong format is shown.

Any help? I'm still on the 20230316 build. Is it fixed on the newest one?
 

FloFloFlow

Senior Member
Dec 29, 2014
118
12
Someone tried NFC payment and banking apps with this ROM ? Thank you

edit : can't install Revolut and can't add my cards, so I switched on PE
 
Last edited:

Rrrjs

Member
Aug 25, 2023
8
2
Changing cannot work using the default 67w charger but works in low-power charger
the build version is that in July
 

Top Liked Posts

  • There are no posts matching your filters.
  • 15
    2okPze5.png


    Code:
    #include <std_disclaimer.h>
    /*
    * Your warranty is now void.
    *
    * I am not responsible for bricked devices, dead SD cards,
    * thermonuclear war, or you getting fired because the alarm app failed. Please
    * do some research if you have any concerns about features included in this ROM
    * before flashing it! YOU are choosing to make these modifications, and if
    * you point the finger at me for messing up your device, I will laugh at you.
    */

    Introduction
    LineageOS, an open-source Android distribution, is available for several devices,
    with more being continuously added thanks to the biggest, yet ever growing, Android open-source community.
    Join us and breathe new life in your device, be it old or new.
    To find out more about LineageOS visit the official Website.

    All the source code for LineageOS is available in the LineageOS Github organization. And if you would like to contribute to LineageOS, please visit out Gerrit Code Review.

    Installation
    Warning:
    These instructions only work if you follow every section and step precisely.
    Do not continue after something fails!

    Basic requirements

    1. Read through the instructions at least once before actually following them, so as to avoid any problems due to any missed steps!
    2. Make sure your computer has adb and fastboot. Setup instructions can be found here.
    3. Enable USB debugging on your device.
    4. LineageOS is provided as-is with no warranty. While we attempt to verify everything works you are installing this at your own risk!
    Warning: Before following these instructions please ensure that the device is currently using Android 13 firmware.
    If the vendor provided multiple updates for that version, e.g. security updates, make sure you are on the latest!
    If your current installation is newer or older than Android 13, please upgrade or downgrade to the required version before proceeding (guides can be found on the internet!).


    Unlocking the bootloader

    Note: The steps below only need to be run once per device. They require a machine running Windows 7 or newer.
    Warning: Unlocking the bootloader will erase all data on your device! Before proceeding, ensure the data you would like to retain is backed up to your PC and/or your Google account, or equivalent. Please note that OEM backup solutions like Samsung and Motorola backup may not be accessible from LineageOS once installed.
    Tip: It is highly recommended to have the latest official MIUI stable package installed on the device, before proceeding with unlock.
    1. Create a Mi account on Xiaomi’s website. Beware that one account is only allowed to unlock one unique device every 30 days.
    2. Add a phone number to your Mi account.
    3. Insert a SIM into your phone.
    4. Enable developer options in Settings > About Phone by repeatedly tapping MIUI Version.
    5. Link the device to your Mi account in Settings > Additional settings > Developer options > Mi Unlock status.
    6. Download the Mi Unlock app (Windows is required to run the app).
    7. Run the Mi Unlock app and follow the instructions provided by the app. It may tell you that you have to wait up to 30 days. If it does so, please wait the quoted amount of time before continuing to the next step!
    8. After device and Mi account are successfully verified, the bootloader should be unlocked.
    9. Since the device resets completely, you will need to re-enable USB debugging to continue.

    Flashing additional partitions

    Warning: This platform requires additional partitions to be flashed for recovery to work properly, the process to do so is described below.
    1. Download the following files from here.
      • boot.img
      • dtbo.img
      • vendor_boot.img
    2. Power off the device, and boot it into bootloader mode:
      • With the device powered off, hold Volume Down + Power. Keep holding both buttons until the word “FASTBOOT” appears on the screen, then release.
    3. Flash the downloaded image files to your device by typing (replace <...> with the actual filenames!):
      fastboot flash boot <boot>.img fastboot flash dtbo <dtbo>.img fastboot flash vendor_boot <vendor_boot>.img

    Booting a custom recovery using fastboot

    1. Download Lineage Recovery. Simply download the latest recovery file, named recovery.img.
      Important: Other recoveries may not work for installation or updates. We strongly recommend to use the one linked above!
    2. Connect your device to your PC via USB if it isn’t already.
    3. If your device isn’t already in fastboot mode, on the computer, open a command prompt (on Windows) or terminal (on Linux or macOS) window, and type:
      adb reboot bootloader
      You can also boot into fastboot mode via a key combination:
      • With the device powered off, hold Volume Down + Power. Keep holding both buttons until the word “FASTBOOT” appears on the screen, then release.
    4. Once the device is in fastboot mode, verify your PC finds it by typing:
      fastboot devices

      If you don’t get any output or an error:
      • on Windows: make sure the device appears in the device manager without a triangle. Try other drivers until the command above works!
      • on Linux or macOS: If you see no permissions fastboot try running fastboot as root. When the output is empty, check your USB cable (preferably use a USB Type-A 2.0 one or a USB hub) and port!
      • Tip: Some devices have buggy USB support while in bootloader mode, if you see fastboot hanging with no output when using commands such as fastboot getvar ..., fastboot boot ..., fastboot flash ... you may want to try a different USB port (preferably a USB Type-A 2.0 one) or a USB hub.
    5. Flash a recovery on your device by typing (replace <recovery_filename> with the actual filename!):
      fastboot flash recovery <recovery_filename>.img
      Note: Outdated fastboot releases dropped legacy A/B support, so it might attempt to flash to recovery__a /recovery__b rather than recovery_a / recovery_b if you try to flash recovery. In this case, you must update fastboot to a release newer than or equal to 31.0.2. Alternatively, you can manually specify which slot to flash to based on what slot fastboot failed to flash to. For example, if fastboot fails to flash to recovery__a, you must flash to recovery_a.
    6. Now reboot into recovery to verify the installation.
      • With the device powered off, hold Volume Up + Power. Keep holding both buttons until the “MI” logo appears on the screen, then release.
      • Note: If your recovery does not show the LineageOS logo, you accidentally booted into the wrong recovery. Please start at the top of this section!

    Installing LineageOS from recovery

    1. Download the LineageOS installation package that you would like to install or build the package yourself.
      • (Optionally): If you want to install an application package add-on such as Google Apps (use the arm64 architecture), please read and follow the instructions on Google Apps page
    2. If you are not in recovery, reboot into recovery:
      • With the device powered off, hold Volume Up + Power. Keep holding both buttons until the “MI” logo appears on the screen, then release.
    3. Now tap Factory Reset, then Format data / factory reset and continue with the formatting process. This will remove encryption and delete all files stored in the internal storage.
    4. Return to the main menu.
    5. Sideload the LineageOS .zip package but do not reboot before you read/followed the rest of the instructions!
      • On the device, select “Apply Update”, then “Apply from ADB” to begin sideload.
      • On the host machine, sideload the package using: adb sideload filename.zip.
        Tip: Normally, adb will report Total xfer: 1.00x, but in some cases, even if the process succeeds the output will stop at 47% and report adb: failed to read command: Success. In some cases it will report adb: failed to read command: No error or adb: failed to read command: Undefined error: 0 which is also fine.

    All set!

    Once you have installed everything successfully, you can now reboot your device into the OS for the first time!
    • Click the back arrow in the top left of the screen, then “Reboot system now”.
    Note: The first boot usually takes no longer than 15 minutes, depending on the device. If it takes longer, you may have missed a step, otherwise feel free to get assistance.

    Download link:
    Builds are released here: Releases on GitHub
    Warning: These releases include builds for other devices i own, make sure to download files from a release for Xiaomi 12, for example: "LineageOS 20.0 for Xiaomi 2201123G (cupid)"
    Note: There are two variants which are not necessarily released at the same time. Vanilla builds are pure LineageOS without additional apps and GMS builds include Google services. The GMS builds are too big for github releases, so they will be uploaded to this shared folder on Google Drive instead

    Source Code
    Please read this thread about the OSS kernel on Xiaomi 12.
    All kernel related source code can be found here.
    Device trees for LineageOS can be found here.

    Donate to support development:
    Donate via PayPal to ArianK16a
    Donate via PayPal to LineageOS
    6
    MiuiCamera for LineageOS on Xiaomi 12

    I have created a Magisk Module to get the MIUI camera app on LineageOS 20. It's extracted from MIUI V14.0.2.0.TLCMICM.
    3
    For "new" users you could also give a step by step instruction how to update. Because format data is not always necessary.
    I will add that soon 👍
    i get " low resource device detected" error when trying to install Gapps
    That's because the system partitions use erofs, a read only file system without reserved space. You can use the GMS variants if you want to use Google services or install Google apps that use overlay over the partitions.
    I aim to get this official one day in future, but this is not really close yet because of a different builds process due to GKI compliance which isn't supported officially in lineage.
    2
    outstanding work from the ROMs developer. thank you for bringing stable Lineage to our device
    1
    For "new" users you could also give a step by step instruction how to update. Because format data is not always necessary.