Android RIL driver for Android 14

Hi support team,

  • Are there any plans to provide RIL drivers for the EC-25 for Android 14 (or driver version Radio1.6)?

  • I’ve seen in another thread that Android 13 should work using Radio1.5 – are there any other steps then integrating Radio1.1 (apart from chaing the version number in manifest.xml and w.r.t to libril.so, etc?)

Thanks in advance!

I will send you the libril.so and libreference-ril.so for IRadio 1.6.

I am sorry it is not recommended to talk via chat or PM on the Quectel Forums.
Form the log you provided, the Quectel modem is restarting.
The USB connection seems not stable.

Actually I have the Kvim3.
But as far as I know, it only support the Android 9.
And I have try the Quectel modem on it.

Khadas Documentation [Khadas Docs]

For how the Quectel modem used on kvim3 you can also discuss it here.

Thank you for the files!

I managed to start the Quectel RIL on both Hikey960 and Vim3 with some basic communication to the modem.
However, there I get the following errors:

D RILC : dlopen /vendor/lib64/hw/radio.quectel.module.so failed: dlopen failed: library “/vendor/lib64/hw/radio.quectel.module.so” not found
D RILC : start the service through api…
D RILC : ql_radio_config_init start
E RadioConfigFactory: ‘/vendor/manifest.xml’ not exist.

and it seems, like the Android Telephony Framework is not loaded properly:

E RILC : radioStateChangedInd: radioService[0]->mRadioIndication == NULL

do you have any idea what could go wrong?

I’ve attached the full log: RadioRilLog.txt (27.0 KB)

It is Android 12.

If you would like the IRadio 1.5.
Please put the libril.so from Quectel into vendor/lib64/.

And add the IRadio 1.5 declaration i manifest.xml.

I cannot find the log of libril.so.

Ah yes, i moved back to Android 12 on the VIM because I thought it might be more stable.

I have a problem copying the libril.so directly to the device while building, because the ‘default’ libril.so needs to be built for the rild service:

error: overriding commands for target `out/target/product/yukawa/vendor/lib64/libril.so’, previously defined at build/make/core/base_rules.mk:525

I tried copying it to the devices afterwards using adb and restarting the ril daemon, but this does not change anything.

Please provide the log

It is better to resolve it by yourself.

Sorry how do I retrieve the libril.so log?

I can prevent this error if I don’t build AOSP’s default libril.so, but then rild does not start because librilutils.so is missing. Could you provide all the required ril-libary files for arm64?

You can compile the libcutils.so
mmm hardware/ril/librilutils -j12

I mean that if you have put the libril.so into vendor/lib64/ and it still do not work please provide the log.

logcat -b all

Hi again,

thanks again for all the hints – in the meantime we have a running stable RIL integration using Radio@1.5 in Android 14 for both the Hikey and the Khadas VIM3 board.

When we try to use Radio@1.6, we get an error during initialization within the RIL daemon:

01-01 00:08:13.424     0     0 I init    : starting service 'vendor.ril-daemon'...
01-01 00:08:13.459     0     0 I init    : ... started service 'vendor.ril-daemon' has pid 4836
03-06 14:49:17.102  4836  4836 D RILD    : **RIL Daemon Started**
03-06 14:49:17.102  4836  4836 D RILD    : **RILd param count=3**
03-06 14:49:17.106  4836  4836 D RILD    : RIL_Init argc = 4 clientId = 0
03-06 14:49:17.106  4836  4836 D RILC    : Quectel RIL Version: Quectel_Android_RIL_Driver_V4.0.1_IRadio1.6_Release_20231211_10_47
03-06 14:49:17.106  4836  4836 D RIL_READ_CONF: original conf line: stop_sent_at=1
03-06 14:49:17.106  4836  4836 D RIL_READ_CONF: stop_sent_at = 1
03-06 14:49:17.106  4836  4836 D RIL_READ_CONF: original conf line: vzw_test=1
03-06 14:49:17.106  4836  4836 D RIL_READ_CONF: vzw_test = 1
03-06 14:49:17.106  4836  4836 E RILC    : '/vendor/manifest.xml' not exist.
03-06 14:49:17.106  4836  4836 D RILC    : 34.0</version>
03-06 14:49:17.106  4836  4836 F libc    : FORTIFY: memcpy: prevented 305954416-byte write into 32-byte buffer
03-06 14:49:17.107  4836  4836 F libc    : Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 4836 (rild), pid 4836 (rild)
03-06 14:49:17.146  4840  4840 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstoneProto
03-06 14:49:17.147   254   254 I tombstoned: received crash request for pid 4836
03-06 14:49:17.150  4840  4840 I crash_dump64: performing dump of process 4836 (target tid = 4836)
01-01 00:08:13.577     0     0 I logd    : logdr: UID=1001 GID=1001 PID=4840 n tail=500 logMask=8 pid=4836 start=0ns deadline=0ns
01-01 00:08:13.593     0     0 I logd    : logdr: UID=1001 GID=1001 PID=4840 n tail=500 logMask=1 pid=4836 start=0ns deadline=0ns
03-06 14:49:17.212  4840  4840 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-06 14:49:17.212  4840  4840 F DEBUG   : Build fingerprint: 'Android/yukawa/vim3:14/UP1A.231105.003.A1/eng.infine.20240306.114104:userdebug/test-keys'
03-06 14:49:17.212  4840  4840 F DEBUG   : Revision: '0'
03-06 14:49:17.212  4840  4840 F DEBUG   : ABI: 'arm64'
03-06 14:49:17.212  4840  4840 F DEBUG   : Timestamp: 2024-03-06 14:49:17.152001843+0000
03-06 14:49:17.212  4840  4840 F DEBUG   : Process uptime: 1s
03-06 14:49:17.212  4840  4840 F DEBUG   : Cmdline: /vendor/bin/hw/rild -l /vendor/lib64/hw/libquectel-ril.so
03-06 14:49:17.212  4840  4840 F DEBUG   : pid: 4836, tid: 4836, name: rild  >>> /vendor/bin/hw/rild <<<
03-06 14:49:17.212  4840  4840 F DEBUG   : uid: 1001
03-06 14:49:17.212  4840  4840 F DEBUG   : tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
03-06 14:49:17.212  4840  4840 F DEBUG   : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
03-06 14:49:17.212  4840  4840 F DEBUG   : Abort message: 'FORTIFY: memcpy: prevented 305954416-byte write into 32-byte buffer'
03-06 14:49:17.212  4840  4840 F DEBUG   :     x0  0000000000000000  x1  00000000000012e4  x2  0000000000000006  x3  0000ffffedc37f50
03-06 14:49:17.212  4840  4840 F DEBUG   :     x4  3438342f321f6364  x5  3438342f321f6364  x6  3438342f321f6364  x7  7f7f7f7f7f7f7f7f
03-06 14:49:17.212  4840  4840 F DEBUG   :     x8  00000000000000f0  x9  0000f20a958eb090  x10 0000000000000001  x11 0000f20a95934f00
03-06 14:49:17.213  4840  4840 F DEBUG   :     x12 0000000000000000  x13 000000007fffffff  x14 00000000000180ec  x15 000000000000000a
03-06 14:49:17.213  4840  4840 F DEBUG   :     x16 0000f20a959a1d08  x17 0000f20a9597d810  x18 0000f20a9c084000  x19 00000000000000ac
03-06 14:49:17.213  4840  4840 F DEBUG   :     x20 00000000000000b2  x21 00000000000012e4  x22 00000000000012e4  x23 00000000ffffffff
03-06 14:49:17.213  4840  4840 F DEBUG   :     x24 0000ffffedc381f0  x25 0000000000000000  x26 0000000000000000  x27 0000000000000002
03-06 14:49:17.213  4840  4840 F DEBUG   :     x28 0000ba6a9c09a348  x29 0000ffffedc37fd0
03-06 14:49:17.213  4840  4840 F DEBUG   :     lr  0000f20a95925414  sp  0000ffffedc37f30  pc  0000f20a95925444  pst 0000000000000000
03-06 14:49:17.213  4840  4840 F DEBUG   : 8 total frames
03-06 14:49:17.213  4840  4840 F DEBUG   : backtrace:
03-06 14:49:17.213  4840  4840 F DEBUG   :       #00 pc 000000000005c444  /apex/com.android.runtime/lib64/bionic/libc.so (abort+180) (BuildId: e28e590ca0e65ae6ef686c6e737bc371)
03-06 14:49:17.213  4840  4840 F DEBUG   :       #01 pc 000000000005e39c  /apex/com.android.runtime/lib64/bionic/libc.so (__fortify_fatal(char const*, ...)+124) (BuildId: e28e590ca0e65ae6ef686c6e737bc371)
03-06 14:49:17.213  4840  4840 F DEBUG   :       #02 pc 0000000000089f18  /apex/com.android.runtime/lib64/bionic/libc.so (__check_buffer_access(char const*, char const*, unsigned long, unsigned long)+40) (BuildId: e28e590ca0e65ae6ef686c6e737bc371)
03-06 14:49:17.213  4840  4840 F DEBUG   :       #03 pc 000000000008a0c4  /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy_chk_fail+68) (BuildId: e28e590ca0e65ae6ef686c6e737bc371)
03-06 14:49:17.213  4840  4840 F DEBUG   :       #04 pc 000000000008b0a0  /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy_chk+16) (BuildId: e28e590ca0e65ae6ef686c6e737bc371)
03-06 14:49:17.213  4840  4840 F DEBUG   :       #05 pc 000000000003dea8  /vendor/lib64/hw/libquectel-ril.so (RIL_Init+1196) (BuildId: 4c5946f37cb74d34f80cf17d8fe151f6)
03-06 14:49:17.213  4840  4840 F DEBUG   :       #06 pc 0000000000002354  /vendor/bin/hw/rild (main+756) (BuildId: 39e8837d02fab8874bbf678c150865ed)
03-06 14:49:17.213  4840  4840 F DEBUG   :       #07 pc 0000000000054838  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+104) (BuildId: e28e590ca0e65ae6ef686c6e737bc371)
03-06 14:49:17.222   642  1863 W NativeCrashListener: Couldn't find ProcessRecord for pid 4836
03-06 14:49:17.223   254   254 E tombstoned: Tombstone written to: tombstone_43
03-06 14:49:17.223   642   750 E NativeTombstoneManager: Tombstone's UID (1001) not an app, ignoring
03-06 14:49:17.224   642   750 E NativeTombstoneManager: Tombstone's UID (1001) not an app, ignoring
01-01 00:08:13.621     0     0 I init    : Untracked pid 4840 exited with status 0
01-01 00:08:13.621     0     0 I init    : Untracked pid 4840 did not have an associated service entry and will not be reaped
01-01 00:08:13.630     0     0 I init    : Service 'vendor.ril-daemon' (pid 4836) received signal 6
01-01 00:08:13.637     0     0 I init    : Sending signal 9 to service 'vendor.ril-daemon' (pid 4836) process group...
01-01 00:08:13.646     0     0 I libprocessgroup: Successfully killed process cgroup uid 1001 pid 4836 in 0ms
01-01 00:08:13.655     0     0 I init    : Untracked pid 4842 exited with status 0
01-01 00:08:13.659     0     0 I init    : Untracked pid 4842 did not have an associated service entry and will not be reaped
03-06 14:49:17.528  3349  3349 W HidlServiceManagement: Waited one second for android.hardware.radio@1.6::IRadio/slot1
03-06 14:49:17.528   216   216 I hwservicemanager: Since android.hardware.radio@1.6::IRadio/slot1 is not registered, trying to start it as a lazy HAL (if it's not configured to be a lazy HAL, it may be stuck starting or still starting).
03-06 14:49:17.529  3349  3349 I HidlServiceManagement: getService: Trying again for android.hardware.radio@1.6::IRadio/slot1...
03-06 14:49:17.538   216  4845 W libc    : Unable to set property "ctl.interface_start" to "android.hardware.radio@1.6::IRadio/slot1": error code: 0x20
03-06 14:49:17.538   216  4845 I hwservicemanager: Tried to start android.hardware.radio@1.6::IRadio/slot1 as a lazy service, but was unable to. Usually this happens when a service is not installed, but if the service is intended to be used as a lazy service, then it may be configured incorrectly.
01-01 00:08:13.926     0     0 E init    : Control message: Could not find 'android.hardware.radio@1.6::IRadio/slot1' for ctl.interface_start from pid: 216 (/system/bin/hwservicemanager)

Do you have any idea what could cause this issue?