Development [ROM][S][OFFICIAL] LineageOS 19.1 for POCO X3 Pro [vayu]

Search This thread

HastaPasta

Member
Oct 11, 2021
43
10
Hi. The Mi Flash doesn't work some driver issue and the firmware needs an update.

What is the fastboot instruction please to update firmware? It is the partition bit that I don't know. Sample instruction I got online below.

fastboot flash partition-name file-name-with-extension
 

Eric_Lev

Senior Member
Jan 27, 2019
1,291
2,454
Angers
androidfilehost.com
Hi. The Mi Flash doesn't work some driver issue and the firmware needs an update.

What is the fastboot instruction please to update firmware? It is the partition bit that I don't know. Sample instruction I got online below.

fastboot flash partition-name file-name-with-extension
 
  • Like
Reactions: HastaPasta

HastaPasta

Member
Oct 11, 2021
43
10
Sorry just 1 Q.

I can't understand this instruction. I have the package but what is CODENAME change filename?

How to update the firmware?
1- Download the package you want to flash. IT MUST BE NAMED WITH THE SAME CODENAME OF YOUR DEVICE.
 

Eric_Lev

Senior Member
Jan 27, 2019
1,291
2,454
Angers
androidfilehost.com
Sorry just 1 Q.

I can't understand this instruction. I have the package but what is CODENAME change filename?

How to update the firmware?
1- Download the package you want to flash. IT MUST BE NAMED WITH THE SAME CODENAME OF YOUR DEVICE.
Codename = vayu

Flash this one via your recovery:

 

Viggen66

Senior Member
Mar 22, 2009
712
79
Does anyone here still has the latest Lineage 18.1 release for this phone I think is

lineage-18.1-20220422-nightly-vayu-signed
 

Viggen66

Senior Member
Mar 22, 2009
712
79
USAMA-CW,

Just a question I own a X3 Pro European, which has the V12.5.1.0.RJUEUXM firmware, in your package you included the V12.5.9.0.RJUMIXM Glocal, is it safe for me to flash or change European 12.5.1 to global 12.5.9?

Thanks
 

glock24

Senior Member
Sep 26, 2012
220
50
I just installed lineage-19.1-20220812-nightly-vayu-signed.zip and so far I've encountered two bugs:

1. Split window mode does not work, it just doesn't activate.
2. When AAC is activated as audio codec the BT connection is unusable, it skips and cuts the audio constantly. Reverting to SBS works fine but quality is inferior.

Does LOS 18.1 have these issues too?
 

Usama-CW

Member
May 27, 2015
37
8
Xiaomi Poco X3 Pro
I just installed lineage-19.1-20220812-nightly-vayu-signed.zip and so far I've encountered two bugs:

1. Split window mode does not work, it just doesn't activate.
2. When AAC is activated as audio codec the BT connection is unusable, it skips and cuts the audio constantly. Reverting to SBS works fine but quality is inferior.

Does LOS 18.1 have these issues too?
Screenshot_20220819-185529_Brave.png
Split screen working fine, i am also using 20220812 build
 
  • Like
Reactions: glock24

jimithebear

New member
Aug 19, 2022
4
3
Anyone else experiencing these random 5-10 second freezes on LOS 19.1? It's happening to me even on a clean install (never used to happen on 18.1): https://gitlab.com/LineageOS/issues/android/-/issues/5022

It doesn't happen that much (usually 2-3 times a day for me), and so far only in the browser, so I don't know how to reproduce it or gather more info.
Can confirm since upgrading to 19.1 using Firefox browser. Always affects me tapping on the Wordle on-page keyboard. Thanks for the link. Have commented there too.
 
  • Like
Reactions: Faruk88 and atsod

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    I believe you would need to convert/peek inside the system images themselves?

    No, the firmware files are not part of the system image (or the vendor partition). They're separate binary files. You can check it out if you download the firmware update ZIP file from here: https://xiaomifirmwareupdater.com/firmware/vayu/stable/V13.0.5.0.SJUMIXM/

    The firmware update ZIP file is identical to the OTA update ZIP available for download from the Xiaomi server, except the file system images have been removed. You can compare yourself if you would like: https://bigota.d.miui.com/V13.0.5.0.SJUMIXM/miui_VAYUGlobal_V13.0.5.0.SJUMIXM_7cc0b9ac86_12.0.zip

    If you extract the firmware update ZIP (or the OTA update ZIP from Xiaomi), you can see the firmware files in the "/firmware-updates" directory. And in "/META-INF/com/google/android/updater-script" you can see how the firmware files are installed. It writes them to some special block devices on the file system. These aren't "real" files, so even if you install a newer build of LineageOS, it will not overwrite/revert to the previous firmware.

    I looked at the files listed in the link you shared, but they do not include any of the firmware files from the firmware update ZIP file. Here is the updater-script file from it, for reference:

    Code:
    show_progress(0.200000, 10);
    
    # Generated by Xiaomi Flashable Firmware Creator
    # 2022-07-22 12:45:53.026224 - xfu
    
    ui_print("Flashing Normal Firmware ...");
    getprop("ro.product.device") == "vayu" || abort("E3004: This package is for \"vayu\" devices; this is a \"" + getprop("ro.product.device") + "\".");
    ui_print("Target: Xiaomi/vayu_global/vayu:12/RKQ1.200826.002/V13.0.5.0.SJUMIXM:user/release-keys");
    package_extract_file("firmware-update/cmnlib64.mbn", "/dev/block/bootdevice/by-name/cmnlib64");
    package_extract_file("firmware-update/NON-HLOS.bin", "/dev/block/bootdevice/by-name/modem");
    package_extract_file("firmware-update/cmnlib.mbn", "/dev/block/bootdevice/by-name/cmnlib");
    package_extract_file("firmware-update/hyp.mbn", "/dev/block/bootdevice/by-name/hyp");
    package_extract_file("firmware-update/BTFM.bin", "/dev/block/bootdevice/by-name/bluetooth");
    package_extract_file("firmware-update/tz.mbn", "/dev/block/bootdevice/by-name/tz");
    package_extract_file("firmware-update/aop.mbn", "/dev/block/bootdevice/by-name/aop");
    package_extract_file("firmware-update/xbl_config.elf", "/dev/block/bootdevice/by-name/xbl_config");
    package_extract_file("firmware-update/storsec.mbn", "/dev/block/bootdevice/by-name/storsec");
    package_extract_file("firmware-update/uefi_sec.mbn", "/dev/block/bootdevice/by-name/uefisecapp");
    package_extract_file("firmware-update/imagefv.elf", "/dev/block/bootdevice/by-name/imagefv");
    package_extract_file("firmware-update/qupv3fw.elf", "/dev/block/bootdevice/by-name/qupfw");
    package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/abl");
    package_extract_file("firmware-update/dspso.bin", "/dev/block/bootdevice/by-name/dsp");
    package_extract_file("firmware-update/devcfg.mbn", "/dev/block/bootdevice/by-name/devcfg");
    package_extract_file("firmware-update/km41.mbn", "/dev/block/bootdevice/by-name/keymaster");
    package_extract_file("firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xbl");
    package_extract_file("firmware-update/cmnlib64.mbn", "/dev/block/bootdevice/by-name/cmnlib64bak");
    package_extract_file("firmware-update/cmnlib.mbn", "/dev/block/bootdevice/by-name/cmnlibbak");
    package_extract_file("firmware-update/hyp.mbn", "/dev/block/bootdevice/by-name/hypbak");
    package_extract_file("firmware-update/tz.mbn", "/dev/block/bootdevice/by-name/tzbak");
    package_extract_file("firmware-update/aop.mbn", "/dev/block/bootdevice/by-name/aopbak");
    package_extract_file("firmware-update/xbl_config.elf", "/dev/block/bootdevice/by-name/xbl_configbak");
    package_extract_file("firmware-update/uefi_sec.mbn", "/dev/block/bootdevice/by-name/uefisecappbak");
    package_extract_file("firmware-update/qupv3fw.elf", "/dev/block/bootdevice/by-name/qupfwbak");
    package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/ablbak");
    package_extract_file("firmware-update/devcfg.mbn", "/dev/block/bootdevice/by-name/devcfgbak");
    package_extract_file("firmware-update/km41.mbn", "/dev/block/bootdevice/by-name/keymasterbak");
    package_extract_file("firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xblbak");
    
    show_progress(0.100000, 2);
    set_progress(1.000000);

    The official update from Xiaomi that I linked above does the exact same thing, and THEN it patches the system partition and vendor partition and then does a few more things. Here is the updater-script from Xiaomi for reference:

    (!less_than_int(1657095343, getprop("ro.build.date.utc"))) || abort("E3003: Can't install this package (Wed Jul 6 16:15:43 CST 2022) over newer build (" + getprop("ro.build.date") + ").");
    getprop("ro.product.device") == "vayu" || abort("E3004: This package is for \"vayu\" devices; this is a \"" + getprop("ro.product.device") + "\".");
    ui_print("Target: Xiaomi/vayu_global/vayu:12/RKQ1.200826.002/V13.0.5.0.SJUMIXM:user/release-keys");

    # ---- radio update tasks ----

    ui_print("Patching firmware images...");
    package_extract_file("firmware-update/cmnlib64.mbn", "/dev/block/bootdevice/by-name/cmnlib64");
    package_extract_file("firmware-update/NON-HLOS.bin", "/dev/block/bootdevice/by-name/modem");
    package_extract_file("firmware-update/cmnlib.mbn", "/dev/block/bootdevice/by-name/cmnlib");
    package_extract_file("firmware-update/hyp.mbn", "/dev/block/bootdevice/by-name/hyp");
    package_extract_file("firmware-update/BTFM.bin", "/dev/block/bootdevice/by-name/bluetooth");
    package_extract_file("firmware-update/tz.mbn", "/dev/block/bootdevice/by-name/tz");
    package_extract_file("firmware-update/aop.mbn", "/dev/block/bootdevice/by-name/aop");
    package_extract_file("firmware-update/xbl_config.elf", "/dev/block/bootdevice/by-name/xbl_config");
    package_extract_file("firmware-update/storsec.mbn", "/dev/block/bootdevice/by-name/storsec");
    package_extract_file("firmware-update/uefi_sec.mbn", "/dev/block/bootdevice/by-name/uefisecapp");
    package_extract_file("firmware-update/imagefv.elf", "/dev/block/bootdevice/by-name/imagefv");
    package_extract_file("firmware-update/qupv3fw.elf", "/dev/block/bootdevice/by-name/qupfw");
    package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/abl");
    package_extract_file("firmware-update/dspso.bin", "/dev/block/bootdevice/by-name/dsp");
    package_extract_file("firmware-update/devcfg.mbn", "/dev/block/bootdevice/by-name/devcfg");
    package_extract_file("firmware-update/km41.mbn", "/dev/block/bootdevice/by-name/keymaster");
    package_extract_file("firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xbl");
    package_extract_file("firmware-update/cmnlib64.mbn", "/dev/block/bootdevice/by-name/cmnlib64bak");
    package_extract_file("firmware-update/cmnlib.mbn", "/dev/block/bootdevice/by-name/cmnlibbak");
    package_extract_file("firmware-update/hyp.mbn", "/dev/block/bootdevice/by-name/hypbak");
    package_extract_file("firmware-update/tz.mbn", "/dev/block/bootdevice/by-name/tzbak");
    package_extract_file("firmware-update/aop.mbn", "/dev/block/bootdevice/by-name/aopbak");
    package_extract_file("firmware-update/xbl_config.elf", "/dev/block/bootdevice/by-name/xbl_configbak");
    package_extract_file("firmware-update/uefi_sec.mbn", "/dev/block/bootdevice/by-name/uefisecappbak");
    package_extract_file("firmware-update/qupv3fw.elf", "/dev/block/bootdevice/by-name/qupfwbak");
    package_extract_file("firmware-update/abl.elf", "/dev/block/bootdevice/by-name/ablbak");
    package_extract_file("firmware-update/devcfg.mbn", "/dev/block/bootdevice/by-name/devcfgbak");
    package_extract_file("firmware-update/km41.mbn", "/dev/block/bootdevice/by-name/keymasterbak");
    package_extract_file("firmware-update/xbl.elf", "/dev/block/bootdevice/by-name/xblbak");

    # --- Start patching dynamic partitions ---


    # Update dynamic partition metadata

    assert(update_dynamic_partitions(package_extract_file("dynamic_partitions_op_list")));

    # Patch partition system

    ui_print("Patching system image unconditionally...");
    show_progress(0.500000, 0);
    block_image_update(map_partition("system"), package_extract_file("system.transfer.list"), "system.new.dat.br", "system.patch.dat") ||
    abort("E1001: Failed to update system image.");

    # Patch partition vendor

    ui_print("Patching vendor image unconditionally...");
    show_progress(0.100000, 0);
    block_image_update(map_partition("vendor"), package_extract_file("vendor.transfer.list"), "vendor.new.dat.br", "vendor.patch.dat") ||
    abort("E2001: Failed to update vendor image.");

    # Patch partition product

    ui_print("Patching product image unconditionally...");
    show_progress(0.100000, 0);
    block_image_update(map_partition("product"), package_extract_file("product.transfer.list"), "product.new.dat.br", "product.patch.dat") ||
    abort("E2001: Failed to update product image.");

    # Patch partition odm

    ui_print("Patching odm image unconditionally...");
    show_progress(0.100000, 0);
    block_image_update(map_partition("odm"), package_extract_file("odm.transfer.list"), "odm.new.dat.br", "odm.patch.dat") ||
    abort("E2001: Failed to update odm image.");

    # Patch partition system_ext

    ui_print("Patching system_ext image unconditionally...");
    show_progress(0.100000, 0);
    block_image_update(map_partition("system_ext"), package_extract_file("system_ext.transfer.list"), "system_ext.new.dat.br", "system_ext.patch.dat") ||
    abort("E2001: Failed to update system_ext image.");

    # --- End patching dynamic partitions ---

    package_extract_file("boot.img", "/dev/block/bootdevice/by-name/boot");
    show_progress(0.100000, 10);

    # ---- radio update tasks 2 ----

    ui_print("Patching vbmeta dtbo logo binimages...");
    package_extract_file("firmware-update/dtbo.img", "/dev/block/bootdevice/by-name/dtbo");
    package_extract_file("firmware-update/logo.img", "/dev/block/bootdevice/by-name/logo");
    package_extract_file("firmware-update/vbmeta.img", "/dev/block/bootdevice/by-name/vbmeta");
    package_extract_file("firmware-update/vbmeta_system.img", "/dev/block/bootdevice/by-name/vbmeta_system");
    set_progress(1.000000);

    So basically the firmware update is something completely separate from the blobs that are in the vendor partition.

    I have zero freezes on both phones now, after updating the firmware, but I did also turn off smooth display... I may try re-enabling smooth display to see what happens though. On my first phone I did both those things at the same time (update firmware and disable smooth display), but on the second phone I disabled smooth display first and it didn't eliminate the freezes, but then when I also updated the firmware it eliminated the freezes.

    Edit: Enabled Smooth Display on both phones. Hours later, got an approximately 5-second freeze on one of them. I guess all I can say for 100% certain is that neither phone experienced any freezing with both updated firmware and smooth display disabled. But doing only one of those things (just updating firmware, or just disabling smooth display) was not enough on my end.
    2
    So I have an X3 Pro with a plain LAOS 18.1 + Gapps installed according to instructions from https://wiki.lineageos.org/devices/vayu/install :
    - unlocked and installed everything about 2022-02-20
    - firmware with baseband 1119_2217 - so it is 12.5.5.0.RJUEUXM Europe region (according to https://forum.xda-developers.com/t/...vayu-bhima-auto-updated.4253099/post-87448127 )
    - Lineage Recovery
    - LineageOS 18.1
    - OpenGApps
    - not rooted
    - no SafetyNet addons

    I used adb and fastboot during my first installation and would prefer to continue that way.

    I have never upgraded the firmware.

    I'd like to avoid the factory reset or removing all my data from the phone.

    You are already halfway there, you have an old (enough) recovery to flash the firmware without an issue and you have a working adb and fastboot on your PC to the phone.

    So here is how I would go about it (I don't like handling the phone during the updates, whenever possible, so I use the command line to reboot into recovery/fastboot/sideload)

    Download the most recent matching vendor firmware (rename drivers.zip)
    Download the most recent lineage 19.1 image (rename lineageos.img)
    Download the most recent arm64 MindTheGapps 12 (rename gapps.zip)
    Verify your downloads using md5/SHA256 checks.

    Connect the phone to your PC, verify all locks are removed then execute the following via adb
    Code:
    adb reboot sideload
    adb sideload drivers.zip
    adb reboot sideload
    adb sideload lineageos.img
    adb reboot sideload
    adb sideload gapps.zip
    adb reboot

    On the first boot the Poco screen will take a couple of minutes and the lineage splash will take another couple of minutes or so, don't panic and let it run its course.

    The only thing to note is that the unsigned zips (drivers and gapps) will require you to manually approve the installation from recovery on the phone.

    There is no need to even update recovery or use fastboot at that point (lineage 18.1 recovery will flash 19.1 image without an issue and you can enable the option to update recovery as part of the os update from the updater app settings later on).

    Yes you can use MindTheGapps even if your 18.1 installation was OpenGApps.
    No, you wont need to do a factory reset and wont lose your data.

    If for whatever reason you want to manually update recovery (rename lineageos-recovery.img) then execute the following over adb then fastboot:
    Code:
    adb reboot bootloader
    fastboot flash recovery lineageos-recovery.img
    fastboot reboot recovery
    Just note to not update recovery prior to updating the vendor firmware (most recent firmware is older than most recent recovery so once newer recovery is installed it wont allow you to install the older firmware).

    Good luck
    2
    Then it either doesn't matter or it's an error on LineageOS part, pretty much every ROM on XDA for Vayu says to format after flashing the ROM.

    ArrowOS:

    crDroid

    EvolutionX:
    While Lineage might be the most popular one it's certainly not the only one to call for that sequence (be it for the x3 pro specifically or community builds in general) :) guides are already in related threads here and I didn't check releases past the first page of the X3 pro forum.

    Pixel Experience: reset then flash

    Elixir: reset then flash
    Project Elixir for the Poco X3 Pro [vayu/bhima]



    CLEAN FLASH (Moving From A12 to A13)

    - Download the latest build
    - Take a backup for safe side
    - Boot to Recovery
    - Format Data by typing yes
    - Flash the latest build
    - Reboot

    crDroid 8: reset then flash
    BE3pE0l.png

    Code:
    *** Disclaimer
    I am not responsible for any damage you made to your device
    You have been warned


    First Time Installation:
    * Backup before you begin
    * Reboot to provided or TWRP based recovery.
    * Format Data , even coming from crDroid 7.x
    (otherwise you may not able to boot ROM due to encryption complexities)
    * Flash ROM via adb sideload
    * Flash Gapps + Gapps Search addon via adb sideload
    * Reboot and profit!

    AICP: reset then flash

    AICP
    Android Ice Cold Project


    How to flash for the first time:
    (Again: Don't do it if you don't know!)

    1. Download the ROM and GApps and transfer them to your device.
    2. Boot to recovery (TWRP is recommended, the lineage recovery is a great alternative however, it will not decrypt the internal storage so you will have to flash the rom with adb sideload or usb OTG or with an external sdcard).
    3. Wipe the System (DO NOT WIPE THE SYSTEM ON A/B DEVICES!), Cache, and Data (you might need to format the data partition!).
    4. Flash the ROM zip file (reboot to recovery before flashing anything else if you have an "A/B" device).
    5. Flash the GApps (optional, needed for e.g. Google Playstore to work)
    6. Reboot and set up your device.
    7. You can then reboot to recovery and flash the root solution of your choice if you want to, and then boot back to the system.

    Elite Rom: reset then flash
    fVQHaqp.jpg


    Elite ROM

    For POCO X3 Pro (vayu)


    Installation Instructions:

    - Make sure you are decrypted. EU/MiuiMix and other roms use encrypted data. Format if you coming from other roms.
    - Flash Rom zip with latest recovery.
    - Flash selinux.zip or FlashAfterRom.zip file if its a Port Rom else it wont boot (get file from our tg group)
    - Once rom boots, open Elite Settings and open each menu one by one to fix some coloring stuff in statusbar etc.
    - Thats it, enjoy the smoothness of rom ;).

    MIUI Cloud 5: either ways

    Evolution X: reset then flash then format data (for cleanup)

    Evolution X 7.0 for the Poco X3 Pro [vayu]
    Flashing Guides:
    1. Reboot to Recovery
    2. Wipe Dalvik/ART Cache, Data, and Cache on Advanced Wipe
    3. Flash ROM
    4. Flash DFE (optional)
    5. Format Data, type "yes" and press enter
    6. Reboot to System and #KeepEvolving!

    DO NOT FLASH GAPPS, ALREADY INCLUDED

    Full instructions, you can follow this link.


    ArrowOS: flash then reset

    I have been in the scene since ROMs were a PDA thing that is "cooked" from binaries not built from source :) and this is basically how I always did it, it will not make a difference if the ROM doesn't touch your user data partition (back in the old days devs used to do all kinds of tricks and hacks), but when you can't tell for sure (especially if you are installing addons on top of it) then it's safer to do it prior to flashing unless installation guide tells you otherwise.

    Also, installer mishaps will always be a problem even when one doesn't have the option to clean up after it (updates).
    2
    You don't, it's just a fact it happens that lineage 18.1 recovery has all the features needed to install 19.1 lineageos images.

    This info may be useful also for future releases. Is it so that any version of a recovery can flash any OS/lineageos? Or are there some rules?
    I don't see this changing for 19.1 images but the same doesn't necessarily apply to other recoveries (say older TWRP) or even future lineage builds (say 20.1).
    Indeed the recommended procedure is to update to a matching recovery before flashing a build, but it just happens that those with an 18.1 recovery don't need to do it when upgrading to 19.1 builds.
    if I understand it properly, according to the rule you stated - when I get info about new firmware, I can install it only before I get the next weekly-build of lineage. Because the new lineage will update also my recovery, and this recovery will be newer than the firmware that was released a few days ago - and this new recovery will not allow me to update to the newer firmware. Do I understand properly?
    More or less correct, but note that because the vendor firmware releases are not synced with community releases (lineage) the released firmware might be outdated by a prior nightly build even before it is released, in that case, you will still need to downgrade recovery, install the vendor firmware, then upgrade recovery back (or just leave it for the updater app to upgrade on the next update).
    And as a rule: should I update firmware to the latest version on a phone with an installed OS - or maybe firmware updates should be done lazy only when needed during OS install or major upgrade?
    vendor firmware is only tested and granted to work with the official vendor OS, when using community builds I would only update the firmware if known to fix something or if recommended by the community firmware developer (the latest vendor firmware for another poco phone, f3, broke its lineage builds that the dev had to put a PSA on the download page asking people to stick to the older firmware version), with that said, in most cases firmware upgrade/downgrade isn't that big of a deal (aside from the inconvenience) for those who would rather test it out of curiosity.

    Good luck :)
    2
    Then generate a logcat and report the issue to the devs in the right place. Crying here won't do anything.
    Now you can cry.

    LOL
  • 51
    2okPze5.png


    LineageOS is a free, community built, aftermarket firmware distribution of Android 12L (Sv2), which is designed to increase performance and reliability over stock Android for your device.

    LineageOS is based on the Android Open Source Project with extra contributions from many people within the Android community. It can be used without any need to have any Google application installed. Linked below is a package that has come from another Android project that restore the Google parts. LineageOS does still include various hardware-specific code, which is also slowly being open-sourced anyway.

    All the source code for LineageOS is available in the LineageOS GitHub repo. And if you would like to contribute to LineageOS, please visit out Gerrit Code Review. You can also view the Changelog for a full list of changes & features.

    Downloads
    Here

    Flashing instructions
    Here

    Sources:
    LineageOS

    Happy modding!
    12
    Thanks for finally releasing LineageOS, but you devs are 3 months too late... ArrowOS has inadvertently stolen my heart in your absence, lol.
    Someone asked?
    10
    vayu goes LOS19.1 release
    coming soon next friday - is out now!

    thx @SebaUbuntu for your work
    9
    New update out
    8
    Thanks for finally releasing LineageOS, but you devs are 3 months too late... ArrowOS has inadvertently stolen my heart in your absence, lol.