QUECTEL Android RIL Driver User Guide

QUECTEL Android RIL Driver User Guide

QUECTEL-лагатып

QUECTEL Android RIL Driver

QUECTEL-Android-RIL-Driver-product

Тэхнічныя характарыстыкі

  • Product: Android RIL Driver
  • Версія: 2.2
  • Дата: 2026-01-28
  • Статус: Вызвалены

Інфармацыя аб прадукце

The Android RIL Driver is a software component designed to facilitate communication between Android devices and radio hardware. It allows for the integration of cellular connectivity features into Android-based systems.

Інструкцыя па ўжыванні прадукту

Ўстаноўка і інтэграцыя:

To use the Android RIL Driver, follow these steps:

  1. Download the latest version of the driver from the official webсайт.
  2. Install the driver on your Android device according to the provided instructions.
  3. Integrate the driver with your application or system to enable cellular communication functionalities.

Канфігурацыя:
Once installed, configure the Android RIL Driver by following these guidelines:

  • Access the driver settings through the device settings menu.
  • Adjust parameters such as network settings, preferred bands, and SIM card configurations as needed.

Ліквідацыя непаладак:
If you encounter any issues with the Android RIL Driver, refer to the troubleshooting section in the user manual. Common problems and solutions are provided to assist you in resolving connectivity or functionality issues.

У Quectel мы імкнемся прадастаўляць кліентам своечасовыя і комплексныя паслугі. Калі вам патрэбна дапамога, звяртайцеся ў наш штаб:

Quectel Wireless Solutions Co., Ltd.

  • No. 8 Waipojing Road, Sijing Town, Songjiang District, Shanghai 201601, China
  • Тэл.: +86 21 5108 6236
  • электронная пошта: info@quectel.com

Ці нашы мясцовыя офісы. Для атрымання дадатковай інфармацыі, калі ласка, наведайце:

Каб атрымаць тэхнічную падтрымку або паведаміць пра памылкі дакументацыі, наведайце:

Прававыя паведамленні

We provide this document to support your product design. You are required to design your products based on the specifications and parameters set forth herein. You agree that you are responsible for using independent analysis and evaluation in designing intended products, and we provide reference designs for illustrative purposes only. Before using any hardware, software, or service guided by this document, please read this notice carefully. Even though we employ commercially reasonable efforts to provide the best possible experience, you hereby acknowledge and agree that this document and related services hereunder are provided to you on an “as available” basis. You acknowledge and agree that we may add to, amend, or restate this document at any time at our sole discretion without any prior notice to you, and such additions, amendments, or restatements shall be binding upon you.

Абмежаванні на выкарыстанне і раскрыццё інфармацыі

Ліцэнзійныя пагадненні
The recipient of any hardware, software, materials, or documentation provided by us shall keep such content confidential, unless expressly authorised by us. The recipient shall not disclose, access, or use any part of the received content for any purpose other than the execution and implementation of the intended project.

Аўтарскае права
Our and third-party products hereunder may contain copyrighted materials, including but not limited to protected content, hardware, software, and documentation owned by us or applicable third parties. Unless prior written consent is obtained, you shall not access, use, or disclose any documents or information provided by us, nor shall you copy, reproduce, republish, display, translate, distribute, merge, modify, or create derivative works from any such copyrighted materials. The applicable third party and we retain exclusive rights to all copyrighted materials.

No license to any patents, copyrights, trademarks, or service marks shall be granted or transferred. For the avoidance of doubt, no form of purchase shall be construed as granting any license beyond a normal, non-exclusive, royalty-free license to use the product. We reserve the right to pursue legal action against any violation of confidentiality obligations, unauthorised use, or any other unlawful or malicious use of the aforementioned documents and information.

Таварныя знакі
Unless otherwise expressly provided, nothing in this document shall be construed as conferring any rights to use any trademark, trade name, name, abbreviation, or counterfeit thereof owned by us or any third party in advertising, publicity, or any other contexts.

Правы трэціх асоб
You understand that this document may refer to hardware, software, and/or documentation owned by one or more third parties (“third-party materials”). Use of such third-party materials is subject to all applicable restrictions and obligations set forth herein.

We make no warranty or representation, either express or implied, regarding the third-party materials, including but not limited to any implied or statutory warranties of merchantability or fitness for a particular purpose, quiet enjoyment, system integration, information accuracy, and non-infringement of any third-party intellectual property rights regarding the licensed technology or use thereof. Nothing herein constitutes a representation or warranty by us to either develop, enhance, modify, distribute, market, sell, offer for sale, or otherwise maintain production of any of our products or any other hardware, software, device, tool, information, or product. We disclaim any warranties arising from the course of dealing, course of performance, or usage of trade.

Палітыка прыватнасці
To enable product functionality, certain device data may be uploaded to our or third-party servers, including those operated by carriers, chipset suppliers, or servers designated by you. We strictly comply with applicable laws and regulations and will retain, use, disclose, or otherwise process relevant data solely for the purpose of enabling product functionality, or as permitted by applicable laws. Before interacting with any third party regarding data exchange, please be informed of and understand their privacy and data security policies.

Адмова ад адказнасці 

  • a) We shall not be liable for any damages resulting from failure to comply with applicable operational or design specifications.
  • b) We shall bear no liability for any inaccuracies or omissions in this document, nor for any damages arising from the use of the information contained herein.
  • c) While we make every effort to ensure the integrity, accuracy, and timeliness of the features and functions under development, errors or omissions may nevertheless occur. Unless otherwise provided in a valid written agreement, we make no warranties of any kind, express, implied, or statutory, and disclaim all liability for any loss or damage arising from the use of any features or functions under development, to the maximum extent permitted by law, regardless of whether such loss or damage is foreseeable.
  • d) We assume no legal responsibility for the accessibility, safety, accuracy, availability, legality, or completeness of any information, content, advertising, commercial offers, products, services, or materials on third-party websites or third-party resources.

Аб дакуменце

Гісторыя версій 

QUECTEL-Android-RIL-Driver-fig- (1)QUECTEL-Android-RIL-Driver-fig- (2) QUECTEL-Android-RIL-Driver-fig- (3)

Уводзіны

This document mainly introduces how to integrate the RIL (Radio Interface Layer) driver into the Android OS of your target devices, as well as how to modify the configuration files for starting the RIL service.

Дастасавальныя модулі
The document applies to the following Quectel modules.

Табліца 1: Дастасавальныя модулі

QUECTEL-Android-RIL-Driver-fig- (4)

УВАГА
Quectel modules listed above may include only a single model or multiple models. See the corresponding module specifications for more specific information.

Скончанаview of Android RIL Driver

Структура каталога

The file structure of the Quectel RIL driver package is shown below.

QUECTEL-Android-RIL-Driver-fig- (5)

Падтрымліваюцца функцыі
Quectel RIL driver supports the following functions.

Table 2: Supported Functions 

QUECTEL-Android-RIL-Driver-fig- (6)

Supported Android Versions
Currently, the Quectel RIL driver supports Android 4.x–16.x.

Supported RIL Versions
Quectel RIL driver supports the following RIL versions.

QUECTEL-Android-RIL-Driver-fig- (7)

RIL Integration

The chapter mainly describes the Android RIL architecture and procedures for setting up an Android system with the RIL driver.

Android RIL Architecture
Android RIL provides the abstract layer between Android telephony services and the radio hardware. The following figure illustrates the RIL in the context of Android telephony architecture.

QUECTEL-Android-RIL-Driver-fig- (8)

Located between the kernel and application framework, the Android RIL consists of two parts: RILD and Vendor RIL. RILD is responsible for communications between the socket and the application framework, while Vendor RIL is responsible for radio communication via AT command channel and data communication via packet data channel (PDCH).
Additionally, the Java framework of RIL consists of two parts as well: the RIL module and the phone module. The RIL module communicates with the lower RILD, while the phone module directly provides phone function interfaces to applications.

PPP Configuration in Linux Kernel
If the PPP dial-up function is needed, you need to configure the kernel to support the function. Otherwise, skip this step. For detailed procedures, see document [1].

USB Driver Integration in Linux Kernel
For modules accessed via USB interface, integrate the USB drivers into the Linux kernel. Otherwise, skip this step. For detailed procedures, see document [1].

RIL Driver Integration by Library
Put the corresponding RIL library files provided by Quectel in the following path of the Android system.

IRadio 1.0 (Default)

QUECTEL-Android-RIL-Driver-fig- (9)QUECTEL-Android-RIL-Driver-fig- (10)

УВАГА 

  • For Android 11.x–16.x or IRadio 1.4–1.6, Quectel RIL driver V3.3.40 or later versions should be used.
  • For AIDL1, the Quectel RIL driver V4.0 or later versions should be used.
  • For AIDL 2, the Quectel RIL driver V4.1 or later versions should be used.
  • For AIDL 3, the Quectel RIL driver V4.2 or later versions should be used.

Канфігурацыя сістэмы

In order to use the RIL driver normally, some configuration files in the Android system should be modified.

Configuring Service ril-daemon
Service ril-daemon can be configured by adding the following lines to init*.rc or *rild.rc. The relevant lines vary depending on the accessing interface and the Android version being used. See Chapter 3.5.1.1 and Chapter 3.5.1.2 for details.

The location of init*.rc varies according to your project settings. The following gives a non-exhaustive list of file paths that may contain the init*.rc file.

  • device/fsl/imx6dq/sabresd_6dq/init.rc
  • device/ti/am335xevm_sk/init.am335xevm.rc
  • device/rockchip/rk3399/init.rk3399.rc
  • device/samsung/smdkv210/init.smdkv210_sdmmc.rc

rild.rc is only available for Android 7.x or later versions.

УВАГА
The name of the RILD service might also be vendor.ril-daemon. In this document, we will only use the service ril-daemon for illustration.

Modules Accessed via USB/PCIe Interface
For modules accessed via USB/PCIe interface, add the following lines to init*.rc or *rild.rc.

For Android 4.x–7.x

  • service ril-daemon /system/bin/rild -l <libreference-ril path>
  • class main
  • socket rild stream 660 root radio
  • socket rild-debug stream 660 radio system
  • user root
  • group radio cache inet misc audio sdcard_rw log

For Android 8.x–16.x

  • service ril-daemon /vendor/bin/hw/rild -l <libreference-ril path>
  • class main
  • user root
  • group radio cache inet misc audio sdcard_rw log
  • capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW

Параметр

QUECTEL-Android-RIL-Driver-fig- 28

Modules Accessed via UART Interface
For modules accessed via UART interface, add the following lines to init*.rc or *rild.rc.

For Android 4.x–7.x

  • service ril-daemon /system/bin/rild -l <libreference-ril path> — -d <UART port name> -B <baud rate> -C
  • <hardware flow control>
  • class main
  • socket rild stream 660 root radio
  • socket rild-debug stream 660 radio system
  • user root
  • group radio cache inet misc audio sdcard_rw log

For Android 8.x–16.x

  • service ril-daemon /vendor/bin/hw/rild -l <libreference-ril path> — -d <UART port name> -B <baud rate>
  • -C <hardware flow control>
  • class main
  • user root
  • group radio cache inet misc audio sdcard_rw log
  • capabilities BLOCK_SUSPEND NET_ADMIN NET_RAW

Параметр

QUECTEL-Android-RIL-Driver-fig- (11)

Modifying rild.c (for Android 4.x–7.x)
For Android 4.x–7.x, comment the switchUser() function in the file ($Android_src)/hardware/ril/rild/rild.c to get root privilege for RILD (ril-daemon).

QUECTEL-Android-RIL-Driver-fig- 29

Adding HIDL Description (for Android 8.x–16.x)
For Android 8.x–16.x, the communication interface between the Android phone framework and the service ril-daemon has changed from socket to HIDL. Therefore, the following HIDL description needs to be added to manifest.xml.

IRadio 1.0 (Default)
For Android 8.x/9.x:

QUECTEL-Android-RIL-Driver-fig- (12)QUECTEL-Android-RIL-Driver-fig- (13)

Adding AIDL Description (for Android 13.x–16.x)
For Android 13.x and later versions, an alternative AIDL is introduced alongside the existing HIDL. When using AIDL-based communication (mutually exclusive with HIDL), the following AIDL service declaration must be added to manifest.xml.

AIDL 1–3
For Android 13.x–16.x:

QUECTEL-Android-RIL-Driver-fig- (14)QUECTEL-Android-RIL-Driver-fig- (15)

УВАГА 

  1. The Android versions supported by AIDL 1/2/3 are as follows:
    • AIDL 1: Android 13.x–16.x;
    • AIDL 2: Android 14.x–16.x;
    • AIDL 3: Android 15.x–16.x.
  2. Add either AIDL or HIDL description to manifest.xml. Do not add both descriptions to the file.
  3. The location of the manifest.xml file varies according to your project settings. For exampль:
    • device/rockchip/rk3399/manifest.xml
    • device/fsl/imx6dq/sabresd_6dq/manifest.xml

SELinux Configuration

If the SELinux installed in your Android devices is enabled (i.e., in enforcing mode), follow the procedures below to make sure that the Quectel RIL driver has full access to SELinux privileges. Otherwise, you can skip this chapter.

Modifying Service ril-daemon Configuration
To make sure the Quectel RIL driver has full access to SELinux privileges, the user of the service ril-daemon should be radio. Therefore, the user of the service ril-daemon in the lines illustrated in Chapter 3.5.1 should be changed from root to radio. An example with Android 8.x–16. x versions for modules accessed via the UPCIe interface are shown below.

QUECTEL-Android-RIL-Driver-fig- (16)

To make sure Quectel RIL has full access to SELinux privileges, the switchUser() function mentioned in Chapter 3.5.2 should be uncommented.

Configuring SELinux Rule for RIL

The following definition should be added to ueventd.rc:

QUECTEL-Android-RIL-Driver-fig- (17)QUECTEL-Android-RIL-Driver-fig- (18)

The following definition should be added to rild.te:

allow rild self:packet_socket { create bind write read };

The locations of ueventd.rc, file_contexts and rild.t e may vary according to your project settings. But in general, these files are located in the following paths, respectively, by default.

  • device/fsl/imx6dq/sabresd_6dq/ueventd.freescale.rc
  • device/fsl/imx6dq/sabresd_6dq/sepolicy/file_contexts
  • device/fsl/imx6dq/sabresd_6dq/sepolicy/rild.te
  • device/rockchip/common/ueventd.rockchip.rc
  • device/rockchip/common/sepolicy/file_contexts

Метады адладкі

Catching Logs Automatically (Recommended)
Catching logs automatically is recommended for the Quectel RIL driver, and you should fulfil two prerequisites: SELinux is disabled,d and the library files applied are provided by Quectel. The detailed procedures are as follows:

QUECTEL-Android-RIL-Driver-fig- (19)

Catching Logs Manually
Quectel RIL driver also supports catching logs manually. The detailed procedures are as follows:

  1. Catch the logs of the RIL module by typing the following command in the Windows CMD tool:
    adb logcat -b radio -v time
  2. Catch the logs of the Android system by typing the following command in the Windows CMD tool:
    adb logcat -v time

Common Log Tags
The following table lists some log tags that are commonly applied.

QUECTEL-Android-RIL-Driver-fig- (20)

How to Set APN
If the dialling process is interrupted, it is quite possible that the APN has not been set yet. Check the APN in Android UI: “Settings” → “WIRELESS & NETWORKS” → “…” → “Mobile Networks” → “Access Point Names”. If nothing is found in “Access Point Names”, it indicates that the APN has not been set. In such a case, you need to add a new APN to the system. The following figure shows an example of the access point editing interface. Please note that the Access Point Name varies according to operators and (U)SIM cards.

QUECTEL-Android-RIL-Driver-fig- (21)

Why the Quectel RIL Driver Does Not Work
Many reasons may cause the failed operation of Quectel RIL. Some common causes are listed below for troubleshooting.

  1. RIL daemon is not running.
    Use getprop init.svc.ril-daemon to check the status of the RIL daemon. If no value is returned or values like Stopped or Restarting are returned instead of Running, it indicates that the RIL daemon is not running.
  2. RIL library is not loaded correctly.
    Check the definition of service ril-daemon in init*.rc through cat /init*.rc | grep ril-daemon or in *rild.rc through cat /vendor/etc/init/*rild.rc | grep ril-daemon.
    The expected result should be one of the following:
    • service ril-daemon /system/bin/rild -l /system/*/libreference-ril.so
    • service ril-daemon /system/bin/rild -l /vendor/*/libreference-ril.so
    • service ril-daemon /vendor/bin/hw/rild -l /vendor/*/libreference-ril.so
      Check the arguments, word spelling, blank space, etc., to make sure the RIL library is loaded correctly.
  3. Failed to access USB serial port device file.
    • Use ls -l /dev/ttyUSB* to check access rights of the device file.
    • Use getenforce to check whether SELinux is enabled. If yes, use setenforce 0 to disable SELinux first and then check whether the access becomes normal.

The RIL library is not provided by Quectel.
Use getprop gsm.version.ril-impl to check the Quectel RIL version, and the returned value should start with Quectel_Android_RIL_Driver_V. If not, it indicates the RIL library is not provided by Quectel.

Why Phone Process Does Not Work
Android system determines whether the system supports data access, phone, SMS and other features by configuring the items. The items to be configured and files to be installed are listed below. Please check whether the configuration is correct. Take imx6q as an exampль:

  • If data access is required, the attribute networkAttributes must contain the following items:QUECTEL-Android-RIL-Driver-fig- (22)
  • If the phone feature is required, configure it as follows:QUECTEL-Android-RIL-Driver-fig- (23)
  • If SMS is required, configure it as follows:QUECTEL-Android-RIL-Driver-fig- (24)

The above three configurations are in the file config.xml. The path can be, for example, device/fsl/imx6dq/sabresd_6dq/overlay/frameworks/base/core/res/res/values/config.xml.

Наступнае files must be installed on the Android device.

  • /vendor/bin/hw/rild
  • /vendor/lib/libril.so
  • /system/priv-app/TeleService/TeleService.apk
  • /system/priv-app/TelephonyProvider/TelephonyProvider.apk
  • /system/framework/telephony-common.jar

Дадатак Спіс літаратуры

Табліца 5: Звязаны дакумент

QUECTEL-Android-RIL-Driver-fig- (25)

Табліца 6: Тэрміны і скарачэнні 

QUECTEL-Android-RIL-Driver-fig- (26)QUECTEL-Android-RIL-Driver-fig- (27)

FAQ

What are the supported Android versions for the Android RIL Driver?

The driver supports Android versions 5.x, 8.x, and 9.x as listed in the user manual.

Дакументы / Рэсурсы

PDF thumbnailAndroid RIL Driver
User Guide · Android RIL Driver, RIL Driver
PDF thumbnailAndroid RIL Driver
User Guide · Android RIL Driver, RIL Driver, Driver

Спасылкі

Задайце пытанне

Use this section to ask about setup, compatibility, troubleshooting, or anything missing from this manual.

Задайце пытанне

Ask a question about setup, compatibility, troubleshooting, or anything missing from this manual.