Android RIL driver for Android 15 Issue

Hi technical team,

I am using the EC25 Module with IMX8MP running Android 15. Since Android 15 has deprecated VNDK libraries, I am encountering an issue when starting vendor.ril-daemon.

The following error is thrown:
" dlopen failed: library “libnetutils.so” not found: needed by /vendor/lib64/libquectel-ril.so in namespace (default) "

I suspect this issue is due to the removal of VNDK, which is causing the missing dependency.

Could you please advise on possible solutions?

Please try the AIDL RIL driver. I have sent you the guide and the RIL libs.

1 Like

Hello, I just bought the EC25 module and plan to integrate it into AOSP 15 aswell.
Would you be so kind to send me the AIDL RIL driver package (libraries and guide) for Android 15 aswell?

Also, do you have any documentation on audio integration with Android for the module?

Cheers

Please check the
Quectel_Android_RIL_Driver_V4.0.8_aidl_20241113_01.zip
Quectel_Android_RIL_Driver_User_Guide_V2.2.pdf

1 Like

Hi,
Could you also send me the AIDL RIL driver and the corresponding user guide?
I’m currently using the Quectel EC20 module on iMX8MM and running Android 15.

Thanks.

(post deleted by author)

Hi,

We are using the Quectel_Android_RIL_Driver_radio1.5_V3.7 libraries in our Android setup. The Android GUI is not detecting the SIM card.

Below is the logcat output for your reference.
EM06-LTE-Android15.zip (3.3 KB)

Could you please help us identify the issue or guide us on the correct RIL integration steps?

Thanks & Regards

You need to set the IRadio 1.5 in the manifest.xml and also put the libril.so into the /vendor/lib64/.

Please check the Quectel_Android_RIL_Driver_User_Guide_V2.2.pdf.

Hi ,
Could you please share the following two files for our Android 15 AIDL-based RIL integration? Quectel_Android_RIL_Driver_V4.0.8_aidl_20241113_01.zip Quectel_Android_RIL_Driver_User_Guide_V2.2.pdf

Thanks & Regards

Please check the GitHub - QuectelWB/Quectel_RIL at aidl.

Hi,
I have already checked the QuectelWB/Quectel_RIL (aidl branch) on GitHub and tried integrating it, but I am still getting the same crash continuously.
Below is the crash log from rild:
11-19 05:02:38.244 1 1 I init : starting service ‘ril-daemon’… 11-19 05:02:38.263 1 1 I init : … started service ‘ril-daemon’ has pid 7431 11-19 05:02:37.823 7431 7431 D RILD : RIL Daemon Started 11-19 05:02:37.824 7431 7431 D RILD : RILd param count=3 11-19 05:02:37.826 7431 7431 D RILD : RIL_Init argc = 3 clientId = 0 11-19 05:02:37.826 7431 7431 D RILC : Quectel RIL Version: Quectel_Android_RIL_Driver_V4.1.0 11-19 05:02:37.827 7431 7431 F libc : Fatal signal 6 (SIGABRT) in tid 7431 (rild) 11-19 05:02:37.959 7436 7436 F DEBUG : Cmdline: /vendor/bin/hw/rild -l /vendor/lib64/hw/libreference-ril-quec.so 11-19 05:02:37.960 7436 7436 F DEBUG : #05 pc 0000000000030114 /vendor/lib64/hw/libreference-ril-quec.so (RIL_Init+848) 11-19 05:02:37.960 7436 7436 F DEBUG : #06 pc 00000000000043e8 /vendor/bin/hw/rild (main+776) 11-19 05:02:38.487 1 1 E init : process ‘ril-daemon’ exited 4 times in 4 minutes

Please provide the complete log.
As I guess, some libs such as android.hardware.radio might be missing.
And also check that

strings /vendor/lib64/libril.so | grep Quectel
strings  /vendor/lib64/hw/libreference-ril-quec.so | grep Quectel

Please find the output of the commands and the full log below:
strings /vendor/lib64/libril.so | grep Quectel
Quectel_Android_Libril_v4.0.5

strings /vendor/lib64/hw/libreference-ril-quec.so | grep Quectel
Unsupport Android Version %d by Quectel Now!!!
if you access module by USB interface, i will ingore it, for Quectel RIL will auto detect AT and PPP ports
Quectel RIL Version: Quectel_Android_RIL_Driver_V4.1.0
Quectel Product Revision: %s
Quectel_Android_RIL_Driver_V4.1.0
QuectelCheckAndroidFrameworkSettingCallback
Quectel Check: do you install %s ?
Quectel Check: ro.radio.ril must be no, check files /.prop or /system//prop

And below is the complete log:
EMo6-log.txt (2.5 MB)

Please try the Quectel_Android_RIL_Driver_aidl2_V4.3.zip.

Can you please share the Quectel_Android_RIL_Driver_aidl2_V4.3.zip file

I have sent the private message.

Thank you for the support.

I have tried with Quectel_Android_RIL_Driver_aidl2_V4.3.zip — the module is loading but I am not able to make call / send SMS / or use mobile data.

These packages I have added in the board.mk file:

PRODUCT_PACKAGES += \
    TelephonyProvider \
    telephony-common  \
    dhcptool \
    rild    \
    messaging \
    Dialer  \
    TeleService \
    Telecom

Full log is attached for your reference
EM06-full-log.txt (2.3 MB)
.

Have you added the

      <hal format="aidl">
          <name>android.hardware.radio.config</name>
      <version>2</version>
          <fqname>IRadioConfig/default</fqname>
      </hal>
      <hal format="aidl">
          <name>android.hardware.radio.data</name>
      <version>2</version>
          <fqname>IRadioData/slot1</fqname>
      </hal>
      <hal format="aidl">
          <name>android.hardware.radio.messaging</name>
      <version>2</version>
          <fqname>IRadioMessaging/slot1</fqname>
      </hal>
      <hal format="aidl">
          <name>android.hardware.radio.modem</name>
      <version>2</version>
      <fqname>IRadioModem/slot1</fqname>
      </hal>
      <hal format="aidl">
          <name>android.hardware.radio.network</name>
      <version>2</version>
          <fqname>IRadioNetwork/slot1</fqname>
      </hal>
      <hal format="aidl">
          <name>android.hardware.radio.sim</name>
      <version>2</version>
          <fqname>IRadioSim/slot1</fqname>
      </hal>
      <hal format="aidl">
          <name>android.hardware.radio.voice</name>
      <version>2</version>
          <fqname>IRadioVoice/slot1</fqname>
      </hal>

You can post the /vendor/etc/vintf/manifest.xml.
Please set the sepolicy to permissive mode.
I still can see the

11-19 12:46:43.133   548   575 E RILC    : Quectel Check: do you install /data/data/com.android.phone ?
11-19 12:46:43.133   548   575 E RILC    : Quectel Check: do you install /data/data/com.android.providers.telephony ?

Please check

ps -efl | grep -i ril
ps -elf | grep -i radio
getprop | grep -i ril
getprop | grep -i radio

I have checked and the manifest changes are already added.
ig61m_95:/ # cat /vendor/etc/vintf/manifest.xml

<!--
    Input:
        device/nxp/imx9/ig61m_95/manifest-radio.xml
-->
<manifest version="9.0" type="device" target-level="202404">
    <hal format="aidl">
        <name>android.hardware.camera.provider</name>
        <fqname>ICameraProvider/external/0</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.gatekeeper</name>
        <fqname>IGatekeeper/default</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.media.c2</name>
        <fqname>IComponentStore/default</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.oemlock</name>
        <fqname>IOemLock/default</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.radio.config</name>
        <version>2</version>
        <fqname>IRadioConfig/default</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.radio.data</name>
        <version>2</version>
        <fqname>IRadioData/slot1</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.radio.messaging</name>
        <version>2</version>
        <fqname>IRadioMessaging/slot1</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.radio.modem</name>
        <version>2</version>
        <fqname>IRadioModem/slot1</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.radio.network</name>
        <version>2</version>
        <fqname>IRadioNetwork/slot1</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.radio.sim</name>
        <version>2</version>
        <fqname>IRadioSim/slot1</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.radio.voice</name>
        <version>2</version>
        <fqname>IRadioVoice/slot1</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.security.keymint</name>
        <version>3</version>
        <fqname>IKeyMintDevice/default</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.security.keymint</name>
        <version>3</version>
        <fqname>IRemotelyProvisionedComponent/default</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.security.secretkeeper</name>
        <fqname>ISecretkeeper/default</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.security.secureclock</name>
        <fqname>ISecureClock/default</fqname>
    </hal>
    <hal format="aidl">
        <name>android.hardware.security.sharedsecret</name>
        <fqname>ISharedSecret/default</fqname>
    </hal>
    <sepolicy>
        <version>202404</version>
    </sepolicy>
</manifest>

SELinux is already in permissive mode:

ig61m_95:/ # getenforce
Permissive

ps -efl | grep -i ril
root           536     1 0 14:03:17 ?     00:00:00 rild -l /vendor/lib64/hw/libreference-ril-quec.so
radio          547     1 0 14:03:17 ?     00:00:00 rild
root          1831  1792 2 14:05:57 ttyLP0 00:00:00 grep -i ril

ps -elf | grep -i radio
radio          547     1 0 14:03:16 ?     00:00:00 rild
radio         1078   445 0 14:03:37 ?     00:00:00 com.android.phone
root          1835  1792 1 14:06:01 ttyLP0 00:00:00 grep -i radio
getprop | grep -i ril
[init.svc.ril-daemon]: [running]
[init.svc.vendor.ril-daemon]: [running]
[init.svc_debug_pid.ril-daemon]: [536]
[init.svc_debug_pid.vendor.ril-daemon]: [547]
[ro.boottime.ril-daemon]: [13355111005]
[ro.boottime.vendor.ril-daemon]: [13435147631]
[ro.radio.noril]: [no]
getprop | grep -i radio
[ro.radio.noril]: [no]

Full log is attached for your reference
EM06-log3.txt (2.0 MB)