Android 安卓RIL介绍

Android ril集成和常见问题分享

RK3568-ANDROID11-4G-EC20-(详细步骤)

什么是 Android RIL

Android RIL (Radio Interface Layer)即无线接口层,它是位于 Android 操作系统与移动设备的无线通信硬件之间的一个软件抽象层 。其主要目的是为 Android 系统提供一个统一的接口,以便与各种不同类型的无线通信芯片及模块进行交互和通信,从而实现诸如语音通话、短信收发、移动数据网络连接等无线通信功能。

从功能实现角度看,RIL 屏蔽了底层无线通信硬件的复杂性和差异性。不同的手机制造商可能会采用不同厂商的基带芯片等无线通信硬件,这些硬件在接口规范、功能实现细节等方面存在很大差别。RIL 通过定义一套标准的接口和通信协议,使得 Android 系统无需关心具体硬件的细节,只要按照 RIL 提供的接口进行调用,就能实现各种无线通信功能。例如,当应用程序需要发起一个语音通话时,它只需调用 Android 系统中与通话相关的 API,而这些 API 最终会通过 RIL 将通话请求传递给底层的无线通信硬件,由硬件来完成实际的通话建立和通信过程。 这样一来,大大降低了 Android 系统与无线通信硬件耦合度,提高了系统的可移植性和兼容性。

RIL结构

Android RIL 位于应用程序框架与内核之间,分成了两个部分,一个部分是 rild,它负责 socket 与应用程序框架进行通信。另外一个部分是 Vendor RIL,这个部分负责向下与 radio 进行通信。对于 RIL 的 java 框架部分,也被分成两个部分,一个是 RIL 模块,这个模块主要与下层的 rild 进行通信,另外一个是 phone 模块,这个模块直接暴露电话功能结构给应用开发用户,供他们调用以进行电话功能的实现。

IRadio配置相关问题

安卓11以上的IRadio一般配置在 /vendor/etc/vintf/manifest.xml 目录下,根据客户使用的不同版本IRadio,配置会有一点差异。

不同的安卓版本支持的最高IRadio版本也不同,配置不能超过当前安卓版本支持版本。移远实现的libril目前支持到1.5接口,使用移远RIL库时候manifest.xml最高不能配置超过1.5。

安卓8.x ---最高支持IRadio 1.1

安卓9.x ---最高支持IRadio 1.2

安卓10.x ---最高支持IRadio 1.4

安卓11.x ---最高支持IRadio 1.5

安卓12.x ---最高支持IRadio 1.6

安卓11&12 2&3&4G模块使用1.1接口即可正常上报信息

安卓11&12 如适配的5G模块,在新归档的RIL版本中,针对5G信号上报做了调整,需要将IRadio接口切至1.5

IRadio服务未注册,会导致RIL库与上层通信失败。

此时就需要检查使用的IRadio版本和对应的manifest.xml的配置,如果使用了1.2以上的IRadio版本还需要确认是否有对应移远的libril.so。(原生libril.so仅支持IRadio1.1)

一般在radio log上过滤RILJ,只有一行打印:

RILJ ( 934): RIL: init preferredNetworkType=9 cdmaSubscription=0)[PHONEnull]

且不会上报:

RILJ ( 934): [UNSL]< UNSOL_RIL_CONNECTED [PHONE

相关推荐
写点啥呢2 小时前
android12解决非CarProperty接口深色模式设置后开机无法保持
android·车机·aosp·深色模式·座舱
IT酷盖2 小时前
Android解决隐藏依赖冲突
android·前端·vue.js
努力学习的小廉4 小时前
初识MYSQL —— 数据库基础
android·数据库·mysql
风起云涌~4 小时前
【Android】浅谈androidx.startup.InitializationProvider
android
Monkey-旭4 小时前
Android 注解完全指南:从基础概念到自定义实战
android·java·kotlin·注解·annotation
用户2018792831675 小时前
浅析RecyclerView的DiffUtill实现
android
文言一心5 小时前
MySQL脚本转换为StarRocks完整指南
android·数据库·mysql
用户2018792831677 小时前
故事:Resources的“寻宝”之旅
android
雮尘7 小时前
一文读懂Android Fragment栈管理
android·前端