Android RIL driver for Android 14

It didn’t tell us anything.
You have added something about the sepolicy and there is some conflicts.

I have set the below configuration in device/rockchip/common/4g_modem/manifest.xml.

android.hardware.radio
hwbinder @1.4::IRadio/slot1 @1.2::ISap/slot1

we got some error when start rild

RadxaRock5C:/ # logcat | grep -i ril                                                                                                                                                                     
01-01 00:00:09.040   457   457 F linker  : CANNOT LINK EXECUTABLE "/vendor/bin/hw/rild": library "android.hardware.radio@1.2.so" not found: needed by /vendor/lib64/libril.so in namespace (default)
01-01 00:00:18.666     1     1 I init    : starting service 'ril-daemon'...
01-01 00:00:13.401   634   634 F linker  : CANNOT LINK EXECUTABLE "/vendor/bin/hw/rild": library "android.hardware.radio@1.2.so" not found: needed by /vendor/lib64/libril.so in namespace (default)
01-01 00:00:18.680     1     1 I init    : Service 'ril-daemon' (pid 634) exited with status 1
01-01 00:00:18.680     1     1 I init    : Sending signal 9 to service 'ril-daemon' (pid 634) process group...
01-01 00:00:23.668     1     1 I init    : starting service 'ril-daemon'...

For such errors,

CANNOT LINK EXECUTABLE "/vendor/bin/hw/rild": library "android.hardware.radio@1.2.so" not found: needed by /vendor/lib64/libril.so in namespace

You can add

PRODUCT_PACKAGS += \
                      android.hardware.radio@1.2.vendor

ql-ril.conf. where we need to add and configure in android source. because you’r not mentioning for given document and what change needs to do enable that file

The ql-ril.conf should be placed in vendor/etc/.

in 4g_modem.mk we don’t have a libquectel-ril.so file. how to get this. and android.hardware.radio@1.5 not generating after AOSP build

PRODUCT_PROPERTY_OVERRIDES += \
    vendor.rild.libpath=/vendor/lib64/libquectel-ril.so

libquectel-ril.so is the libreference-ril.so actually.

I have some error

 logcat | grep -i ril
01-01 00:01:49.374     1     1 E init    : Control message: Could not find 'rild' for ctl.start from pid: 2149 (start rild)
01-01 00:02:26.991     1     1 I init    : Service 'ril-daemon' (pid 464) received signal 15
01-01 00:02:26.991     1     1 I init    : Sending signal 9 to service 'ril-daemon' (pid 464) process group...
01-01 00:02:26.994     1     1 I init    : starting service 'ril-daemon'...
01-01 00:02:31.662     1     1 E init    : Control message: Could not find 'rild' for ctl.start from pid: 2157 (start rild)

Just from this log I don’t know why the rild restart.
Please check the logcat -b all to find why the rild is restarting.


log_rild.txt (519.1 KB)

i have attached log file and not enabled Calls&SMS option for your reference.
and also getting below error while start rild service

RadxaRock5C:/ # start rild
Unable to start service 'rild'
See dmesg for error reason.
1|RadxaRock5C:/ # getprop | grep ril
[init.svc.ril-daemon]: [running]
[init.svc_debug_pid.ril-daemon]: [2151]
[ril.function.dataonly]: [1]
[ro.boot.noril]: [true]
[ro.boottime.ril-daemon]: [7649994255]
[ro.ril.ecclist]: [112,911]

The log is not helpful.
Please provide the log with

logcat -b all

If the log is too large you can send me the log via message.

facing this issue while start rild. please give me solution to resolve this issue

RadxaRock5C:/ # start rild
Unable to start service 'rild'
See dmesg for error reason.
1|RadxaRock5C:/ # getprop | grep ril
[init.svc.ril-daemon]: [running]
[init.svc_debug_pid.ril-daemon]: [2151]
[ril.function.dataonly]: [1]
[ro.boot.noril]: [true]
[ro.boottime.ril-daemon]: [7649994255]
[ro.ril.ecclist]: [112,911]

The rild is running.

It should be set to false or no.

1 Like

we don’t have a Mobile data option in android settings and how to enable mobile data option

RadxaRock5C:/ # setenforce 0
RadxaRock5C:/ # stop ril-daemon 
RadxaRock5C:/ # start ril-daemon
RadxaRock5C:/ # getprop | grep ril
[init.svc.ril-daemon]: [running]
[init.svc_debug_pid.ril-daemon]: [2337]
[ril.function.dataonly]: [1]
[ro.boot.noril]: [false]
[ro.boottime.ril-daemon]: [8157943514]

It is not that easy to make the phone work.
please provide the log.
logcat -b all

I have enable mobile data in config.xml but we can’t able to proceed next step
true


quectel_debug_log.zip (574.0 KB)

IRadio 1.5 or IRadio 1.4?
Which one you set in the manifest.xml and which libril.so you tried?

we are using radio1.5
device/rockchip/common/modules/4g_modem/manifest.xml

<manifest version="1.0" type="device">
    <hal format="hidl">
        <name>android.hardware.radio</name>
        <transport>hwbinder</transport>
        <fqname>@1.5::IRadio/slot1</fqname>
        <fqname>@1.2::ISap/slot1</fqname>
    </hal>
    <hal format="hidl">
        <name>android.hardware.secure_element</name>
        <version>1.2</version>
        <transport>hwbinder</transport>
        <interface>
            <name>ISecureElement</name>
            <instance>SIM1</instance>
        </interface>
        <fqname>@1.2::ISecureElement/SIM1</fqname>
    </hal>
</manifest>

device/rockchip/common/modules/4g_modem.mk

PRODUCT_PACKAGES += \
    CarrierDefaultApp \
    CarrierConfig \
    rild \
    libreference-ril.so \
    dhcpcd

PRODUCT_COPY_FILES += vendor/rockchip/common/phone/etc/apns-full-conf.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/apns-conf.xml \
        device/rockchip/common/4g_modem/etc/ql-ril.conf:$(TARGET_COPY_OUT_VENDOR)/etc/ql-ril.conf



PRODUCT_PACKAGES += android.hardware.radio@1.5-service

PRODUCT_PACKAGES += \
   android.hardware.secure_element@1.0.vendor \
   android.hardware.secure_element@1.1.vendor \
   android.hardware.secure_element@1.2.vendor \
   android.hardware.radio@1.5.vendor  \
   android.hardware.radio@1.4.vendor  \
   android.hardware.radio@1.3.vendor  \
   android.hardware.radio@1.2.vendor  \
   android.hardware.radio.config@1.2.vendor  \
   android.hardware.radio.config@1.1.vendor  \
   android.hardware.radio.config@1.0.vendor  \


PRODUCT_PROPERTY_OVERRIDES += \
    ro.boot.noril=false \
    ro.telephony.default_network=9 \
    rild.libpath=/vendor/lib64/libreference-ril.so \
    rild.libargs=-d /dev/ttyUSB2 

DEVICE_MANIFEST_FILE += device/rockchip/common/4g_modem/manifest.xml
DEVICE_PACKAGE_OVERLAYS += device/rockchip/common/overlay_wifi_only

ifeq ($(strip $(TARGET_ARCH)), arm64)
PRODUCT_PROPERTY_OVERRIDES += \
    vendor.rild.libpath=/vendor/lib64/libreference-ril.so


PRODUCT_COPY_FILES += \
    device/rockchip/common/4g_modem/lib64/libreference-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libreference-ril.so


PRODUCT_COPY_FILES += \
    $(LOCAL_PATH)/../4g_modem/bin64/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd \
    $(LOCAL_PATH)/../4g_modem/lib64/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib64/librk-ril.so
else
PRODUCT_PROPERTY_OVERRIDES += \
    vendor.rild.libpath=/vendor/lib/librk-ril.so

PRODUCT_COPY_FILES += \
    $(LOCAL_PATH)/../4g_modem/bin32/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd \
    $(LOCAL_PATH)/../4g_modem/lib32/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib/librk-ril.so
endif

Please the RIL libs I sent.