Hi team,
We are integrating the EM06 LTE module on our custom i.MX95 platform running Android 15 .
The RIL daemon is starting, and the module is detected correctly on /dev/ttyUSB2. However, the SIM is not getting detected in the Android GUI.
We also see the periodic RIL prints in logcat, which confirms that the modem communication is active.
For the integration, we are using Quectel_Android_RIL_Driver_radio1.5_V3.7.
The log is attached below for your reference.
EM06-LTE-logcat.txt (37.2 KB)
Thanks & Regards
1 The log is not complete.
2. It is IRadio 1.5 but,
Line 13: 01-01 00:00:27.205 D/RILC ( 549): __getIRadioVersion:688 IRadioVersion:4
Line 13: 01-01 00:00:27.205 D/RILC ( 549): __getIRadioVersion:688 IRadioVersion:4
Line 31: 01-01 00:00:27.207 D/RILC ( 549): registerService: starting android::hardware::radio::V1_1::IRadio slot1
Line 95: 01-01 00:00:28.207 D/RadioConfigFactory( 549): __getIRadioConfigVersion:114 IRadioconfigVersion:2
Line 95: 01-01 00:00:28.207 D/RadioConfigFactory( 549): __getIRadioConfigVersion:114 IRadioconfigVersion:2
It seems that in the manifest.xml it is not IRadio 1.5 and the /vendor/lib64/libril.so is not from Quectel.
Hi ,
Thanks for your input.
Could you please let me know what exactly needs to be added or updated in the manifest.xml for Android 15 so that the Quectel IRadio 1.5 HAL gets loaded correctly?
Thanks and regards
<hal format="hidl">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
<fqname>@1.5::IRadio/slot1</fqname>
<fqname>@1.2::ISap/slot1</fqname>
</hal>
Hi,
Kindly provide the correct AIDL interface version for Android 15, since our device manifest is using AIDL (not HIDL).
I also tried overriding /vendor/lib64/libril.so in the build, but the default binary is still present with the same name.
I am only able to add a second file such as vendor/lib64/libril-quec.so.
Please confirm whether it is possible to supply libreference-ril.so that internally depends on vendor/lib64/libril-quec.so, so we can avoid replacing the system-default libril.so.
Thanks
You need to put the libril.so and libreference-ril.so both in the Android device.
libril.so —> /vendor/lib64/libril.so
libreference-ril.so —> /vendor/lib64/hw/libreference-ril.so or any other place or name.
You cannot rename the libril.so with the libril-quec.so.
If you must want to do that, Quectel need to provide you a customerized libreference-ril.so that based on the /vendor/lib64/libril-quec.so and also a customerized rild.
If you must need it, please create a e-service ticket to Quectel.
Thanks for your support. I am now able to disable the default libril.so from being added, and I have successfully included the Quectel-provided libril.so in the build.
I am also using the libreference-ril.so provided by Quectel.
However, the SIM/network is still not detected in the Android GUI.
I have attached the log below for your reference.
EM06-LTE-log2.txt (49.4 KB)
Please provide the complete log.
logcat -b all
And please also check
find / -name "*.xml" 2>/dev/null | xargs grep -rnHi "IRadio"
RIL is not connected.
Thank you for your support
Please find the full log attached for your reference,
LTE-full-log.txt (1.9 MB)
as well as the output of the command:
find / -name “*.xml” 2>/dev/null | xargs grep -rnHi “IRadio”
/system/etc/vintf/compatibility_matrix.202404.xml:364: IRadioConfig
/system/etc/vintf/compatibility_matrix.202404.xml:372: IRadioData
/system/etc/vintf/compatibility_matrix.202404.xml:382: IRadioIms
/system/etc/vintf/compatibility_matrix.202404.xml:400: IRadioMessaging
/system/etc/vintf/compatibility_matrix.202404.xml:410: IRadioModem
/system/etc/vintf/compatibility_matrix.202404.xml:420: IRadioNetwork
/system/etc/vintf/compatibility_matrix.202404.xml:439: IRadioSim
/system/etc/vintf/compatibility_matrix.202404.xml:449: IRadioVoice
/system/etc/vintf/compatibility_matrix.202504.xml:363: IRadioConfig
/system/etc/vintf/compatibility_matrix.202504.xml:371: IRadioData
/system/etc/vintf/compatibility_matrix.202504.xml:381: IRadioIms
/system/etc/vintf/compatibility_matrix.202504.xml:399: IRadioMessaging
/system/etc/vintf/compatibility_matrix.202504.xml:409: IRadioModem
/system/etc/vintf/compatibility_matrix.202504.xml:419: IRadioNetwork
/system/etc/vintf/compatibility_matrix.202504.xml:438: IRadioSim
/system/etc/vintf/compatibility_matrix.202504.xml:448: IRadioVoice
/system/etc/vintf/compatibility_matrix.5.xml:393: IRadio
/system/etc/vintf/compatibility_matrix.5.xml:412: IRadioConfig
/system/etc/vintf/compatibility_matrix.6.xml:432: IRadio
/system/etc/vintf/compatibility_matrix.6.xml:451: IRadioConfig
/system/etc/vintf/compatibility_matrix.6.xml:459: IRadioConfig
/system/etc/vintf/compatibility_matrix.7.xml:489: IRadioConfig
/system/etc/vintf/compatibility_matrix.7.xml:496: IRadioData
/system/etc/vintf/compatibility_matrix.7.xml:505: IRadioMessaging
/system/etc/vintf/compatibility_matrix.7.xml:514: IRadioModem
/system/etc/vintf/compatibility_matrix.7.xml:523: IRadioNetwork
/system/etc/vintf/compatibility_matrix.7.xml:532: IRadioSim
/system/etc/vintf/compatibility_matrix.7.xml:541: IRadioVoice
/system/etc/vintf/compatibility_matrix.8.xml:389: IRadioConfig
/system/etc/vintf/compatibility_matrix.8.xml:397: IRadioData
/system/etc/vintf/compatibility_matrix.8.xml:406: IRadioIms
/system/etc/vintf/compatibility_matrix.8.xml:423: IRadioMessaging
/system/etc/vintf/compatibility_matrix.8.xml:433: IRadioModem
/system/etc/vintf/compatibility_matrix.8.xml:443: IRadioNetwork
/system/etc/vintf/compatibility_matrix.8.xml:462: IRadioSim
/system/etc/vintf/compatibility_matrix.8.xml:472: IRadioVoice
||Line 16059: 11-18 09:12:39.319 D/RILC ( 523): QuectelCheckAndroidFrameworkSettingCallback|
|---|---|
||Line 16060: 11-18 09:12:39.319 E/RILC ( 523): Quectel Check: do you install /data/data/com.android.phone ?|
||Line 16061: 11-18 09:12:39.319 E/RILC ( 523): Quectel Check: do you install /data/data/com.android.providers.telephony ?|
||Line 16062: 11-18 09:12:39.320 D/RILC ( 523): [ro.radio.noril]: [no]|
The RILJ and telephony is not there.
And the manifest,xml should be in the /vendor/etc/vintf/ rather than in the /system/etc/vintf.
Please show the /vendor/etc/vintf/.
And also add the
PRODUCT_PACKAGES += \
Telecom \
TelephonyProvider \
telephony-common \
dhcptool \
rild \
messaging \
Dialer \
TeleService
<string-array translatable="false" name="networkAttributes">
<item>"mobile,0,0,0,-1,true"</item>
<item>"mobile_mms,2,0,4,60000,true"</item>
<item>"mobile_supl,3,0,2,60000,true"</item>
<item>"mobile_dun,4,0,2,60000,true"</item>
</string-array>
Hi,
Thank you for the support.
I have added all the changes you mentioned.
Only the manifest changes are causing a compilation error.
I added the following entries as per the earlier suggestion:
android.hardware.radio
hwbinder
@1.5::IRadio/slot1
@1.2::ISap/slot1
But I get this error during compilation:
The following HALs in device manifest are not declared in FCM <= level 202404:
android.hardware.radio.config@2.0::IRadioConfig/default
android.hardware.radio@2.0::IRadio/slot1
android.hardware.radio@2.0::ISap/slot1
ERROR: files are incompatible: The following instances are in the device manifest but not specified in framework compatibility matrix:
android.hardware.radio.config@2.0::IRadioConfig/default
android.hardware.radio@2.0::IRadio/slot1
android.hardware.radio@2.0::ISap/slot1
Kindly provide the correct Android 15–compatible AIDL/HIDL changes.
Also, without these manifest changes, the build compiles fine.
I have attached the full log below.
LTE-full-log2.txt (2.0 MB)
You need to modify the compatible_matrix_202404.xml and add the IRadio 1.5 and the ISap 1.2.
The HIDL Radio have been removed in the compatible_matrix.xml.
For Android 15 only the AIDL is supported. But we can try HIDL IRadio.
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.4.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.4.xml
index 8ef0b3a..89c584a 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.4.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.4.xml
@@ -348,6 +348,10 @@
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
<version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.5.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.5.xml
index 12b85c7..49860a2 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.5.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.5.xml
@@ -384,8 +384,12 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
- <version>1.4</version>
<version>1.5</version>
+ <version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml
index e19d2dd..f98897c 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.6.xml
@@ -225,7 +225,10 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.gnss</name>
- <version>2.0-1</version>
+ <version>2.1</version>
+ <version>2.0</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IGnss</name>
<instance>default</instance>
@@ -441,6 +444,12 @@
<hal format="hidl" optional="true">
<name>android.hardware.radio</name>
<version>1.6</version>
+ <version>1.5</version>
+ <version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IRadio</name>
<instance>slot1</instance>
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.7.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.7.xml
index 26b8d63..ed78bf8 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.7.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.7.xml
@@ -248,7 +248,10 @@
</hal>
<hal format="hidl" optional="true">
<name>android.hardware.gnss</name>
- <version>2.0-1</version>
+ <version>2.1</version>
+ <version>2.0</version>
+ <version>1.1</version>
+ <version>1.0</version>
<interface>
<name>IGnss</name>
<instance>default</instance>
@@ -516,6 +519,22 @@
<instance>default</instance>
</interface>
</hal>
+ <hal format="hidl" optional="true">
+ <name>android.hardware.radio</name>
+ <version>1.6</version>
+ <version>1.5</version>
+ <version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
+ <interface>
+ <name>IRadio</name>
+ <instance>slot1</instance>
+ <instance>slot2</instance>
+ <instance>slot3</instance>
+ </interface>
+ </hal>
<hal format="aidl" optional="true">
<name>android.hardware.radio.config</name>
<version>1</version>
diff --git a/hardware/interfaces/compatibility_matrices/compatibility_matrix.current.xml b/hardware/interfaces/compatibility_matrices/compatibility_matrix.current.xml
index 886f7f5..1175dc6 100644
--- a/hardware/interfaces/compatibility_matrices/compatibility_matrix.current.xml
+++ b/hardware/interfaces/compatibility_matrices/compatibility_matrix.current.xml
@@ -520,6 +520,22 @@
<instance>default</instance>
</interface>
</hal>
+ <hal format="hidl" optional="true">
+ <name>android.hardware.radio</name>
+ <version>1.6</version>
+ <version>1.5</version>
+ <version>1.4</version>
+ <version>1.3</version>
+ <version>1.2</version>
+ <version>1.1</version>
+ <version>1.0</version>
+ <interface>
+ <name>IRadio</name>
+ <instance>slot1</instance>
+ <instance>slot2</instance>
+ <instance>slot3</instance>
+ </interface>
+ </hal>
<hal format="aidl" optional="true">
<name>android.hardware.radio.config</name>
<version>1</version>
Thank you for the support.
I have made the changes in compatible_matrix_202404.xml, and now it is compiling successfully.
As you can see, the HIDL entries are now appearing properly in the generated manifest.xml:
ig61m_95:/ # cat /vendor/etc/vintf/manifest.xml
<!--
Input:
device/nxp/imx9/ig61m_95/manifest.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>`Preformatted text`
<fqname>IOemLock/default</fqname>
</hal>
<hal format="hidl">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
<fqname>@1.2::ISap/slot1</fqname>
<fqname>@1.5::IRadio/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>
However, even after this, I’m still not able to make calls, send SMS, or use mobile data from the Android GUI.
I have attached the full log for your reference.
LTE-full-log3.txt (2.4 MB)
We still can see
11-19 11:32:57.513 551 599 E RILC : Quectel Check: do you install /data/data/com.android.phone ?
11-19 11:32:57.513 551 599 E RILC : Quectel Check: do you install /data/data/com.android.providers.telephony ?
11-19 11:32:57.514 551 599 D RILC : [ro.radio.noril]: [no]
Have you added the
PRODUCT_PACKAGES +=
Telecom
TelephonyProvider
telephony-common
TeleService
Thank you for supporting.
TeleService package was missing in the list, and I have added it now.
130|ig61m_95:/ # ls /system/priv-app | grep -i tele
TeleService
Telecom
TelephonyProvider
I have also added the following network attributes:
<item>"mobile,0,0,0,-1,true"</item>
<item>"mobile_mms,2,0,2,60000,true"</item>
<item>"mobile_supl,3,0,2,60000,true"</item>
<item>"mobile_dun,4,0,2,60000,true"</item>
And in the frameworks config, I have enabled:
<bool name="config_voice_capable">true</bool>
<bool name="config_sms_capable">true</bool>
<bool name="config_mobile_data_capable">true</bool>
However, I am still not able to do call/SMS/data operations.
The full log is attached below.
LTE-full-log4.txt (2.0 MB)
HidlServiceManagement: Service android.hardware.radio.config@1.1::IRadioConfig/default must be in VINTF manifest in order to register/get.
Add the RadioConfig also.
<!-- IRADIO -->
<hal format="hidl">
<name>android.hardware.radio</name>
<transport>hwbinder</transport>
<fqname>@1.5::IRadio/slot1</fqname>
<fqname>@1.2::ISap/slot1</fqname>
</hal>
<!-- RADIO CONFIG -->
<hal format="hidl">
<name>android.hardware.radio.config</name>
<transport>hwbinder</transport>
<version>1.1</version>
<interface>
<name>IRadioConfig</name>
<instance>default</instance>
</interface>
</hal>
For test, please also set the selinux to permissive mode by default.
Please also check
getprop | grep -i radio
getprop | grep -i ril