[Moto G7 Power ROMs, Kernels, Recoveries, & Other D] Greek2me:
Well, I didn't brick my phone, but not much else happened either.

I'm convinced that IMS is really the key here. It seems to be unable to register:

05-16 09:59:46.008 2098 11014 D QImsService: ImsConfigImpl : setConfig :: item=26 value=1
05-16 09:59:46.009 2098 11014 W QImsService: ImsConfigImpl : Ignore VoWiFi Roaming enable/disable
05-16 09:59:46.009 2098 11014 D ImsConfigImplBase: Set provision value of 26 to 1 failed with error code 1
05-16 09:59:46.009 2098 11013 D QImsService: ImsConfigImpl : setConfig :: item=27 value=2
05-16 09:59:46.010 2098 11013 I QImsService: ImsSenderRxr : [0105]> REQUEST_SET_IMS_CONFIG [SUB0]
05-16 09:59:46.011 2098 11013 I QImsService: ImsSenderRxr : REQUEST_SET_IMS_CONFIG request to ImsRadio: token 105 item:29 boolValue:false intValue:2 strValue:null errorCause:0
05-16 09:59:46.013 2098 2265 I QImsService: ImsRadioResponse : Set config response received.
05-16 09:59:46.013 2098 2265 I QImsService: IFRequest : [0105]< REQUEST_SET_IMS_CONFIG error: 2
05-16 09:59:46.013 2098 2501 I QImsService: ImsConfigImplHandler : Message received: what = 1
05-16 09:59:46.013 2098 2501 I QImsService: ImsConfigImpl : Notifyall
05-16 09:59:46.014 2098 11013 D QImsService: ImsConfigImpl : sendSetConfigRequest item=27, prev_value=-1
05-16 09:59:46.014 2098 11013 D ImsConfigImplBase: Set provision value of 27 to 2 failed with error code 1
05-16 09:59:46.021 2098 2098 I ImsManager: update RTT: settings value: false always-on carrierconfig: false
05-16 09:59:46.022 2098 11015 I ImsManager: Setting RTT enabled to false
05-16 09:59:46.022 2098 11015 D QImsService: ImsConfigImpl : setConfig :: item=66 value=0
05-16 09:59:46.024 2098 11015 I QImsService: ImsSenderRxr : [0106]> REQUEST_SET_IMS_CONFIG [SUB0]
05-16 09:59:46.024 2098 11015 I QImsService: ImsSenderRxr : REQUEST_SET_IMS_CONFIG request to ImsRadio: token 106 item:70 boolValue:false intValue:0 strValue:null errorCause:0
05-16 09:59:46.027 2098 2265 I QImsService: ImsRadioResponse : Set config response received.
05-16 09:59:46.027 2098 2265 I QImsService: IFRequest : [0106]< REQUEST_SET_IMS_CONFIG error: 2
05-16 09:59:46.028 2098 2501 I QImsService: ImsConfigImplHandler : Message received: what = 1
05-16 09:59:46.028 2098 2501 I QImsService: ImsConfigImpl : Notifyall
05-16 09:59:46.028 2098 11015 D QImsService: ImsConfigImpl : sendSetConfigRequest item=66, prev_value=-1
05-16 09:59:46.028 2098 11015 D ImsConfigImplBase: Set provision value of 66 to 0 failed with error code 1
05-16 09:59:46.031 2098 2098 I ImsManager: changeMmTelCapability: changing capabilities for sub: 2, request: CapabilityChangeRequest{mCapabilitiesToEnable={CapabilityPair{mCapability=1, radioTech=0}, CapabilityPair{mCapability=1, radioTech=1}, CapabilityPair{mCapability=2, radioTech=0}, CapabilityPair{mCapability=4, radioTech=0}}, mCapabilitiesToDisable={}}
05-16 09:59:46.035 9614 10967 W MessagingApp: PhoneUtils.getSelfRawNumber: subInfo is null for 1
05-16 09:59:46.051 2098 2098 V QImsService: ImsSenderRxr : SetServiceStatus capabilityStatus: 4 0 1
05-16 09:59:46.051 2098 2098 I QImsService: ImsRadioUtils : buildServiceStatusInfo srvType = 25 rat = 14 enabled = 2
05-16 09:59:46.051 2098 2098 I QImsService: ImsSenderRxr : [0107]> REQUEST_SET_SERVICE_STATUS [SUB0]
05-16 09:59:46.051 2098 2098 I QImsService: ImsSenderRxr : REQUEST_SET_SERVICE_STATUS to ImsRadio: token -107
05-16 09:59:46.051 2098 2098 W QImsService: ImsSenderRxr : mImsRadio V1.6 is null. invoking mImsRadio.setServiceStatus()
05-16 09:59:46.052 2098 2098 V QImsService: ImsSenderRxr : SetServiceStatus capabilityStatus: 2 0 1
05-16 09:59:46.052 2098 2098 I QImsService: ImsRadioUtils : buildServiceStatusInfo srvType = 3 rat = 14 enabled = 2
05-16 09:59:46.052 2098 2098 I QImsService: ImsSenderRxr : [0108]> REQUEST_SET_SERVICE_STATUS [SUB0]
05-16 09:59:46.052 2098 2098 I QImsService: ImsSenderRxr : REQUEST_SET_SERVICE_STATUS to ImsRadio: token -108
05-16 09:59:46.052 2098 2098 W QImsService: ImsSenderRxr : mImsRadio V1.6 is null. invoking mImsRadio.setServiceStatus()
05-16 09:59:46.053 2098 2098 V QImsService: ImsSenderRxr : SetServiceStatus capabilityStatus: 1 0 1
05-16 09:59:46.053 2098 2098 I QImsService: ImsRadioUtils : buildServiceStatusInfo srvType = 0 rat = 14 enabled = 2
05-16 09:59:46.053 2098 2098 I QImsService: ImsSenderRxr : [0109]> REQUEST_SET_SERVICE_STATUS [SUB0]
05-16 09:59:46.053 2098 2098 I QImsService: ImsSenderRxr : REQUEST_SET_SERVICE_STATUS to ImsRadio: token -109
05-16 09:59:46.053 2098 2098 W QImsService: ImsSenderRxr : mImsRadio V1.6 is null. invoking mImsRadio.setServiceStatus()
05-16 09:59:46.054 2098 2098 V QImsService: ImsSenderRxr : SetServiceStatus capabilityStatus: 1 1 1
05-16 09:59:46.054 2098 2098 I QImsService: ImsRadioUtils : buildServiceStatusInfo srvType = 0 rat = 19 enabled = 2
05-16 09:59:46.054 2098 2098 I QImsService: ImsSenderRxr : [0110]> REQUEST_SET_SERVICE_STATUS [SUB0]
05-16 09:59:46.054 2098 2098 I QImsService: ImsSenderRxr : REQUEST_SET_SERVICE_STATUS to ImsRadio: token -110
05-16 09:59:46.054 2098 2098 W QImsService: ImsSenderRxr : mImsRadio V1.6 is null. invoking mImsRadio.setServiceStatus()
05-16 09:59:46.055 2098 2265 I QImsService: ImsRadioResponse : SetServiceStatus response received.
05-16 09:59:46.055 2098 2265 I QImsService: IFRequest : [0107]< REQUEST_SET_SERVICE_STATUS error: 2
05-16 09:59:46.056 2098 2501 I QImsService: ImsConfigImplHandler : Message received: what = 2
05-16 09:59:46.056 2098 2501 D QImsService: ImsServiceSub : [0] onSetCapabilityValueFailure :: capability=4 radioTech=0 reason=ERROR_GENERIC
05-16 09:59:46.058 2098 2265 I QImsService: ImsRadioResponse : SetServiceStatus response received.
05-16 09:59:46.058 2098 2265 I QImsService: IFRequest : [0108]< REQUEST_SET_SERVICE_STATUS error: 2
05-16 09:59:46.059 2098 2501 I QImsService: ImsConfigImplHandler : Message received: what = 2
05-16 09:59:46.059 2098 2501 D QImsService: ImsServiceSub : [0] onSetCapabilityValueFailure :: capability=2 radioTech=0 reason=ERROR_GENERIC
05-16 09:59:46.059 2098 2265 I QImsService: ImsRadioResponse : SetServiceStatus response received.
05-16 09:59:46.059 2098 2265 I QImsService: IFRequest : [0109]< REQUEST_SET_SERVICE_STATUS error: 2
05-16 09:59:46.060 2098 2501 I QImsService: ImsConfigImplHandler : Message received: what = 2
05-16 09:59:46.060 2098 2501 D QImsService: ImsServiceSub : [0] onSetCapabilityValueFailure :: capability=1 radioTech=0 reason=ERROR_GENERIC
05-16 09:59:46.060 2098 2265 I QImsService: ImsRadioResponse : SetServiceStatus response received.
05-16 09:59:46.061 2098 2265 I QImsService: IFRequest : [0110]< REQUEST_SET_SERVICE_STATUS error: 2
05-16 09:59:46.061 2098 2501 I QImsService: ImsConfigImplHandler : Message received: what = 2
05-16 09:59:46.061 2098 2501 D QImsService: ImsServiceSub : [0] onSetCapabilityValueFailure :: capability=1 radioTech=1 reason=ERROR_GENERIC
05-16 09:59:46.063 2098 2098 I QImsService: ImsService : enableIms :: slotId=0
05-16 09:59:46.064 2098 2098 I QImsService: ImsSenderRxr : [0111]> REQUEST_IMS_REG_STATE_CHANGE [SUB0]
05-16 09:59:46.064 2098 2098 I QImsService: ImsSenderRxr : REQUEST_IMS_REG_STATE_CHANGE request to ImsRadio - token:111 RegState1
05-16 09:59:46.066 2098 2265 I QImsService: ImsRadioResponse : Got registration change response from ImsRadio.
05-16 09:59:46.066 2098 2265 I QImsService: IFRequest : [0111]< REQUEST_IMS_REG_STATE_CHANGE error: 2

What is that error 2 on REQUEST_IMS_REG_STATE_CHANGE?

Yes, exactly! I called T-Mobile and they confirmed that they do allow non-certified devices to access features like VoLTE and Wifi Calling. (although the service rep sounded slightly confused so who knows)

Thank you! Right now I barely know what I'm looking for though. Does the stock image have a com.motorola.ims package, or similar? If so, that might be useful.

edit:

Apologies for the very long post. I discovered that for Verizon phones, LOS is actually specifying a modem configuration: https://github.com/LineageOS/androi...ob/lineage-17.1/rootdir/etc/init.ocean.rc#L60

LOS then uses that *.mbn file to configure the modem. I bet that the stock ROM does this configuration. However, for most G7 Power variants I don't see any configuration being loaded. (see above link)

These are the config files available:

ocean:/ # ls /vendor/fsg
0.img.gz cht_twn.mbn entel_chl.mbn movistar_per.mbn orange_fra.mbn tele2_nld.mbn tmo_aut.mbn vf_esp_volte.mbn
acglte_usa.mbn claro_arg.mbn entel_per.mbn movistar_ury.mbn orange_rou.mbn tele2_rus.mbn tmo_cze.mbn vf_nld.mbn
airtel_ind_volte.mbn claro_bra.mbn etisalat_are.mbn mts_rus.mbn orange_svk.mbn tele2_swe.mbn tmo_deu.mbn vf_ptg.mbn
ais_tha_volte.mbn claro_chl.mbn fido_can_ims.mbn o2_cze.mbn personal_arg.mbn telekom_hrv.mbn tmo_deu_nonvolte.mbn vha_aus_volte.mbn
altan_mex_volte.mbn claro_col.mbn freedom_can_ims.mbn o2_deu.mbn play_pol.mbn telekom_hun_volte.mbn tmo_nld_volte.mbn videotron_can_ims.mbn
apt_twn.mbn claro_per.mbn hi3g_dnk.mbn o2_svk_volte.mbn porto_connecta_bra_wfc.mbn telekom_svk_volte.mbn tmo_pol.mbn vivacom_bgr.mbn
att_cc_usa.mbn claro_ury_wfc.mbn hi3g_swe.mbn ocean rjio_ind.mbn telenor_bgr_volte.mbn tmo_usa_gci.mbn vivo_bra.mbn
att_mex_volte.mbn cmcc_chn.mbn hutchison_hkg_volte.mbn ocean_1.img.gz rogers_can_ims.mbn telenor_dnk.mbn tmo_usa_ims.mbn vodafone_ind_volte.mbn
att_usa_cricket_default.mbn cosmote_grc.mbn idea_volte.mbn ocean_2.img.gz sasktel_can_ims.mbn telenor_nor.mbn tmo_usa_ims_default.mbn vzw_comcast.mbn
att_usa_cricket_retail.mbn csl_hkg_volte.mbn lost+found ocean_3.img.gz sbm_jpn_volte.mbn telenor_swe.mbn tmo_usa_viaero.mbn vzw_usa.mbn
att_usa_firstnet.mbn ct_chn.mbn lra_gid_usa.mbn ocean_dsds_2.img.gz sfr_fra.mbn telia_dnk.mbn trac_att_usa.mbn vzw_usa_retail.mbn
att_usa_ims.mbn cu_chn.mbn m1_sgp.mbn ocean_dsds_3.img.gz sprint_usa.mbn telia_fin.mbn trac_tmo_sm.mbn vzw_visible.mbn
att_usa_ims_default.mbn deg2_nzl_wfc.mbn mcfg_summary.xml ocean_dsds_4.img.gz sprint_usa_ims.mbn telia_nor.mbn trac_tmo_usa.mbn wom_chl.mbn
att_usa_retail.mbn digim_rou.mbn megafon_rus.mbn ocean_dsds_brazil.img.gz sprint_usa_ims_default.mbn telia_swe.mbn trac_tmo_wfm.mbn zain_sau.mbn
avantel_col_volte.mbn docomo_jpn_volte.mbn movistar_arg.mbn ocean_dsds_latam.img.gz super.mbn telstra_aus.mbn trac_vzw_usa.mbn
beeline_rus.mbn dtac_tha_volte.mbn movistar_chl.mbn ocean_dsds_row.img.gz superset.mbn telus_can_ims.mbn truemove_tha_volte.mbn
bell_can_ims.mbn ee_gbr.mbn movistar_col.mbn ocean_latam.img.gz superset_na.mbn tigo_col_volte.mbn usc_usa_ims.mbn
bouygues_fra.mbn elisa_fin.mbn movistar_ecu_volte.mbn ocean_na.img.gz tdc_dnk.mbn tim_bra.mbn vf_cze_volte.mbn
bundle_release emea_apac_super.mbn movistar_mex_volte.mbn ocean_row.img.gz telcel_mex.mbn tim_ita.mbn vf_deu.mbn

Now I just need to figure out how to load the T-Mobile one.