Development [ROM][OFFICIAL] LineageOS 20 (Android 13) for the Motorola Edge 30 (dubai)

Search This thread

mxz55

Senior Member
Nov 5, 2017
102
118
The official installation guide is invalid, because no recovery.img is being provided on the device/downloads page. @ThE_MarD
 

mxz55

Senior Member
Nov 5, 2017
102
118
Sadly, my particular device's flavour of the latest firmware update doesn't allow LineageOS to boot. Unless others with varying fw flavours will also pop up with this issue soon.

I will explain events in sequence. First i updated to lineage-20.0-20230323 while still on the previous firmware version, which was S1RDS32.55-106-3 and it worked as usual.

I got reminded of firmware updates and always want the best, so i went to perform the update, to S1RDS32.55-106-3 after detecting and fetching the flavour for my device with "Rescue and Smart Assistant" Lenovo/Motorola software. Btw, the flavour is one that's not yet listed on lolinet firmware page as of writing: DUBAI_G_S1RDS32.55_106_3_subsidy_DEFAULT_regulatory_DEFAULT_cid50_CFC.xml and if you need to check, i uploaded it here, as it came from the fetching tool: https://drive.google.com/file/d/1oAImW2amatdm-o1pGx-VySFqCZnm6One/view?usp=sharing (maybe even lolinet can copy & add it with my help). Note that my device carrier is displayed as "RETEU" versus this DEFAULT DEFAULT, yet lolinet doesn't have a new firmware file for that, it has at most old firmwares from 2022, and the tool fetches that based on my device's IMEI so it's really it.

To keep it simple, i shall say that i flashed the firmware update with both the Lenovo tool and Tiny-Fastboot-Script_v1.9.2 from lolinet. After the firmware update, LineageOS is no longer able to boot. It just loops after the Motorola logo and sometimes says that data is corrupted, prompting a factory reset (which also won't change a thing btw).

It felt like a brick by firmware update, so i investigated, trying many things for hours. I observe:
- To avoid having to clear my phone, i swapped other firmwares in and did other procedures, while preserving the LineageOS data and partitions, hoping to affect the problem so that it resumes booting like nothing happened. This had no results, it remained in bootloop/feeling bricked.

- Reinstalling the firmware (S1RDS32.55-106-3) with that Lenovo tool restores device to the stock Motorola ROM, which works properly under said latest firmware. I expect to be able to install LineageOS from this point onwards.

- Installing LineageOS 20.0-20230323 (from the working stock ROM state, with latest firmware, per the above point) following all install instructions to the letter, and i fall right back into the problem where it won't successfully boot LOS and loops.

So clearly, it wasn't a brick. It's the inability of LOS to boot on my device, with the latest firmware version. I hope you can help me shed a light on this @ThE_MarD, i can help you investigate (but.. i tried all sorts of ways to get any exception logs, even /sys/fs/pstore/console-ramoops doesn't exist (it does until pstore.. so no kernel panics are stored during the bootloop). I also tried adb pull / for getting the entire storage to manually search for logs, after mount system and Enable ADB, but all i get is a console spammed full of warning: stat failed for path and ones like this:

adb E 03-24 18:50:28 7760 4464 errno.cpp:92] failed to convert errno 40 from wire
adb: warning: stat failed for path /proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/dev/stderr: Input/output error

Which persisted even after flashing rooted boot.img (LOS) despite being unable to boot the phone fully. So now, im not sure how to gather useful diagnostic info, but i will use any steps you can provide.

// Edit while writing post: i managed to pull driver messages log file (dmesg) with the command adb shell dmesg > dmesg.log, taken after a few unsuccessful boots. Here it is, hope it contains something you can use: https://0x0.st/HoSj.log

Actually, failure to load a specific part of the firmware ("yupik_ipa_fws" / yupik_ipa_fws.mdt) seems to be the only theme in said log file, maybe it already clears up what's going on?
 
Last edited:

alekksander

Senior Member
Nov 1, 2016
91
17
NRN PL
this new update… 10 minutes after update it crashed on my device while browsing f-droid (installed new app minute before, but does it have any impact? will have to watch more closely…)
i have clock auto hiding enabled which didn't work until i toggled the setting back and forward. now im worried there is more i have to re-set.
about re-setting settings… after each system reboot "pause activity in the application if it is not used" (auto translated, sorry), is toggled back on. this drives me crazy as my applications (main ones like gallery and camera) keep loosing permissions. very frustrating, but this occurs in LOS even since version 19 i think. any future plans about it? is there a way to hard-disable auto disabling permissions?

edit: another system reboot (crash) when downloading maps for osmand.
 
Last edited:

useroso987

Member
Oct 28, 2022
14
3
Hi, mine is (SKU) XT2203-1 and the build number is S1RDS32.55-106-3. It's ok?

I just instaled adb and fastboot and are working fine, but i'm stucked in the "unlock bootlader" thing. Can't do it in motorola site, so, wich program should i use to unlock the bootloader? The "SunShine" recommended in the wiki does not support this device.

Many Thanks.
 

alekksander

Senior Member
Nov 1, 2016
91
17
NRN PL
Hi, mine is (SKU) XT2203-1 and the build number is S1RDS32.55-106-3. It's ok?

I just instaled adb and fastboot and are working fine, but i'm stucked in the "unlock bootlader" thing. Can't do it in motorola site, so, wich program should i use to unlock the bootloader? The "SunShine" recommended in the wiki does not support this device.

Many Thanks.
just follow lineage os guide exactly: https://wiki.lineageos.org/devices/dubai/install
no need for "sunshine"
 
Last edited:

useroso987

Member
Oct 28, 2022
14
3
just follow lineage os guide exactly: https://wiki.lineageos.org/devices/dubai/install
no need for "sunshine", whatever it is.
I'm with that, but i can't unlock the bootloader from motorola web page:

'Note: If your device is not supported by the Motorola Bootloader Unlock website, you may be able to use an alternative bootloader unlock method like SunShine, though they only support some devices/firmwares.'

So i'm asking for an alternative method to unlock it.
Thanks.
 

nasdaq0

Member
Oct 10, 2009
20
0
Awesome work, thanks guys.
Question: Is "ready for" somehow working, or does anybody know how to get the phone screen on my external monitor with my usbc-hdmi cable or otherwise?
Mouse and keyboard work
thanks a lot guys
 

ThE_MarD

Recognized Developer
Dec 10, 2014
3,460
3,937
Grande Prairie
LeEco Le Max 2
Moto X4
Heyyo @nasdaq0 , unfortunately Ready For isn't supported on LineageOS. I'm unsure if it is something we can actually support tbh since there is probably some proprietary changes required. But hopefully someone smarter than me can figure something out for it...

As for the other question? I'll have to ask other Moto Devs as I don't have a type-c monitor to test with
 
  • Like
Reactions: nasdaq0

mxz55

Senior Member
Nov 5, 2017
102
118
Sadly, my particular device's flavour of the latest firmware update doesn't allow LineageOS to boot. Unless others with varying fw flavours will also pop up with this issue soon.

I will explain events in sequence. First i updated to lineage-20.0-20230323 while still on the previous firmware version, which was S1RDS32.55-106-3 and it worked as usual.

I got reminded of firmware updates and always want the best, so i went to perform the update, to S1RDS32.55-106-3 after detecting and fetching the flavour for my device with "Rescue and Smart Assistant" Lenovo/Motorola software. Btw, the flavour is one that's not yet listed on lolinet firmware page as of writing: DUBAI_G_S1RDS32.55_106_3_subsidy_DEFAULT_regulatory_DEFAULT_cid50_CFC.xml and if you need to check, i uploaded it here, as it came from the fetching tool: https://drive.google.com/file/d/1oAImW2amatdm-o1pGx-VySFqCZnm6One/view?usp=sharing (maybe even lolinet can copy & add it with my help). Note that my device carrier is displayed as "RETEU" versus this DEFAULT DEFAULT, yet lolinet doesn't have a new firmware file for that, it has at most old firmwares from 2022, and the tool fetches that based on my device's IMEI so it's really it.

To keep it simple, i shall say that i flashed the firmware update with both the Lenovo tool and Tiny-Fastboot-Script_v1.9.2 from lolinet. After the firmware update, LineageOS is no longer able to boot. It just loops after the Motorola logo and sometimes says that data is corrupted, prompting a factory reset (which also won't change a thing btw).

It felt like a brick by firmware update, so i investigated, trying many things for hours. I observe:
- To avoid having to clear my phone, i swapped other firmwares in and did other procedures, while preserving the LineageOS data and partitions, hoping to affect the problem so that it resumes booting like nothing happened. This had no results, it remained in bootloop/feeling bricked.

- Reinstalling the firmware (S1RDS32.55-106-3) with that Lenovo tool restores device to the stock Motorola ROM, which works properly under said latest firmware. I expect to be able to install LineageOS from this point onwards.

- Installing LineageOS 20.0-20230323 (from the working stock ROM state, with latest firmware, per the above point) following all install instructions to the letter, and i fall right back into the problem where it won't successfully boot LOS and loops.

So clearly, it wasn't a brick. It's the inability of LOS to boot on my device, with the latest firmware version. I hope you can help me shed a light on this @ThE_MarD, i can help you investigate (but.. i tried all sorts of ways to get any exception logs, even /sys/fs/pstore/console-ramoops doesn't exist (it does until pstore.. so no kernel panics are stored during the bootloop). I also tried adb pull / for getting the entire storage to manually search for logs, after mount system and Enable ADB, but all i get is a console spammed full of warning: stat failed for path and ones like this:

adb E 03-24 18:50:28 7760 4464 errno.cpp:92] failed to convert errno 40 from wire
adb: warning: stat failed for path /proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/dev/stderr: Input/output error

Which persisted even after flashing rooted boot.img (LOS) despite being unable to boot the phone fully. So now, im not sure how to gather useful diagnostic info, but i will use any steps you can provide.

// Edit while writing post: i managed to pull driver messages log file (dmesg) with the command adb shell dmesg > dmesg.log, taken after a few unsuccessful boots. Here it is, hope it contains something you can use: https://0x0.st/HoSj.log

Actually, failure to load a specific part of the firmware ("yupik_ipa_fws" / yupik_ipa_fws.mdt) seems to be the only theme in said log file, maybe it already clears up what's going on?

I hope to get developer support for this soon. Because i don't want to settle for anything but LOS, im not going to use the Edge 30 with original ROM, even though i could as it still works. Downgrading firmware isn't an option with this device (for the technical reasons also written in the warning text of "Tiny Fastboot Script" - basically the versions can only go up, not down)

So for now i fell back on a backup phone, since friday, and i really don't like it. I had hoped for there to be enough days inbetween the start of @ThE_MarD's investigation (isn't it pretty obvious by the yupik_ipa_fws error messages?) and the upcoming LOS build on thursday, as of course one has to also find time to actually push a fix. But we're getting closer to Thursday so i doubt ill be able to use my device for another week and a half?
 
Last edited:

ThE_MarD

Recognized Developer
Dec 10, 2014
3,460
3,937
Grande Prairie
LeEco Le Max 2
Moto X4
@mxz55 I tried updating device firmware to 55-106-3 and surely enough I had boorloop too... So I did have to use the Motorola Rescue and Smart Assistant to get my device working again and then doing the installation instructions from LOS Wiki and then LineageOS booted


I think I could try and make device firmware flashable zips via recovery, but Motorola devices are super picky so I'd be concerned with it causing devices to boorloop too or brick since the radio.img has extra commands...
 
  • Like
Reactions: mxz55

mxz55

Senior Member
Nov 5, 2017
102
118
@mxz55 I tried updating device firmware to 55-106-3 and surely enough I had boorloop too... So I did have to use the Motorola Rescue and Smart Assistant to get my device working again and then doing the installation instructions from LOS Wiki and then LineageOS booted
Then that's where our cases differ.. i did the same process with Motorola/Lenovo rescue tool, after which the phone works on stock ROM (i wouldn't settle for any stock ROM)

But i can never get LineageOS to boot again, after the restore operation to 55-106-3. I also followed all instructions to the letter, and im not new to LOS or installing a custom ROM. Probably a complication of that "DEFAULT" over "RETEU" firmware variant. I must say that i initially flashed "RETAIL" from lolinet (just an oversight) after which i went to "DEFAULT" from the recovery tool.

I hope this isn't the end of using LOS on this device that's great for it.. i liked it so much. Do you have any suggestions on what to do next, or will you try something in the device code for Thursday? It really seems to be in this "yupik ipa fws" part of the firmware, LOS's compatibility with it
@ThE_MarD

* Anyways, given the situation, i advise against other users getting this firmware update for the time being
 
Last edited:

ThE_MarD

Recognized Developer
Dec 10, 2014
3,460
3,937
Grande Prairie
LeEco Le Max 2
Moto X4
@mxz55 we used to ship the yupik IPA fws, but we dropped it due to risk of bricking devices as we described in the commit here


Just to check, have you tried restoring via the Motorola Rescue and Smart Assistant tool I linked above?

Otherwise you could try via TinyFastbootScript to get the previous version of 55-106 and full flash of stock ROM, firmware and format data and then make sure it boots and then try again? There's a chance that maybe there's a version mismatch on your device and maybe rolling back one version could help?
 

mxz55

Senior Member
Nov 5, 2017
102
118
@mxz55

Just to check, have you tried restoring via the Motorola Rescue and Smart Assistant tool I linked above?

Otherwise you could try via TinyFastbootScript to get the previous version of 55-106 and full flash of stock ROM, firmware and format data and then make sure it boots and then try again? There's a chance that maybe there's a version mismatch on your device and maybe rolling back one version could help?
I went over all of that more than once, but let me confirm.. yes, i did restore using the rescue and smart assistant tool multiple times to no avail on LOS's ability to boot.

For the second thing, as i mentioned, downgrading isn't doable with this device. I tried and it kept failing as clearly (some) components can only go version up, not down. I mentioned this also being in Tiny Fastboot Script texts.

Btw, that commit removed the exact yupik file (yupik_ipa_fws.mdt) which my error log is complaining about during boot. I'd guess that in my fw variant (DEFAULT DEFAULT / RETEU) update 55-106-3, there comes a hard reliance on that. Tbh, i see it as a LineageOS responsibility, with official releases, to maintain compatibility with all of the same device it has been released for. I mean, please do something creative or finicky, let's see about a test fix.

@mxz55 we used to ship the yupik IPA fws, but we dropped it due to risk of bricking devices
Maybe that happened because each firmware version requires its own yupik files? In which case you can turn it into a manual step upon individual need (with the yupik files on wiki DL) or use a version detection script.

Btw, if you can't think of any test fix, you can help me to get/extract that .mdt file from the latest firmware (i uploaded the .zip in my first post on this issue) and get it embedded/loadable in LineageOS, like in a debug build or manual step? Then i can move on for now, at least until the issue is figured out and fixed properly.
 
Last edited:

ThE_MarD

Recognized Developer
Dec 10, 2014
3,460
3,937
Grande Prairie
LeEco Le Max 2
Moto X4
@mxz55 it will try to load that IPA FW from vendor/firmware folder, and once that doesn't happen it will load it from the device firmware itself and that should be the version that matches the modem firmware so there's no risk of bricking.

Also, if you check logcat on TWRP? It'll spit out IPA FW failed to load errors too and of course there's no networking on TWRP so it doesn't prevent booting.

Since logcat didn't work, I can try and make a build with a log service that saves logcat to cache partition and see if it helps get logs to see if we can find the true culprit causing your boot to fail and I can make it an engineering build so adb secure will be disabled and not give any unauthorized errors
 
  • Like
Reactions: mxz55 and crubbish

mxz55

Senior Member
Nov 5, 2017
102
118
Since logcat didn't work, I can try and make a build with a log service that saves logcat to cache partition and see if it helps get logs to see if we can find the true culprit causing your boot to fail and I can make it an engineering build so adb secure will be disabled and not give any unauthorized errors
Ok, let's do that. Thanks for the assistance
 
Last edited:
  • Like
Reactions: ThE_MarD

ThE_MarD

Recognized Developer
Dec 10, 2014
3,460
3,937
Grande Prairie
LeEco Le Max 2
Moto X4
I got the build here as engineering and I also did selinux permissive so hopefully you can get logcat or at least pstore or loggy logs. It's a hidden build so the only way to access it is this link just so that other users don't flash it and complain about selinux permissive or the red flashing border effects from the engineering build

adb logcat -d > logcat.log

adb pull /sys/fs/pstore

adb pull /cache/logcat_*

adb pull /cache/kmsg_*


@useroso987 glad you get to enjoy LOS on Dubai (y) as for Magisk? It isn't officially supported but I've heard it works. I haven't tried it either tbh
 
  • Like
Reactions: crubbish

Top Liked Posts

  • There are no posts matching your filters.
  • 3
    @alekksander , mainly mobile data, stuff like NR(5G), VoNR, LTE, VoLTE, WiFi Calling, etc as those might be the most likely to have bugs. Otherwise? Just generally everything else.

    Some good news is MotCamera4 night vision works! Unfortunately though, slow motion has a green static screen, so I'm looking into that...

    Update: slow motion fixed! I can release a new test build with it but that will be all that changed though
    2
    And one last thing.. depending on whether or not a radio firmware upgrade requires forcing modemst partitions to clear or change (as per how it works on stock ROM, where it properly regenerates), i will post the closest to safe way for trying it out, either the next LOS user that wants to update firmware, or perhaps myself in the near future, but then i would take proper precautions as well, like doing it before im all settled with my apps & files.

    So here is the way to go, i figured out how to bypass erasing modemst partitions. Don't use fastboot flash radio radio.img, but:

    1) get Lua runtime, for Windows it's https://sourceforge.net/projects/luabinaries/files/5.4.2/Tools Executables/lua-5.4.2_Win64_bin.zip/download
    2) get unpack script: unpack.lua (paste code and rename to 'unpack.lua' yourself). Put in the same folder as Lua runtime. Credits to @HemanthJabalpuri for original script, i verified it works for other Moto, like here the Edge 30, as well.
    3) Command prompt > "cd [folder of lua runtime/script]"
    4) Enter: lua54.exe unpack.lua radio.img

    These files now get unpacked and appear in the same folder:
    Code:
    NON-HLOS.bin
    fsg.mbn
    radio.pkg.xml
    radio.default.xml
    index.xml

    We will only use the firmware files, which is first 2.

    Proceed to flashing the update (in bootloader):
    Code:
    fastboot flash --slot=all fsg fsg.mbn
    fastboot flash --slot=all modem NON-HLOS.bin
    
    Alternatively, when you prefer to use Motorola fastboot (mfastboot) which doesn't support slots=all, then use this:
    
    mfastboot flash fsg_a fsg.mbn
    mfastboot flash fsg_b fsg.mbn
    
    mfastboot flash modem_a NON-HLOS.bin
    mfastboot flash modem_b NON-HLOS.bin

    Now you did everything that flashing radio.img to "radio" partition would have done, but manually so, bypassing "erase modemst1 & 2" recipe which seems to be causing the bootlooping disaster in this scenario.


    Final edit: i ended up reinstalling OS. As expected, only stock ROM with Lenovo Rescue tool managed to regenerate it on boot, that's not possible in LineageOS due to a bug. I still hope the bug gets investigated and fixed. But now we should make modemst partitions backups for next time touching firmware updates, even with the 'safe' method above, using this procedure:

    Code:
    adb root
    adb shell
    dubai:/ # su
    
    dubai:/ # dd if=/dev/block/bootdevice/by-name/modemst1 of=/sdcard/modemst1-original.img
    dubai:/ # dd if=/dev/block/bootdevice/by-name/modemst2 of=/sdcard/modemst2-original.img
    
    adb pull /sdcard/modemst1-original.img
    adb pull /sdcard/modemst2-original.img
    2
    Heyyo, new test build is up! lineage-20.0-20230606-UNOFFICIAL-dubai contains Android 13 dubai vendor blobs from T1RD33.116-33-3. Please test everything!

    2
    @alekksander the brightness slider is fixed yes, so I removed that note and added inverted colors is broken (don't try it!)

    @Kkjin yes the plan is to get LineageOS working on rtwo (Motorola Edge X40, Edge 40 Pro and Edge Plus (2023) but this build for Edge 30 is not compatible

    There's still a lot of work to be done though, I'm still sorting through the kernel. The thread for rtwo development is here

    1
    And how about creating a dedicated topic for all efforts regarding LOS on the Edge 40 Pro, in its own forum, so we can bring ROM thread for the Edge 30 back on topic. If a development topic is made, i will port over what's been written here, to there, and people can follow all advancements to the cause. cc @ThE_MarD regarding topic.

    It's done, see: https://forum.xda-developers.com/t/...r-the-edge-40-pro-edge-2023-moto-x40.4584541/

    So the subject will be moved out to there. I also included some news (on the process) in that topic, that hasn't been brought in here yet. Anyone that wants to follow this thing, subscribe to it.
  • 10
    2okPze5.png



    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 restores 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 our Gerrit Code Review.



    Code:
    #include
    
    /*
    * 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.
    */


    SUPPORTED DEVICES

    - dubai (XT2203-1)


    HOW TO INSTALL LINEAGEOS WITH LINEAGE RECOVERY

    - Make sure your phone is running firmware from at least 12-S1RD32M.55-67. If not? Please download and flash it first before installing this ROM.

    Please follow the official instructions on the LineageOS Wiki here:


    HOW TO UPDATE LINEAGEOS WITH LINEAGE RECOVERY

    Please follow the official instructions on the LineageOS Wiki here:

    KNOWN BUGS/ISSUES
    • Widevine L1 lost upon bootloader unlock (reverting to stock ROM and relocking bootloader does restore it)
    • Intermittent HBM flicker when you use UDFPS when screen is off (screen will flash brightly for a split second)
    • Setting 48Hz minimum refresh rate with anti-flicker (DC Dimming) can cause gamma flickering and might cause UDFPS accuracy issues. Either bump minimum refresh rate to 60Hz or disable anti-flicker. Motorola only ever intended 48Hz for peek display mode and not regular use
    • Inverted colors doesn't work. It will cause the screen to mostly go black and then you need to remember where to tap to disable inverted colors

    MAIN DOWNLOADS

    Lineage:
    - Official:

    - Unofficial:



    GOOGLE APPS (GAPPS) DOWNLOADS

    - MindTheGapps:
    http://downloads.codefi.re/jdcteam/javelinanddart/gapps




    GOOGLE CAMERA (GCAM) DOWNLOADS

    Google Camera:

    Please check the Telegram Edge 30 Photography group:



    DEVELOPER RESOURCES






    HOW TO CONTRIBUTE

    Send your patches up for review: https://review.lineageos.org/

    Read the guides on the LineageOS Wiki: https://wiki.lineageos.org/

    Source Code: https://github.com/LineageOS


    DONATIONS

    5
    Heyyo! W00t! Happy new years my friends!

    Attached is pictures of LineageOS 20 on dubai
    4
    Heyyo @SaltyLobo, welcome! :)

    So if you brick? Motorola has blankflash. It's essentially their method to QFIL. It is shared on this website:


    As for reflashing stock? The safest method is Motorola Rescue and Smart Assistant tool


    And then you can try to relock your bootloader from bootloader via fastboot. I haven't tried it but most users say it works fine as long as your device is properly reflashed stock ROM which is why I say to use RSA Tool as it will reflash the proper stock variant of your device.
    3
    @ballin_ wow I'm feeling the love and I'll pass on the word to the other devs! Thanks for the kind words! :)

    Yeah I'm definitely a fan of Motorola since even before I got my Edge 30 from them since the Moto x4 is a super solid budget device so it's easy to see why they're doing so good on budget devices and the Edge 30 is a really darn good high end device as everything it does is done really well and yeah they've been quite kind to the custom ROM scene with kernel source code releases and they just released a new tag recently so we will be working on updating it too.

    I'll definitely be keeping my Edge 30 for quite a few years as well since it does everything I need. (y)

    There's also a few more custom ROMs in the works for dubai as I've seen a few test builds go up on our Telegram community and hopefully more to come too
    3
    Heyyo! Well looks like XDA gave us our own forum section! Good news indeed (y)