RIL Library not provided by quectel

it depends on your Build Structure, you need to add multiple Parameters.
lemme show your my way to do it:

i placed all my stuff in /vendor/quectel/ec25

vendor/quectel/ec25$ cat BoardConfigPartial.mk

BUILD_WITH_EC25 := true
BOARD_HAS_GPS := true
BOARD_HAVE_DONGLE := true

vendor/quectel/ec25$ cat device-partial.mk

ifeq ($(BUILD_WITH_EC25),true)

PRODUCT_PACKAGES += \
       rild \

## check if needed

PRODUCT_COPY_FILES += \
        vendor/quectel/ec25/ril/libreference-ril.so:vendor/lib64/libquectel-ril.so \
        vendor/quectel/ec25/ril/ql-ril.conf:system/etc/ql-ril.conf \
        vendor/quectel/ec25/ril/chat:system/bin/chat \
        vendor/quectel/ec25/tools/QAndroidLog:system/bin/QAndroidLog \
        vendor/quectel/ec25/tools/QFirehose:system/bin/QFirehose \
        vendor/quectel/ec25/ril/ip-up:system/etc/ppp/ip-up \
        vendor/quectel/ec25/ril/ip-down:system/etc/ppp/ip-down \
        vendor/quectel/ec25/ril/atinout:system/bin/atinout \
        vendor/quectel/ec25/apns-conf.xml:system/etc/apns-conf.xml \
        frameworks/native/data/etc/android.hardware.telephony.cdma.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.cdma.xml \
        frameworks/native/data/etc/android.hardware.telephony.gsm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.telephony.gsm.xml \
        frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml \
        frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
        frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml

# RILD Related
PRODUCT_PROPERTY_OVERRIDES += \
        hw.nophone=no \
        ro.boot.noril=no \
        ro.radio.noril=no \
        ro.telephony.default_network=10 \
        vendor.rild.libpath=/vendor/lib64/libquectel-ril.so \
        vendor.rild.libargs=-d/dev/ttyUSB2 \
        keyguard.no_require_sim=true \
        ril.function.dataonly=0
#       ril.subscription.types=NV,RUIM \

# Phone Related
PRODUCT_PROPERTY_OVERRIDES += \
        persist.telephony.support.ipv6=1 \
        persists.telephony.support.ipv4=1 \
        telephony.lteOnGsmDevice=1 \
        telephony.lteOnCdmaDevice=0 \
        ro.telephony.call_ring.delay=0 \
        ro.ril.enable.amr.wideband=1 \
        ring.delay=0 \
        ro.config.vc_call_steps=20 \
        persist.cust.tel.eons=1 \
        ro.config.hw_fast_dormancy=1 \
        ro.radio.networkmode=enable \
        persist.audio.fluence.voicecall=false

PRODUCT_PROPERTY_OVERRIDES += \
        ro.HOME_APP_ADJ=1 \
        persist.sys.use_dithering=1 \
        ro.config.nocheckin=1 \
        persist.adb.tcp.port=5555 \
        hw.nobattery=true \
        ro.com.android.dataroaming=false
        ro.telephony.get_imsi_from_sim=true \
        ro.telephony.ril.config=simactivation

endif ### BUILD_WITH_EC25 ###

ifeq ($(BOARD_HAS_GPS),true)

PRODUCT_PACKAGES += \
        android.hardware.gnss@1.0-impl \
        android.hardware.gnss@1.0-service

PRODUCT_COPY_FILES += \
        vendor/quectel/ec25/gps/gps.default.so:vendor/lib64/hw/gps.default.so \
        vendor/quectel/ec25/gps/gps_cfg.inf:system/etc/gps_cfg.inf \
        vendor/quectel/ec25/gps/gps.cfg:system/etc/gps.cfg \
        frameworks/native/data/etc/android.hardware.location.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.xml \
        frameworks/native/data/etc/android.hardware.location.gps.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.location.gps.xml

PRODUCT_PROPERTY_OVERRIDES += \
    ro.kernel.android.gps=ttyUSB1 \
    ro.kernel.android.gps.speed=115200 \
    ro.kernel.android.gps.max_rate=1

endif ### BUILD_WITH_EC25_GPS ###

in your BoardConfig.mk

-include vendor/quectel/ec25/BoardConfigPartial.mk

in your device.mk

$(call inherit-product-if-exists, vendor/quectel/ec25/device-partial.mk)

  ifeq ($(BUILD_WITH_EC25),true)
    PRODUCT_COPY_FILES += \
        $(LOCAL_PATH)/init.quectel.rc:root/init.quectel.rc
    endif

in your init.device.rc

import init.quectel.rc

init.quectel.rc make shure you comment all other rild due duplicates

service vendor.ril-daemon /vendor/bin/hw/rild -l /vendor/lib64/libquectel-ril.so
    class main
    user root
    group radio vpn cache inet misc audio log readproc wakelock
    capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW

# hardware/interfaces/gnss/1.0/default/android.hardware.gnss@1.0-service.rc
service gnss_service /vendor/bin/hw/android.hardware.gnss@1.0-service
    class hal
    user gps
    group system gps radio

in your manifest.xml

    <hal format="hidl">
        <name>android.hardware.broadcastradio</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IBroadcastRadioFactory</name>
            <instance>default</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.radio.deprecated</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IOemHook</name>
            <instance>slot1</instance>
        </interface>
    </hal>
    <hal format="hidl">
        <name>android.hardware.radio</name>
        <transport>hwbinder</transport>
        <version>1.1</version>
        <interface>
            <name>IRadio</name>
            <instance>slot1</instance>
        </interface>
        <interface>
            <name>ISap</name>
            <instance>slot1</instance>
        </interface>
    </hal>

Regards,

Brian