
QUECTEL Android GNSS Driver

Specifications
- Product: Android GNSS Driver
- Version: 1.5
- Date: 2026-01-28
- Status: Released
Product Information
The Android GNSS Driver is designed to provide accurate and reliable Global Navigation Satellite System (GNSS) functionality on Android devices. It enables devices to receive location data from various satellite constellations for applications such as navigation, tracking, and timing.
Installation Instructions
- Download the latest version of the Android GNSS Driver from the official website.
- Follow the installation procedures outlined in Chapter 2.2 of the user guide.
- Ensure that your device is running Android 8.x or later versions for optimal compatibility.
Usage Instructions
To use the Android GNSS Driver:
- Enable location services on your device.
- Open the GNSS-enabled application that you want to use (e.g., Maps).
- Wait for the device to acquire satellite signals and provide accurate location information.
Troubleshooting
If you encounter issues with the GNSS Driver:
- Refer to Chapter 3.4 for troubleshooting instructions specific to Android 8.0 or later versions.
- Check for any error messages or warnings in the GNSS logs as described in Chapter 3.2.
- Ensure that your device is compatible with the supported modules listed in the user guide.
At Quectel, we aim to provide timely and comprehensive services to our customers. If you require any assistance, please contact our headquarters:
Quectel Wireless Solutions Co., Ltd.
- No. 8 Waipojing Road, Sijing Town, Songjiang District, Shanghai 201601, China
- Tel: +86 21 5108 6236
- Email: info@quectel.com
Or our local offices. For more information, please visit:
For technical support or to report documentation errors, please visit:
- https://www.quectel.com/tech-support/.
- Or email us at: support@quectel.com.
Legal Notices
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.
Use and Disclosure Restrictions
License Agreements
The recipient of any hardware, software, materials, or documentation provided by us shall keep such content confidential, unless expressly authorized 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.
Copyright
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, unauthorized use, or any other unlawful or malicious use of the aforementioned documents and information.
Trademarks
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.
Third-Party Rights
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 with respect to 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.
Privacy Policy
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.
Disclaimer
- 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.
About the Document
Revision History


Introduction
This document mainly introduces how to integrate the Android GNSS (Global Navigation Satellite System) driver into the Android OS of Quectel modules supporting the GNSS function, capture GNSS log, and test the GNSS driver.
Table 1: Applicable Modules

NOTE
Quectel modules listed above may include only a single model or multiple models, with GNSS as a possible optional feature. See the corresponding module specifications for more specific information.
System Integration
This chapter describes the structure of the Android GNSS driver and explains how to integrate the GNSS driver into the Android OS of Quectel modules supporting the GNSS function.
Structure of Android GNSS Driver
GNSS devices transmit the GNSS data through the GNSS hardware driver, and then the GNSS HAL driver transmits the received GNSS data to GNSS applications through JNI and the Application Framework. The following figure illustrates the structure of a GNSS driver.
| Applications |
| Application Framework |
| JNI |
| HAL (Quectel GNSS Driver) |
| Linux Kernel (Quectel USB Driver) |
| GNSS Device (Quectel Module) |
Figure 1: Android GNSS Driver Structure
GNSS Driver Installation
For Android versions before Android 8.0
Add GNSS driver files gps_cfg.inf and gps.default.so to the Android system:
- For a 32-bit Android system

- For a 64-bit Android system

For Android 8.0 or later versions
Step 1: Modify the manifest.xml file.
- For Android 8.x–16.x, the communication interface between the application framework and HAL has changed from socket to HIDL and AIDL. Therefore, the following HIDL or AIDL description needs to be added to the manifest.xml file.
- For Android 8.x–16.x, add the following HIDL (IGnss 1.0) description:

- For Android 10.x–16.x, add the following HIDL (IGnss 2.0) description:


- For Android 12.x–16.x, add the following HIDL (IGnss 2.1) description:

- For Android 13.x–16.x, add the following GNSS AIDL2 description:

NOTE
- Add either AIDL or HIDL (any one from IGnss 1.0/2.0/2.1) description to the manifest.xml file. Do not add both descriptions to the file.
- The location of the manifest.xml file varies according to your project settings. For example:
- device/rockchip/rk3399/manifest.xml
- device/fsl/imx6dq/sabresd_6dq/manifest.xml
Step 2: Add the following code lines to the corresponding .mk file in the directory of the actual device in use.
- For HIDL (IGnss 2.0):

- For HIDL (IGnss 2.1):

- For GNSS AIDL2:

NOTE
- The location of.mk file varies according to your project settings. For example:
- device/rockchip/rk356x/device.mk
- The above operations are only for reference. And the specific operations depend on the actual Android device in use.
SELinux Configuration
If the SELinux installed in your Android devices is enabled (i.e., in enforcing mode) and you need to customize the shared library name for the GNSS service, follow the procedures below to make sure that the Quectel GNSS driver has full access to SELinux privileges. Otherwise, you can skip this chapter.
Step 1: Add the following definition to file_contexts.
![]()
<file_name>: GNSS service binary file name (e.g., android.hardware.gnss-service.test).
Step 2: Add the following definition to hal_gnss_default.te.
![]()
NOTE
The location of the file_contexts and hal_gnss_default.te files varies according to your project settings. Typically, these files are located at the following paths by default.
- system/sepolicy/vendor/file_contexts.
- system/sepolicy/vendor/hal_gnss_default.te
Removal of Unnecessary GNSS Driver Files
Except for GPS.default.So, other unnecessary gps.*.so files in the directory of /system/lib/hw, /system/lib64/hw, /vendor/lib/hw, and /vendor/lib64/hw in the Android system should be deleted to ensure that the system can identify the correct GNSS driver.
GNSS Log Capture
This chapter mainly introduces how to capture a GNSS log.
- Capture the GNSS log with the ADB tool by executing the following command in a Windows/Linux system:

- Sometimes, users may conduct tests across multiple devices or perform prolonged testing, making it inconvenient to connect all devices to a PC via USB cables. In such cases, users can capture logs by executing the following command:
The character “&” will cause the “logcat” process to run in the background, allowing users to disconnect devices.
After capturing the logs, execute the following command to export the log files from Android devices to a local directory:
GNSS Driver Test
When the module is connected to an Android system, the Android system will identify it first and then read the GNSS driver data. A GNSS test application, such as GPS TEST v1.5.4.APK (for more details about GPS Test, please refer to https://play.google.com/store/apps/details?id=com.chartcross.gpstest), can be used to test the performance of the GNSS driver.

NOTE: In the above figure, a satellite with a number greater than 160 belongs to BDS.
Supplementary Instructions
Modify GNSS Configuration File & Integrate Android RIL Driver
Quectel GNSS driver has a configuration file named gps_cfg.inf. The file is modifiable. Make the following change to the NMEA port:
![]()
The Quectel Android RIL driver should be integrated prior to integrating the Android GNSS driver. For details about the Android RIL driver, refer to document [1].
Fail to Get GNSS Data
If GNSS applications fail to get GNSS data, the following items should be checked:
- Move the GNSS antenna to the open air, and make sure GNSS signals can be fully received.
- Ensure that gps.default.so is the only file in the format of gps.*.so in the directories of /system/lib/hw, /system/lib64/hw, /vendor/lib/hw, and /vendor/lib64/hw.
- Ensure that gps_cfg.inf is in the correct directory of the Android system and has been modified according to the specific module.
If the GNSS applications with GNSS drivers running on Android 8.0 or later versions fail to get GNSS data, the following files should be checked and confirmed additionally (using the rk3399-based platform as an example).
- If the following log appears repeatedly:
- Check whether the content shown in the white box in the following figure is included in device/rockchip/rk3399/manifest.xml. If not, modify the content of the file as described in the white box.

- Check whether the content shown in the white box in the following figure is included in device/rockchip/rk3399/manifest.xml. If not, modify the content of the file as described in the white box.
- If the following log appears repeatedly:
Waited one second for android.hardware.gnss@1.0:: I Gnss/default. Waiting another…- Check whether the content in the white box in the following figure is included in device/rockchip/rk3399/BoardConfig.mk. If not, modify the content of the file as described in the white box.

- Check whether the content in the white box in the following figure is included in device/rockchip/rk3399/device.mk. If not, modify the content of the file as described in the white box.

- Check whether the content in the white box in the following figure is included in device/rockchip/rk3399/init.rk3399.rc. If not, modify the content of the file as described in the white box.

- Check whether the content in the white box in the following figure is included in device/rockchip/rk3399/BoardConfig.mk. If not, modify the content of the file as described in the white box.
If the problem still exists after checking all the items above, please contact Quectel Technical Support.
Appendix References
Table 2: Related Document

Table 3: Terms and Abbreviations

FAQs
How do I update the Android GNSS Driver?
To update the driver, visit the official website and download the latest version. Follow the installation instructions provided in the user guide.
Can I use the GNSS Driver on devices running older versions of Android?
The driver is optimized for Android 8.x and later versions. While it may work on older versions, we recommend using it on supported platforms for the best performance.
Documents / Resources
![]() | Android GNSS Driver |
References
- User Manualmanual.tools

